elasticsearch-service-tokens

elasticsearch-service-tokens コマンドを使用して、ファイルベースのサービスアカウントトークンを作成、リスト、および削除します。

Synopsis

Shell

  1. bin/elasticsearch-service-tokens
  2. ([create <service_account_principal> <token_name>]) |
  3. ([list] [<service_account_principal>]) |
  4. ([delete <service_account_principal> <token_name>])

Description

サービストークンを管理する推奨方法は、サービスアカウントトークンの作成 APIを介して行うことです。ファイルベースのトークンは、Elastic Cloud EnterpriseElastic Cloud on Kubernetesなどのオーケストレーターと一緒に使用することを目的としています。

このコマンドは、最初のサービスアカウントトークンを作成するときに、$ES_HOME/configディレクトリにservice_tokensファイルを作成します。このファイルはデフォルトでは存在しません。Elasticsearchはこのファイルの変更を監視し、動的に再読み込みします。

このコマンドは、ローカルノードのservice_tokensファイルにのみ変更を加えます。サービストークンがクラスター内の複数のノードに対するリクエストの認証に使用される場合は、service_tokensファイルを各ノードにコピーする必要があります。

サービスアカウントの動作やサービストークンの管理に関する詳細情報については、サービスアカウントを参照してください。

Elasticsearchが起動時にサービスアカウントトークン情報を読み取れるようにするには、Elasticsearchを実行するのと同じユーザーとしてelasticsearch-service-tokensを実行してください。このコマンドをrootまたは他のユーザーとして実行すると、service_tokensファイルの権限が更新され、Elasticsearchがアクセスできなくなります。

Parameters

  • create
  • 指定されたサービスアカウントのためのサービスアカウントトークンを作成します。
    1. - `````<service_account_principal>
    • (必須、文字列) <namespace>/<service>の形式を持つサービスアカウントプリンシパルで、namespaceはサービスアカウントのトップレベルグループであり、serviceはサービスの名前です。例えば、elastic/fleet-server
      サービスアカウントプリンシパルは、既知のサービスアカウントと一致する必要があります。
    • <token_name>
    • (必須、文字列) トークン名の識別子です。
      トークン名は1文字以上256文字以下でなければなりません。英数字(a-zA-Z0-9)、ダッシュ(-)、およびアンダースコア(_)を含むことができますが、アンダースコアで始めることはできません。
      トークン名は、関連するサービスアカウントのコンテキスト内で一意でなければなりません。
  • list
    1. `````list`````のプロパティ
    2. - `````<service_account_principal>
    • (オプション、文字列) <namespace>/<service>の形式を持つサービスアカウントプリンシパルで、namespaceはサービスアカウントのトップレベルグループであり、serviceはサービスの名前です。例えば、elastic/fleet-server
      サービスアカウントプリンシパルは、既知のサービスアカウントと一致する必要があります。
  • delete
  • 指定されたサービスアカウントのためのサービスアカウントトークンを削除します。
    1. - `````<service_account_principal>
    • (必須、文字列) <namespace>/<service>の形式を持つサービスアカウントプリンシパルで、namespaceはサービスアカウントのトップレベルグループであり、serviceはサービスの名前です。例えば、elastic/fleet-server
      サービスアカウントプリンシパルは、既知のサービスアカウントと一致する必要があります。
    • <token_name>
    • (必須、文字列) 既存のトークンの名前です。

Examples

次のコマンドは、elastic/fleet-serverサービスアカウントのためにmy-tokenという名前のサービスアカウントトークンを作成します。

Shell

  1. bin/elasticsearch-service-tokens create elastic/fleet-server my-token

出力はベアラートークンで、Base64エンコードされた文字列です。

Shell

  1. SERVICE_TOKEN elastic/fleet-server/my-token = AAEAAWVsYXN0aWM...vZmxlZXQtc2VydmVyL3Rva2VuMTo3TFdaSDZ

このベアラートークンを使用して、Elasticsearchクラスターに認証します。

Shell

  1. curl -H "Authorization: Bearer AAEAAWVsYXN0aWM...vZmxlZXQtc2VydmVyL3Rva2VuMTo3TFdaSDZ" http://localhost:9200/_cluster/health

ノードにxpack.security.http.ssl.enabledtrueに設定されている場合、リクエストURLにhttpsを指定する必要があります。

次のコマンドは、service_tokensファイルに定義されているすべてのサービスアカウントトークンをリストします。

Shell

  1. bin/elasticsearch-service-tokens list

すべてのサービスアカウントトークンのリストがターミナルに表示されます:

Txt

  1. elastic/fleet-server/my-token
  2. elastic/fleet-server/another-token

次のコマンドは、elastic/fleet-serverサービスアカウントのためのmy-tokenサービスアカウントトークンを削除します:

Shell

  1. bin/elasticsearch-service-tokens delete elastic/fleet-server my-token