広告 Elastic

【Elasticsearch】Kibanaのログイン認証をdocker-composeで設定する

2022-10-05

以前、docker-compose.ymlを使用して手軽にelasticsearchとkibanaをコンテナ化する手順を解説した。

この記事ではセキュリティを有効化し、kibanaのログイン時に認証を行うようにする。

言うまでもないが、システムとして組み込む場合や顧客のデータを扱う場合など、セキュリティが無効になっているのは危険だ。

これから紹介する内容は簡単に設定ができるので是非参考にしていただきたい。

docker-compose.yml

以下はdocker-compose.ymlで elasticsearch と kibana を定義した例となる。

10, 11, 30, 31行目に注目してほしい。

version: "3"

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.17.0
    environment:
      - discovery.type=single-node
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - xpack.security.enabled=true
      - ELASTIC_PASSWORD=P@ssw0rd
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "TZ=Asia/Tokyo"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    ports:
      - 9200:9200
    volumes:
      - ~/hoge/elasticsearch/data:/usr/share/elasticsearch/data
  kibana:
    image: docker.elastic.co/kibana/kibana:7.17.0
    ports:
      - 5601:5601
    environment:
      - ELASTICSEARCH_URL=http://elasticsearch:9200
      - "TZ=Asia/Tokyo"
      - I18N_LOCALE="ja-JP"
      - ELASTICSEARCH_USERNAME=elastic
      - ELASTICSEARCH_PASSWORD=P@ssw0rd
    depends_on:
      - elasticsearch

elasticsearch のenvironmentでセキュリティの xpack を有効化し、パスワードを設定する。

- xpack.security.enabled=true
- ELASTIC_PASSWORD=P@ssw0rd

また、kibanaのenvironmentでもユーザー名とパスワードを設定する。

ここで設定した情報がログイン時に必要となる。

以下の設定情報はあくまでも例なので、開発業務等で使用する場合は適切な文字数、推測されないように記号を含めるなどの配慮をしよう。

- ELASTICSEARCH_USERNAME=elastic
- ELASTICSEARCH_PASSWORD=P@ssw0rd

ログイン画面

コンテナを起動後にGoogle Cromeなどのブラウザから http://localhost:5601 にアクセスする。

すると以下のようなログイン画面が表示されるようになる。

docker-compose.ymlenvironmentで定義したユーザー名とパスワードを入力してログインボタンを押下しよう。

問題なくログインができ、トップ画面が表示されるはずだ。

エラーになる場合

コンテナが起動しない、正常にログインできないなどの問題がある場合は各コンテナのログを確認しよう。

docker-compose logs elasticsearch
docker-compose logs kibana

まとめ

以上、docker-compose.ymlを使用してelasticsearchとkibanaのセキュリティを有効にする手順を紹介した。

冒頭でも述べたように、セキュリティへの配慮は必要不可欠だ。

外部からのアクセスやデータの流出等に備えて、対策をするようにしていただきたい。

最後まで目を通していただき、ありがとうございました。

-Elastic
-, , , , ,