Elasticsearchの最小限のセキュリティを設定する

既存のセキュリティが無効なクラスターを実行していて、Elasticsearchのセキュリティ機能を有効にしたい場合は、次の手順を完了する必要があります。

Elasticsearch 8.0以降では、Elasticsearchを初めて起動するときにセキュリティが自動的に有効になります。

セキュリティが無効になっている既存のElasticsearchクラスターを実行している場合は、手動でElasticsearchのセキュリティ機能を有効にし、組み込みユーザーのパスワードを作成できます。後で他のユーザーを追加できますが、組み込みユーザーを使用することでクラスターのセキュリティを有効にするプロセスが簡素化されます。

最小限のセキュリティシナリオは、本番モードのクラスターには不十分です。クラスターに複数のノードがある場合は、最小限のセキュリティを有効にし、ノード間でトランスポート層セキュリティ(TLS)を構成する必要があります。

Elasticsearchのセキュリティ機能を有効にする

Elasticsearchのセキュリティ機能を有効にすると、ユーザー名とパスワード認証を使用してローカルクラスターを実行できる基本的な認証が提供されます。

  • 1. クラスター内のすべてのノードで、KibanaとElasticsearchが実行されている場合は停止します。
  • 2. クラスター内のすべてのノードで、xpack.security.enabled設定を$ES_PATH_CONF/elasticsearch.ymlファイルに追加し、値をtrueに設定します:

Yaml

  1. xpack.security.enabled: true
  1. - 3*.* クラスターに単一のノードがある場合は、`````discovery.type`````設定を`````$ES_PATH_CONF/elasticsearch.yml`````ファイルに追加し、値を`````single-node`````に設定します。この設定により、ノードがネットワーク上で実行されている他のクラスターに誤って接続しないようにします。
  2. #### Yaml
  3. ``````yaml
  4. discovery.type: single-node
  5. `

組み込みユーザーのパスワードを設定する

クラスターと通信するには、elasticおよびkibana_systemの組み込みユーザーのパスワードを設定する必要があります。匿名アクセスを有効にしない限り(推奨されません)、資格情報を含まないすべてのリクエストは拒否されます。

最小限または基本的なセキュリティを有効にする際には、elasticおよびkibana_systemユーザーのパスワードを設定する必要があります。

  • 1. クラスター内のすべてのノードで、Elasticsearchを起動します。たとえば、.tar.gzパッケージでElasticsearchをインストールした場合、ES_HOMEディレクトリから次のコマンドを実行します:

Shell

  1. ./bin/elasticsearch
  • 2. クラスター内の任意のノードで、別のターミナルウィンドウを開き、elasticsearch-reset-passwordユーティリティを実行してelasticの組み込みユーザーのパスワードを設定します。このコマンドは、パスワードを自動生成された値にリセットします。

Shell

  1. ./bin/elasticsearch-reset-password -u elastic

特定の値にパスワードを設定したい場合は、インタラクティブ(-i)パラメータを使用してコマンドを実行します。

Shell

  1. ./bin/elasticsearch-reset-password -i -u elastic
  • 3. kibana_systemの組み込みユーザーのパスワードを設定します。

Shell

  1. ./bin/elasticsearch-reset-password -u kibana_system
  • 4. 新しいパスワードを保存します。次のステップでは、kibana_systemユーザーのパスワードをKibanaに追加します。

次へ: パスワードでElasticsearchに接続するようにKibanaを構成する

パスワードでElasticsearchに接続するようにKibanaを構成する

Elasticsearchのセキュリティ機能が有効になっている場合、ユーザーは有効なユーザー名とパスワードでKibanaにログインする必要があります。

Kibanaを、以前に作成したパスワードを持つ組み込みkibana_systemユーザーを使用するように構成します。Kibanaは、kibana_systemユーザーを使用する必要があるいくつかのバックグラウンドタスクを実行します。

このアカウントは個々のユーザー向けではなく、ブラウザからKibanaにログインする権限はありません。代わりに、elasticスーパーユーザーとしてKibanaにログインします。

  • 1. elasticsearch.username設定をKBN_PATH_CONF/kibana.ymlファイルに追加し、値をkibana_systemユーザーに設定します:

Yaml

  1. elasticsearch.username: "kibana_system"
  1. - 2*.* Kibanaをインストールしたディレクトリから、Kibanaキーストアを作成し、安全な設定を追加するために次のコマンドを実行します:
  2. - 2*.*1*.* Kibanaキーストアを作成します:
  3. #### Shell
  4. ``````shell
  5. ./bin/kibana-keystore create
  6. `
  • 2.2. kibana_systemユーザーのパスワードをKibanaキーストアに追加します:

Shell

  1. ./bin/kibana-keystore add elasticsearch.password

プロンプトが表示されたら、kibana_systemユーザーのパスワードを入力します。

  • 3. Kibanaを再起動します。たとえば、.tar.gzパッケージでKibanaをインストールした場合、Kibanaディレクトリから次のコマンドを実行します:

Shell

  1. ./bin/kibana

次は何ですか?

おめでとうございます!ローカルクラスターのパスワード保護を有効にして、不正アクセスを防止しました。elasticユーザーとしてKibanaに安全にログインし、追加のユーザーや役割を作成できます。単一ノードクラスターを実行している場合は、ここで停止できます。

クラスターに複数のノードがある場合は、ノード間でトランスポート層セキュリティ(TLS)を構成する必要があります。本番モードのクラスターは、TLSを有効にしないと起動しません。

Elastic Stackの基本的なセキュリティを設定して、クラスター内のノード間のすべての内部通信を保護します。