授予独立 Elastic Agent 访问 Elasticsearch 的权限
编辑授予独立 Elastic Agent 访问 Elasticsearch 的权限
编辑您可以使用 API 密钥或用户凭据来授予独立 Elastic Agent 访问 Elasticsearch 资源的权限。以下是最小权限,这些权限是将日志、指标、跟踪和合成数据发送到 Elasticsearch 所必需的
-
monitor
集群权限 -
auto_configure
和create_doc
索引权限,适用于logs-*-*
、metrics-*-*
、traces-*-*
和synthetics-*-*
。
建议您使用 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 中导航到 堆栈管理 > 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 中,转到 堆栈管理 > 角色。
- 单击 创建角色 并输入角色的名称。
- 在 集群权限 中,输入
monitor
。 -
在 索引权限 中,输入
-
logs-*-*
、metrics-*-*
、traces-*-*
和synthetics-*-*
在 索引 字段中。调整此列表以匹配您要收集的数据。例如,如果您未使用 APM 或合成数据,请从此列表中删除
traces-*-*
和synthetics-*-*
。 -
auto_configure
和create_doc
在 权限 字段中。
-
- 创建角色并将其分配给用户。有关创建角色的更多信息,请参阅 Kibana 角色管理。
-
要使用这些凭据,请在
elastic-agent.yml
文件中设置用户名和密码