elasticsearch-service-tokens
editelasticsearch-service-tokens
edit使用 elasticsearch-service-tokens 命令来创建、列出和删除基于文件的服务账户令牌。
概要
editbin/elasticsearch-service-tokens ([create <service_account_principal> <token_name>]) | ([list] [<service_account_principal>]) | ([delete <service_account_principal> <token_name>])
描述
edit管理服务令牌的推荐方式是通过创建服务账户令牌 API。基于文件的令牌旨在与Elastic Cloud Enterprise和Elastic Cloud on Kubernetes等编排器一起使用。
此命令在创建第一个服务帐户令牌时,会在 $ES_HOME/config 目录中创建一个 service_tokens 文件。默认情况下,此文件不存在。Elasticsearch 会监控此文件的更改并动态重新加载它。
此命令仅对本地节点上的 service_tokens 文件进行更改。
如果服务令牌将用于对集群中的多个节点进行身份验证请求,则必须将 service_tokens 文件复制到每个节点。
有关服务帐户的行为以及服务令牌的管理的更多信息,请参阅服务帐户。
为了确保 Elasticsearch 在启动时能够读取服务账户令牌信息,请以运行 Elasticsearch 的同一用户身份运行 elasticsearch-service-tokens。以 root 或其他用户身份运行此命令会更新 service_tokens 文件的权限,从而阻止 Elasticsearch 访问它。
参数
edit-
create -
为指定的服务账户创建一个服务账户令牌。
Properties of
create-
-
(必需,字符串) 服务账户主体,格式为
<命名空间>/<服务>,其中命名空间是服务账户的顶级分组,而服务是服务的名称。例如,elastic/fleet-server。服务帐户主体必须匹配已知的服务帐户。
-
-
(必需,字符串) 令牌名称的标识符。
令牌名称必须至少为1个字符,且不超过256个字符。它们可以包含字母数字字符(
a-z、A-Z、0-9)、破折号(-)和下划线(_),但不能以下划线开头。令牌名称在关联的服务帐户的上下文中必须是唯一的。
-
-
list -
列出在
service_tokens文件中定义的所有服务账户令牌。如果您指定一个服务账户主体,该命令将仅列出属于指定服务账户的令牌。Properties of
list-
-
(可选, 字符串) 服务账户主体, 格式为
<命名空间>/<服务>, 其中命名空间是服务账户的顶级分组, 而服务是服务的名称。例如,elastic/fleet-server。服务帐户主体必须匹配已知的服务帐户。
-
-
delete -
删除指定服务帐户的服务帐户令牌。
Properties of
delete-
-
(必需,字符串) 服务账户主体,格式为
<命名空间>/<服务>,其中命名空间是服务账户的顶级分组,而服务是服务的名称。例如,elastic/fleet-server。服务帐户主体必须匹配已知的服务帐户。
-
- (必需,字符串) 现有令牌的名称。
-
示例
edit以下命令为elastic/fleet-server服务帐户创建一个名为my-token的服务帐户令牌。
bin/elasticsearch-service-tokens create elastic/fleet-server my-token
输出是一个承载令牌,这是一个Base64编码的字符串。
SERVICE_TOKEN elastic/fleet-server/my-token = AAEAAWVsYXN0aWM...vZmxlZXQtc2VydmVyL3Rva2VuMTo3TFdaSDZ
使用此承载令牌来验证您的 Elasticsearch 集群。
curl -H "Authorization: Bearer AAEAAWVsYXN0aWM...vZmxlZXQtc2VydmVyL3Rva2VuMTo3TFdaSDZ" http://localhost:9200/_cluster/health
如果你的节点将 xpack.security.http.ssl.enabled 设置为 true,那么
你必须在请求 URL 中指定 https。
以下命令列出了在 service_tokens 文件中定义的所有服务账户令牌。
bin/elasticsearch-service-tokens list
所有服务账户令牌的列表将显示在您的终端中:
elastic/fleet-server/my-token elastic/fleet-server/another-token
以下命令删除elastic/fleet-server服务帐户的my-token服务帐户令牌:
bin/elasticsearch-service-tokens delete elastic/fleet-server my-token