授予独立 Elastic Agent 访问 Elasticsearch 的权限
编辑授予独立 Elastic Agent 访问 Elasticsearch 的权限编辑
您可以使用 API 密钥或用户凭据来授予独立 Elastic Agent 访问 Elasticsearch 资源的权限。以下是最小权限,这些权限是将日志、指标、跟踪和合成数据发送到 Elasticsearch 所必需的
-
monitor
集群权限 -
auto_configure
和create_doc
对logs-*-*
、metrics-*-*
、traces-*-*
和synthetics-*-*
的索引权限。
建议您使用 API 密钥,以避免在配置文件中暴露用户名和密码。
如果您使用的是 Fleet,请参阅 Fleet 注册令牌。
为独立代理创建 API 密钥编辑
API 密钥以纯文本形式发送,因此它们仅在与传输层安全性 (TLS) 结合使用时才提供安全性。我们的 托管 Elasticsearch 服务 在 Elastic Cloud 上开箱即用地提供安全、加密的连接!对于自管理的 Elasticsearch 集群,请参阅 公钥基础设施 (PKI) 证书。
您可以将 API 密钥设置为在特定时间过期,并且可以显式地使它们失效。任何具有 manage_api_key
或 manage_own_api_key
集群权限的用户都可以创建 API 密钥。
出于安全原因,我们建议每个 Elastic Agent 使用唯一的 API 密钥。您可以为每个用户创建尽可能多的 API 密钥。
如果您使用的是 Elastic Cloud 无服务器,则需要 API 密钥身份验证。
要为 Elastic Agent 创建 API 密钥
-
在 Elastic Cloud 或本地环境中,在 Kibana 中导航到 堆栈管理 > API 密钥,然后单击 创建 API 密钥。
在无服务器环境中,在 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 密钥。
创建独立代理角色编辑
虽然建议您使用 API 密钥而不是用户名和密码来访问 Elasticsearch(并且在无服务器环境中需要 API 密钥),但您可以创建一个具有所需权限的角色,将其分配给用户,并在 elastic-agent.yml
文件中指定用户的凭据。
- 在 Kibana 中,转到 堆栈管理 > 角色。
- 单击 创建角色,然后输入角色的名称。
- 在 集群权限 中,输入
monitor
。 -
在 索引权限 中,输入
-
logs-*-*
、metrics-*-*
、traces-*-*
和synthetics-*-*
在 索引 字段中。调整此列表以匹配您要收集的数据。例如,如果您没有使用 APM 或合成数据,请从此列表中删除
traces-*-*
和synthetics-*-*
。 -
auto_configure
和create_doc
在 权限 字段中。
-
- 创建角色并将其分配给用户。有关创建角色的更多信息,请参阅 Kibana 角色管理。
-
要使用这些凭据,请在
elastic-agent.yml
文件中设置用户名和密码