作業メモベースですがどなたかのお役に立てば。

やりたいこと

・Amazon Elasticsearch Serviceに同梱されているKibanaに認証をつけたい
・上記認証にcognitoは利用しない
・経路はhttpd2.4をProxyとして利用portベースのvirtualhostで受ける
・ApacheのBasic認証で受ける

環境

・Red Hat Enterprise Linux Server release 7.6 (Maipo)
・Server version: Apache/2.4.6 (Red Hat Enterprise Linux)

認証とProxy経路の確保

・準備

yum install mod_ssl -y
mkdir /var/www/px/_plugin/kibana

・認証

htpasswd -c /etc/httpd/conf/.htpasswd aaa
# New password:
# Re-type new password:
# Adding password for user aaa

・Proxy

/etc/httpd/conf.d/es.conf
Listen 8090
<VirtualHost *:8090>
  DocumentRoot /var/www/px
  SSLEngine on
  SSLProtocol all -SSLv3
  SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
  SSLCertificateFile /etc/pki/certs/server.crt
  SSLCertificateKeyFile /etc/pki/private/server.key

  <Directory "/var/www/px/_plugin/kibana">
        AuthUserFile /etc/httpd/conf/.htpasswd
        AuthGroupFile /dev/null
        AuthName "auth"
        AuthType Basic
        Require valid-user
  </Directory>

RewriteEngine On
RequestHeader unset Authorization
RewriteCond %{LA-U:REMOTE_USER} !^$
# RewriteCond %{QUERY_STRING} !method=PUT
# QueryでDELETE methodを発行するものはブロック
RewriteCond %{QUERY_STRING} !method=DELETE
RewriteRule  ^/_plugin/kibana(.*)$ http://{Es-Vpc-Endpoint}/_plugin/kibana$1 [P]

</VirtualHost>
TOP