授予独立的 Elastic Agent 访问 Elasticsearch 的权限
编辑授予独立的 Elastic Agent 访问 Elasticsearch 的权限
编辑您可以使用 API 密钥或用户凭据来授予独立的 Elastic Agent 访问 Elasticsearch 资源的权限。以下是向 Elasticsearch 发送日志、指标、跟踪和综合监控所需的最小权限:
-
monitor
集群权限 -
对
logs-*-*
、metrics-*-*
、traces-*-*
和synthetics-*-*
索引的auto_configure
和create_doc
索引权限。
建议您使用 API 密钥,以避免在配置文件中暴露用户名和密码。
如果您正在使用 Fleet,请参阅 Fleet 注册令牌。
为独立 Agent 创建 API 密钥
编辑API 密钥以明文形式发送,因此只有与传输层安全 (TLS) 结合使用时才能提供安全性。我们在 Elastic Cloud 上的 托管 Elasticsearch 服务 开箱即用地提供安全、加密的连接!对于自管理的 Elasticsearch 集群,请参阅 公钥基础设施 (PKI) 证书。
您可以设置 API 密钥在特定时间过期,并且可以显式地使其失效。任何具有 manage_api_key
或 manage_own_api_key
集群权限的用户都可以创建 API 密钥。
出于安全考虑,我们建议每个 Elastic Agent 使用唯一的 API 密钥。您可以根据需要为每个用户创建任意数量的 API 密钥。
如果您正在使用 Elastic Cloud Serverless,则需要进行 API 密钥身份验证。
要为 Elastic Agent 创建 API 密钥
-
在 Elastic Cloud 或本地环境中,在 Kibana 中导航至 Stack Management > API 密钥,然后单击 创建 API 密钥。
在 Serverless 环境中,在 Kibana 中导航至 项目设置 > 管理 > API 密钥,然后单击 创建 API 密钥。
- 输入 API 密钥的名称,然后选择 控制安全权限。
-
在角色描述符框中,复制并粘贴以下 JSON。此示例创建一个具有摄取日志、指标、跟踪和综合监控权限的 API 密钥。
- 要设置 API 密钥的过期日期,请选择 在一段时间后过期 并输入 API 密钥的有效期(以天为单位)。
-
单击 创建 API 密钥。
您将看到一条消息,指示密钥已创建,以及编码后的密钥。默认情况下,API 密钥使用 Base64 编码,但这不适用于 Elastic Agent。
-
单击 Base64 旁边的向下箭头,然后选择 Beats。
- 复制 API 密钥。您将在下一步中需要它,并且您将无法再次查看它。
-
要使用 API 密钥,请在
elastic-agent.yml
文件中指定api_key
设置。例如:
有关在 Kibana 中创建 API 密钥的详细信息,请参阅 API 密钥。
创建独立的 Agent 角色
编辑尽管建议您使用 API 密钥而不是用户名和密码来访问 Elasticsearch(并且在 Serverless 环境中需要 API 密钥),但您可以创建具有所需权限的角色,将其分配给用户,并在 elastic-agent.yml
文件中指定用户的凭据。
- 在 Kibana 中,转到 Stack Management > 角色。
- 单击 创建角色 并输入角色的名称。
- 在 集群权限 中,输入
monitor
。 -
在 索引权限 中,在 索引 字段中输入
-
logs-*-*
、metrics-*-*
、traces-*-*
和synthetics-*-*
。调整此列表以匹配您要收集的数据。例如,如果您不使用 APM 或综合监控,请从此列表中删除
traces-*-*
和synthetics-*-*
。 -
在 权限 字段中输入
auto_configure
和create_doc
。
-
- 创建角色并将其分配给用户。有关创建角色的详细信息,请参阅 Kibana 角色管理。
-
要使用这些凭据,请在
elastic-agent.yml
文件中设置用户名和密码