为 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 所需的特权:

  1. 创建一个通用写入者角色,例如名为 apm_writer,具有以下特权:

    类型 特权 目的

    索引

    traces-apm*logs-apm*metrics-apm* 索引上使用 auto_configure

    允许自动创建索引和数据流

    索引

    traces-apm*logs-apm*metrics-apm* 索引上使用 create_doc

    将事件写入 Elasticsearch

    集群

    监控

    • 允许集群 UUID 检查,如果启用Elasticsearch 安全(默认情况下启用),则作为 APM Server 启动前提条件的一部分执行。
    • 允许许可证检查,如果启用基于尾部的采样,则需要许可证检查。

    如果您已显式禁用 Elastic 安全并且没有使用基于尾部的采样,则此特权可能不是必需的。

  2. 通用写入者角色分配给需要发布 APM 数据的 APM Server 用户。

根据需要为用户分配其他 APM 功能角色,包括中央配置管理角色,这在大多数情况下是必需的

创建中央配置管理角色编辑

当启用中央配置管理时(默认情况下启用),所有用户都需要此角色中包含的特权。除非在 Applications UI 中已显式禁用中央配置管理,否则您需要此角色。

APM Server 充当 APM Agent 和 Applications UI 之间的代理。Applications UI 将任何更改的设置传达给 APM Server,以便您的 Agent 只需要轮询 Server 即可确定哪些中央配置设置已更改。

要创建具有在没有 Kibana 的情况下管理 Elasticsearch 中中央配置所需特权的角色,您必须使用Roles 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 Agent 中央配置正常工作。如果失败,如果已配置,它可能会回退到通过 Kibana 读取 Agent 中央配置,这需要以下特权:

类型 特权 目的

空间

在 Applications UI 上使用 Read

允许 APM Server 通过 Applications UI 管理中央配置

根据需要为用户分配其他 APM 功能角色,包括写入者角色,这在大多数情况下是必需的

是否在寻找从 Applications UI 或 APM UI API 使用中央配置所需的特权和角色?请参阅Applications UI 中央配置用户

创建监控角色编辑

Elasticsearch 安全功能提供了用于发布和查看监控数据的内置用户和角色。发布监控数据所需的特权和角色取决于用于收集该数据的方法。

发布监控数据编辑

Elastic Cloud 用户:本节不适用于我们的托管 Elasticsearch 服务。通过单击监控面板中的启用按钮,在 Elastic Cloud 上启用监控。

内部收集编辑

如果您使用内部收集来收集有关 APM Server 的指标,请执行以下操作之一:

  • 使用内置的 apm_system 用户或角色
  • 创建自定义角色

使用内置用户或角色

Elasticsearch 安全功能提供了 apm_system 内置用户apm_system 内置角色来发送监控信息。如果您的环境中可以使用内置用户,您可以创建一个分配了内置角色的用户,或者创建一个用户并手动分配发送监控信息所需的特权。

如果您使用内置的 apm_system 用户,请确保在使用前设置密码。

创建自定义角色

如果您不使用 apm_system 用户,则可以创建自定义角色

  1. 创建一个监控角色,例如名为 apm_monitoring_writer,具有以下特权:

    类型 特权 目的

    索引

    .monitoring-beats-* 索引上使用 create_index

    在 Elasticsearch 中创建监控索引

    索引

    .monitoring-beats-* 索引上使用 create_doc

    将监控事件写入 Elasticsearch

  2. 监控角色分配给需要将监控数据写入 Elasticsearch 的 APM Server 用户。

根据需要为用户分配其他 APM 功能角色,包括写入者角色中央配置管理角色,这两种角色在大多数情况下都是必需的。

Metricbeat 收集编辑

当使用 Metricbeat 收集指标时,无需使用 APM Server 创建角色或用户。有关设置 Metricbeat 收集的完整详细信息,请参阅使用 Metricbeat 收集

如果您使用 Metricbeat 来收集有关 APM Server 的指标,您可以执行以下操作之一:

  • 使用内置的 remote_monitoring_user 用户或角色
  • 创建自定义用户

使用内置用户或角色

Elasticsearch 安全功能提供了 remote_monitoring_user 内置用户,以及用于收集和发送监控信息的 remote_monitoring_collectorremote_monitoring_agent 内置角色。您可以使用内置用户(如果您的环境中可用),或者创建一个拥有收集和发送监控信息所需权限的用户。

如果您使用内置的 remote_monitoring_user 用户,请确保在使用前设置密码。

创建自定义用户

如果您不使用 remote_monitoring_user 用户,您可以创建一个自定义用户

  1. 在生产集群上创建一个监控用户,该用户将负责收集和发送监控信息。将以下角色分配给监控用户

    角色 目的

    remote_monitoring_collector

    从 APM Server 收集监控指标

    remote_monitoring_agent

    将监控数据发送到监控集群

根据需要为用户分配其他 APM 功能角色,包括写入者角色中央配置管理角色,这两种角色在大多数情况下都是必需的。

查看监控数据编辑

要授予用户查看监控数据所需的权限

  1. 创建一个监控角色,例如命名为 apm_monitoring_viewer,该角色具有以下权限

    类型 特权 目的

    空间

    在 Stack Monitoring 上 Read 权限

    在 Kibana 中对 Stack Monitoring 功能的只读访问权限。

    空间

    在 Dashboards 上 Read 权限

    在 Kibana 中对 Dashboards 功能的只读访问权限。

  2. 监控角色以及以下内置角色分配给需要查看 APM Server 监控数据的用户

    角色 目的

    monitoring_user

    授予对 APM Server 监控索引的访问权限

根据需要为用户分配其他 APM 功能角色,包括写入者角色中央配置管理角色,这两种角色在大多数情况下都是必需的。

创建一个源映射角色编辑

如果启用了真实用户监控,则需要额外的权限才能读取源映射。

要授予 APM Server 用户直接从 Elasticsearch 读取 RUM 源映射(不通过 Kibana)所需的权限,请将以下权限分配给该用户

类型 特权 目的

索引

.apm-source-map 索引上 read 权限

允许 APM Server 从 Elasticsearch 读取 RUM 源映射

根据需要为用户分配其他 APM 功能角色,包括写入者角色中央配置管理角色,这两种角色在大多数情况下都是必需的。

只要 APM Server 成功与 Elasticsearch 通信,上述权限就足以使 RUM 源映射正常工作。如果失败,它可能会回退到通过 Kibana 读取源映射(如果已配置),这需要额外的 Kibana 权限。有关详细信息,请参阅RUM 源映射 API