为 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,它具有以下权限

    类型 权限 用途

    索引

    auto_configuretraces-apm*logs-apm*metrics-apm* 索引上

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

    索引

    create_doctraces-apm*logs-apm*metrics-apm* 索引上

    将事件写入 Elasticsearch

    集群

    monitor

    • 允许集群 UUID 检查,如果启用了Elasticsearch 安全性(默认情况下启用),则会在 APM 服务器启动前提条件的一部分中执行此检查。
    • 允许许可证检查,如果启用了基于尾部的采样,则需要此检查。

    如果您明确禁用了 Elastic 安全性并且没有使用基于尾部的采样,则此权限可能并非必需。

  2. 通用写入者角色分配给需要发布 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 读取代理中央配置(如果已配置),这需要以下权限

类型 权限 用途

空间

Read 在“应用程序”UI 上

允许 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 用户,您可以创建一个自定义角色

  1. 创建一个监控角色,例如 apm_monitoring_writer,它具有以下权限

    类型 权限 用途

    索引

    create_index.monitoring-beats-* 索引上

    在 Elasticsearch 中创建监控索引

    索引

    create_doc.monitoring-beats-* 索引上

    将监控事件写入 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(或类似名称)的监控角色,该角色具有以下权限:

    类型 权限 用途

    空间

    对堆栈监控具有Read权限

    对 Kibana 中的堆栈监控功能具有只读访问权限。

    空间

    对仪表盘具有Read权限

    对 Kibana 中的仪表盘功能具有只读访问权限。

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

    角色 用途

    monitoring_user

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

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

创建源映射角色编辑

如果启用了真实用户监控 (RUM),则需要其他权限才能读取源映射。

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

类型 权限 用途

索引

.apm-source-map索引具有read权限

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

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

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