为 APM Server 用户创建和分配功能角色
编辑为 APM Server 用户创建和分配功能角色
编辑通过创建多个自定义的功能相关角色,并根据每个用户或组需要访问的功能,将一个或多个这些角色分配给每个用户或组,从而基于功能管理访问权限。
角色标识一组权限,这些权限转换为对资源的权限。您可以将任意数量的角色与用户或组关联。用户的全部权限集由其所有角色中权限的并集定义。
通常,在创建角色时,您将使用三种类型的权限
- Elasticsearch 集群权限:管理用户可以对集群执行的操作。
- Elasticsearch 索引权限:控制对集群中特定索引中的数据的访问。
- Kibana 空间权限:授予用户对 Kibana 中的功能和应用程序的写入或读取访问权限。
以下是 APM Server 用户可能需要的常见角色
将事件发布到 Elasticsearch 的 APM 用户必须具有写入 APM 数据流的权限。
当 APM Server 不直接写入 Elasticsearch 时,不需要此权限。例如,在某些情况下,您可以将 APM Server 配置为写入另一个输出,例如 Logstash、Kafka 或 libbeat 支持的任何其他输出。在这些情况下,需要将不同的身份验证凭据传递到apm-server.agent.config.elasticsearch
。
要授予 APM Server 用户将事件写入 Elasticsearch 的所需权限
-
创建一个通用写入者角色,例如
apm_writer
,它具有以下权限类型 权限 用途 索引
auto_configure
在traces-apm*
、logs-apm*
和metrics-apm*
索引上允许自动创建索引和数据流
索引
create_doc
在traces-apm*
、logs-apm*
和metrics-apm*
索引上将事件写入 Elasticsearch
集群
monitor
- 允许集群 UUID 检查,如果启用了Elasticsearch 安全性(默认情况下启用),则会在 APM 服务器启动前提条件的一部分中执行此检查。
- 允许许可证检查,如果启用了基于尾部的采样,则需要此检查。
如果您明确禁用了 Elastic 安全性并且您没有使用基于尾部的采样,则此权限可能并非必需。
- 将通用写入者角色分配给需要发布 APM 数据的 APM Server 用户。
根据需要为用户分配其他 APM 功能角色,包括中央配置管理角色,这在大多数情况下是必需的。
当启用中央配置管理时(默认情况下启用),此角色中包含的权限对于所有用户都是必需的。除非在“应用程序”UI 中明确禁用中央配置管理,否则您需要此角色。
APM Server 充当您的 APM 代理和“应用程序”UI 之间的代理。 “应用程序”UI 将任何更改的设置传达给 APM Server,以便您的代理只需要轮询服务器即可确定哪些中央配置设置已更改。
要创建具有在 Elasticsearch 中管理中央配置所需权限的角色(无需 Kibana),您必须使用角色 API(所需权限不能分配给 Kibana 中的角色)
POST /_security/role/apm_agentcfg { "description": "Allow APM Server to manage central configurations in Elasticsearch.", "indices": [ { "names": [".apm-agent-configuration"], "privileges": ["read"], "allow_restricted_indices": true } ] }
只要 APM Server 成功与 Elasticsearch 通信,之前的权限就足以使 APM 代理中央配置正常工作。如果失败,它可能会回退到通过 Kibana 读取代理中央配置(如果已配置),这需要以下权限
类型 | 权限 | 用途 |
---|---|---|
空间 |
|
允许 APM Server 通过“应用程序”UI 管理中央配置 |
根据需要为用户分配其他 APM 功能角色,包括写入者角色,这在大多数情况下是必需的。
正在寻找从“应用程序”UI 或 APM UI API 使用中央配置所需的权限和角色?请参阅应用程序 UI 中央配置用户。
Elasticsearch 安全功能提供用于发布和查看监控数据的内置用户和角色。发布监控数据所需的权限和角色取决于用于收集该数据的方法。
Elastic Cloud 用户: 本节不适用于我们的托管 Elasticsearch 服务。Elastic Cloud 上的监控是通过点击监控面板中的启用按钮来启用的。
如果您使用内部收集来收集有关 APM Server 的指标,则:
- 使用内置的
apm_system
用户或角色 - 创建自定义角色
使用内置用户或角色
Elasticsearch 安全功能提供 apm_system
内置用户 和 apm_system
内置角色 来发送监控信息。您可以使用内置用户(如果它在您的环境中可用),创建一个分配了内置角色的用户,或者创建一个用户并手动分配发送监控信息所需的权限。
如果您使用内置的 apm_system
用户,请确保在使用前设置密码。
创建自定义角色
如果您不使用 apm_system
用户,您可以创建一个自定义角色
-
创建一个监控角色,例如
apm_monitoring_writer
,它具有以下权限类型 权限 用途 索引
create_index
在.monitoring-beats-*
索引上在 Elasticsearch 中创建监控索引
索引
create_doc
在.monitoring-beats-*
索引上将监控事件写入 Elasticsearch
- 将监控角色分配给需要将监控数据写入 Elasticsearch 的 APM Server 用户。
根据需要为用户分配其他 APM 功能角色,包括写入者角色和中央配置管理角色,这两者在大多数情况下都是必需的。
使用 Metricbeat 收集指标时,无需使用 APM Server 创建角色或用户。有关设置 Metricbeat 收集的完整详细信息,请参阅使用 Metricbeat 收集。
如果您使用Metricbeat来收集有关 APM Server 的指标,您可以:
- 使用内置的
remote_monitoring_user
用户或角色 - 创建一个自定义用户
使用内置用户或角色
Elasticsearch 安全特性提供内置用户remote_monitoring_user
(参见内置用户)以及内置角色remote_monitoring_collector
和remote_monitoring_agent
(参见内置角色)用于收集和发送监控信息。您可以使用内置用户(如果您的环境中可用),或者创建一个拥有收集和发送监控信息所需权限的用户。
如果您使用内置用户remote_monitoring_user
,请确保在使用前设置密码。
创建一个自定义用户
如果您不使用remote_monitoring_user
用户,您可以创建一个自定义用户。
-
在生产集群上创建一个监控用户,用于收集和发送监控信息。为该监控用户分配以下角色:
角色 用途 remote_monitoring_collector
从APM Server收集监控指标
remote_monitoring_agent
将监控数据发送到监控集群
根据需要为用户分配其他 APM 功能角色,包括写入者角色和中央配置管理角色,这两者在大多数情况下都是必需的。
要授予用户查看监控数据所需的权限:
-
创建一个名为
apm_monitoring_viewer
(或类似名称)的监控角色,该角色具有以下权限:类型 权限 用途 空间
对堆栈监控具有
Read
权限对 Kibana 中的堆栈监控功能具有只读访问权限。
空间
对仪表盘具有
Read
权限对 Kibana 中的仪表盘功能具有只读访问权限。
-
为需要查看 APM Server 监控数据的用户分配监控角色以及以下内置角色:
角色 用途 monitoring_user
授予对 APM Server 监控索引的访问权限
根据需要为用户分配其他 APM 功能角色,包括写入者角色和中央配置管理角色,这两者在大多数情况下都是必需的。
如果启用了真实用户监控 (RUM),则需要其他权限才能读取源映射。
要授予 APM Server 用户直接从 Elasticsearch 读取 RUM 源映射(无需 Kibana)所需的权限,请为该用户分配以下权限:
类型 | 权限 | 用途 |
---|---|---|
索引 |
对 |
允许 APM Server 从 Elasticsearch 读取 RUM 源映射 |
根据需要为用户分配其他 APM 功能角色,包括写入者角色和中央配置管理角色,这两者在大多数情况下都是必需的。
只要 APM Server 成功与 Elasticsearch 通信,上述权限就足以使 RUM 源映射正常工作。如果失败,它可能会回退到通过 Kibana 读取源映射(如果已配置),这需要额外的 Kibana 权限。有关更多详细信息,请参见RUM 源映射 API。