組み込みユーザー

Elastic Stackのセキュリティ機能は、組み込みのユーザー資格情報を提供し、すぐに使用を開始できるようにします。これらのユーザーは固定された特権のセットを持ち、パスワードが設定されるまで認証されません。elasticユーザーは、すべての組み込みユーザーのパスワードを設定するために使用できます。

最小限の特権を持つユーザーを作成する

組み込みユーザーは特定の目的に使用され、一般的な使用を意図していません。特に、クラスタへの完全なアクセスが絶対に必要でない限り、elasticスーパーユーザーを使用しないでください。自己管理型のデプロイメントでは、elasticユーザーを使用して、活動に必要な最小限の役割または特権を持つユーザーを作成します。

Elastic Cloudでは、オペレーター特権が有効になっています。これらの特権は、役割がユーザーに管理タスクを完了することを許可する場合でも、一部のインフラ機能を制限します。

  • elastic
  • 組み込みのスーパーユーザー
    elasticユーザーとしてログインできる人は、.securityなどの制限されたインデックスに直接読み取り専用アクセスを持っています。このユーザーは、セキュリティを管理し、無制限の特権を持つ役割を作成する能力も持っています。
  • kibana_system
  • KibanaがElasticsearchに接続して通信するために使用するユーザー。
  • logstash_system
  • LogstashがElasticsearchに監視情報を保存する際に使用するユーザー。
  • beats_system
  • BeatsがElasticsearchに監視情報を保存する際に使用するユーザー。
  • apm_system
  • APMサーバーがElasticsearchに監視情報を保存する際に使用するユーザー。
  • remote_monitoring_user
  • MetricbeatがElasticsearchに監視情報を収集して保存する際に使用するユーザー。remote_monitoring_agentおよびremote_monitoring_collectorの組み込み役割を持っています。

組み込みユーザーの動作

これらの組み込みユーザーは、Elasticsearchによって管理される特別な.securityインデックスに保存されています。組み込みユーザーが無効化されるか、パスワードが変更されると、その変更はクラスタ内の各ノードに自動的に反映されます。ただし、.securityインデックスが削除されるかスナップショットから復元されると、適用した変更は失われます。

同じAPIを共有していますが、組み込みユーザーはnative realmによって管理されるユーザーとは別個のものです。native realmを無効にしても、組み込みユーザーには影響しません。組み込みユーザーは、ユーザー無効化APIを使用して個別に無効化できます。

Elasticブートストラップパスワード

Elasticsearchをインストールするとき、elasticユーザーにまだパスワードがない場合、デフォルトのブートストラップパスワードが使用されます。ブートストラップパスワードは、すべての組み込みユーザーのパスワードを設定するツールを実行できる一時的なパスワードです。

デフォルトでは、ブートストラップパスワードは、インストール中にキーストアに追加されるランダム化されたkeystore.seed設定から派生します。このブートストラップパスワードを知ったり変更したりする必要はありません。ただし、キーストアにbootstrap.password設定を定義している場合、その値が代わりに使用されます。キーストアとの対話に関する詳細は、セキュア設定を参照してください。

組み込みユーザーのパスワードを設定した後、特にelasticユーザーのために、ブートストラップパスワードはもはや使用されません。

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

すべての組み込みユーザーのパスワードを設定する必要があります。

  1. #### シェル
  2. ``````shell
  3. bin/elasticsearch-setup-passwords interactive
  4. `

コマンドオプションに関する詳細は、elasticsearch-setup-passwordsを参照してください。

  1. また、Kibanaの**管理 > ユーザー**ページや[パスワード変更API](/read/elasticsearch-8-15/38a275c7a4aed047.md)を使用して、組み込みユーザーの初期パスワードを設定することもできます。これらの方法はより複雑です。KibanaにログインするかAPIを実行するには、`````elastic`````ユーザーとそのブートストラップパスワードを提供する必要があります。この要件により、`````keystore.seed`````設定から派生したデフォルトのブートストラップパスワードを使用することはできません。代わりに、Elasticsearchを開始する前にキーストアに`````bootstrap.password`````設定を明示的に設定する必要があります。たとえば、次のコマンドは新しいブートストラップパスワードを入力するように求めます:
  2. #### シェル
  3. ``````shell
  4. bin/elasticsearch-keystore add "bootstrap.password"
  5. `

その後、ElasticsearchとKibanaを起動し、elasticユーザーとブートストラップパスワードを使用してKibanaにログインし、パスワードを変更できます。あるいは、各組み込みユーザーのパスワード変更APIリクエストを送信することもできます。これらの方法は、初期設定が完了した後にパスワードを変更するのに適しており、その時点でブートストラップパスワードはもはや必要ありません。

Kibanaに組み込みユーザーパスワードを追加する

  1. #### Yaml
  2. ``````yaml
  3. elasticsearch.password: kibanapassword
  4. `

Kibanaのセキュリティ設定を参照してください。

Logstashに組み込みユーザーパスワードを追加する

  1. Logstashでこの機能を有効にするには、`````xpack.monitoring.elasticsearch.password``````````logstash.yml`````設定ファイルに設定して、新しいパスワードでLogstashの設定を更新する必要があります:
  2. #### Yaml
  3. ``````yaml
  4. xpack.monitoring.elasticsearch.password: logstashpassword
  5. `

古いバージョンのElasticsearchからアップグレードした場合、logstash_systemユーザーはセキュリティ上の理由から無効にデフォルト設定されている可能性があります。パスワードが変更された後、次のAPI呼び出しを使用してユーザーを有効にできます:

Python

  1. resp = client.security.enable_user(
  2. username="logstash_system",
  3. )
  4. print(resp)

Js

  1. const response = await client.security.enableUser({
  2. username: "logstash_system",
  3. });
  4. console.log(response);

コンソール

  1. PUT _security/user/logstash_system/_enable

Logstash監視のための資格情報の設定を参照してください。

Beatsに組み込みユーザーパスワードを追加する

  1. Beatsでこの機能を有効にするには、各Beatsの設定を更新して正しいユーザー名とパスワードを参照する必要があります。たとえば:
  2. #### Yaml
  3. ``````yaml
  4. xpack.monitoring.elasticsearch.username: beats_system
  5. xpack.monitoring.elasticsearch.password: beatspassword
  6. `

たとえば、Metricbeatの監視を参照してください。

remote_monitoring_userは、MetricbeatがElastic Stackの監視データを収集して保存する際に使用されます。本番環境での監視を参照してください。

古いバージョンのElasticsearchからアップグレードした場合、beats_systemまたはremote_monitoring_userユーザーのパスワードを設定していない可能性があります。この場合、Kibanaの管理 > ユーザーページやパスワード変更APIを使用して、これらのユーザーのパスワードを設定する必要があります。

APMに組み込みユーザーパスワードを追加する

  1. APMでこの機能を有効にするには、`````apm-server.yml`````設定ファイルを更新して正しいユーザー名とパスワードを参照する必要があります。たとえば:
  2. #### Yaml
  3. ``````yaml
  4. xpack.monitoring.elasticsearch.username: apm_system
  5. xpack.monitoring.elasticsearch.password: apmserverpassword
  6. `

古いバージョンのElasticsearchからアップグレードした場合、apm_systemユーザーのパスワードを設定していない可能性があります。この場合、Kibanaの管理 > ユーザーページやパスワード変更APIを使用して、これらのユーザーのパスワードを設定する必要があります。

デフォルトパスワード機能の無効化

この設定は非推奨です。elasticユーザーにはもはやデフォルトのパスワードはありません。ユーザーを使用する前にパスワードを設定する必要があります。Elasticブートストラップパスワードを参照してください。