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
xpack.security.enabled: true
- 3*.* クラスターに単一のノードがある場合は、`````discovery.type`````設定を`````$ES_PATH_CONF/elasticsearch.yml`````ファイルに追加し、値を`````single-node`````に設定します。この設定により、ノードがネットワーク上で実行されている他のクラスターに誤って接続しないようにします。
#### Yaml
``````yaml
discovery.type: single-node
`
組み込みユーザーのパスワードを設定する
クラスターと通信するには、elastic
およびkibana_system
の組み込みユーザーのパスワードを設定する必要があります。匿名アクセスを有効にしない限り(推奨されません)、資格情報を含まないすべてのリクエストは拒否されます。
最小限または基本的なセキュリティを有効にする際には、elastic
およびkibana_system
ユーザーのパスワードを設定する必要があります。
- 1. クラスター内のすべてのノードで、Elasticsearchを起動します。たとえば、
.tar.gz
パッケージでElasticsearchをインストールした場合、ES_HOME
ディレクトリから次のコマンドを実行します:
Shell
./bin/elasticsearch
- 2. クラスター内の任意のノードで、別のターミナルウィンドウを開き、
elasticsearch-reset-password
ユーティリティを実行してelastic
の組み込みユーザーのパスワードを設定します。このコマンドは、パスワードを自動生成された値にリセットします。
Shell
./bin/elasticsearch-reset-password -u elastic
特定の値にパスワードを設定したい場合は、インタラクティブ(-i
)パラメータを使用してコマンドを実行します。
Shell
./bin/elasticsearch-reset-password -i -u elastic
- 3.
kibana_system
の組み込みユーザーのパスワードを設定します。
Shell
./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
elasticsearch.username: "kibana_system"
- 2*.* Kibanaをインストールしたディレクトリから、Kibanaキーストアを作成し、安全な設定を追加するために次のコマンドを実行します:
- 2*.*1*.* Kibanaキーストアを作成します:
#### Shell
``````shell
./bin/kibana-keystore create
`
- 2.2.
kibana_system
ユーザーのパスワードをKibanaキーストアに追加します:
Shell
./bin/kibana-keystore add elasticsearch.password
プロンプトが表示されたら、kibana_system
ユーザーのパスワードを入力します。
- 3. Kibanaを再起動します。たとえば、
.tar.gz
パッケージでKibanaをインストールした場合、Kibanaディレクトリから次のコマンドを実行します:
Shell
./bin/kibana
- 4.
elastic
ユーザーとしてKibanaにログインします。このスーパーユーザーアカウントを使用して、スペースを管理し、新しいユーザーを作成し、役割を割り当てることができます。Kibanaをローカルで実行している場合は、http://localhost:5601
に移動してログインページを表示します。
次は何ですか?
おめでとうございます!ローカルクラスターのパスワード保護を有効にして、不正アクセスを防止しました。elastic
ユーザーとしてKibanaに安全にログインし、追加のユーザーや役割を作成できます。単一ノードクラスターを実行している場合は、ここで停止できます。
クラスターに複数のノードがある場合は、ノード間でトランスポート層セキュリティ(TLS)を構成する必要があります。本番モードのクラスターは、TLSを有効にしないと起動しません。
Elastic Stackの基本的なセキュリティを設定して、クラスター内のノード間のすべての内部通信を保護します。