elasticsearch-service-tokens
编辑elasticsearch-service-tokens
编辑使用 elasticsearch-service-tokens
命令来创建、列出和删除基于文件的服务帐户令牌。
概要
编辑bin/elasticsearch-service-tokens ([create <service_account_principal> <token_name>]) | ([list] [<service_account_principal>]) | ([delete <service_account_principal> <token_name>])
描述
编辑管理服务令牌的推荐方法是通过创建服务帐户令牌 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 访问它。
参数
编辑-
创建
-
为指定的服务帐户创建服务帐户令牌。
create
的属性-
<service_account_principal>
-
(必需,字符串)服务帐户主体,格式为
<命名空间>/<服务>
,其中命名空间
是服务帐户的顶层分组,服务
是服务的名称。例如,elastic/fleet-server
。服务帐户主体必须与已知的服务帐户匹配。
-
<token_name>
-
(必需,字符串)令牌名称的标识符。
令牌名称必须至少包含 1 个字符,最多包含 256 个字符。 它们可以包含字母数字字符(
a-z
、A-Z
、0-9
)、破折号(-
)和下划线(_
),但不能以下划线开头。令牌名称在关联服务帐户的上下文中必须是唯一的。
-
-
列表
-
列出
service_tokens
文件中定义的所有服务帐户令牌。 如果您指定了服务帐户主体,则该命令仅列出属于指定服务帐户的令牌。list
的属性-
<service_account_principal>
-
(可选,字符串)服务帐户主体,格式为
<命名空间>/<服务>
,其中命名空间
是服务帐户的顶层分组,服务
是服务的名称。例如,elastic/fleet-server
。服务帐户主体必须与已知的服务帐户匹配。
-
-
删除
-
删除指定服务帐户的服务帐户令牌。
delete
的属性-
<service_account_principal>
-
(必需,字符串)服务帐户主体,格式为
<命名空间>/<服务>
,其中命名空间
是服务帐户的顶层分组,服务
是服务的名称。例如,elastic/fleet-server
。服务帐户主体必须与已知的服务帐户匹配。
-
<token_name>
- (必需,字符串)现有令牌的名称。
-
示例
编辑以下命令为 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" https://127.0.0.1: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