使用 API 密钥授予访问权限
编辑

除了使用用户名和密码之外,您还可以使用 API 密钥来授予对 Elasticsearch 资源的访问权限。您可以设置 API 密钥在特定时间过期,并且可以显式使其失效。任何具有 manage_api_keymanage_own_api_key 集群权限的用户都可以创建 API 密钥。

APM Server 实例通常将收集的数据和监控信息都发送到 Elasticsearch。如果您将两者都发送到同一个集群,则可以使用相同的 API 密钥。对于不同的集群,您需要为每个集群使用一个 API 密钥。

出于安全原因,我们建议每个 APM Server 实例使用唯一的 API 密钥。您可以根据需要为每个用户创建任意数量的 API 密钥。

创建用于写入事件的 API 密钥编辑

要打开 API 密钥,请在主菜单中找到 堆栈管理,或使用 全局搜索字段。单击 创建 API 密钥

API key creation

输入 API 密钥的名称并选择 限制权限。在角色描述符框中,为新的 API 密钥分配适当的权限。例如

{
    "apm_writer": {
        "cluster": ["monitor"],
        "index": [
            {
                "names": ["traces-apm*","logs-apm*", "metrics-apm*"],
                "privileges": ["auto_configure", "create_doc"]
            }
        ]
    },
    "apm_sourcemap": {
        "index": [
            {
                "names": [".apm-source-map"],
                "privileges": ["read"]
            }
        ]
    },
    "apm_agentcfg": {
        "index": [
            {
                "names": [".apm-agent-configuration"],
                "privileges": ["read"],
                "allow_restricted_indices": true
            }
        ]
    }
}

此示例仅提供 写入数据 的权限。有关其他权限和信息,请参阅 使用功能角色

要设置 API 密钥的过期日期,请选择 在一段时间后过期 并输入 API 密钥的生命周期(以天为单位)。

单击 创建 API 密钥。在下拉菜单中,切换到 Beats 并复制 API 密钥。

现在您可以在 apm-server.yml 配置文件中使用此 API 密钥

output.elasticsearch:
  api_key: TiNAGG4BaaMdaH1tRfuU:KnR6yE41RrSowb0kQ0HWoA 

格式为 id:api_key (如 Beats 下拉菜单中所示)

创建用于监控的 API 密钥编辑

要打开 API 密钥,请在主菜单中找到 堆栈管理,或使用 全局搜索字段。单击 创建 API 密钥

API key creation

输入 API 密钥的名称并选择 限制权限。在角色描述符框中,为新的 API 密钥分配适当的权限。例如

{
    "apm_monitoring": {
        "index": [
            {
                "names": [".monitoring-beats-*"],
                "privileges": ["create_index", "create_doc"]
            }
      ]
    }
}

此示例仅提供 发布监控数据 的权限。有关其他权限和信息,请参阅 使用功能角色

要设置 API 密钥的过期日期,请选择 在一段时间后过期 并输入 API 密钥的生命周期(以天为单位)。

单击 创建 API 密钥。在下拉菜单中,切换到 Beats 并复制 API 密钥。

现在您可以在 apm-server.yml 配置文件中像这样使用此 API 密钥

monitoring.elasticsearch:
  api_key: TiNAGG4BaaMdaH1tRfuU:KnR6yE41RrSowb0kQ0HWoA 

格式为 id:api_key (如 Beats 下拉菜单中所示)

使用 Elasticsearch API 创建 API 密钥编辑

您还可以使用 Elasticsearch 的 创建 API 密钥 API 来创建新的 API 密钥。例如

POST /_security/api_key
{
  "name": "apm_host001", 
  "role_descriptors": {
    "apm_writer": { 
      "cluster": ["monitor"],
      "index": [
        {
          "names": ["traces-apm*","logs-apm*", "metrics-apm*"],
          "privileges": ["auto_configure", "create_doc"]
        }
      ]
    },
    "apm_sourcemap": {
      "index": [
        {
          "names": [".apm-source-map"],
          "privileges": ["read"]
        }
      ]
    },
    "apm_agentcfg": {
      "index": [
        {
          "names": [".apm-agent-configuration"],
          "privileges": ["read"],
          "allow_restricted_indices": true
        }
      ]
    }
  }
}

API 密钥的名称

授予的权限,请参阅 使用功能角色

有关更多信息,请参阅 创建 API 密钥 参考资料。

了解有关 API 密钥的更多信息编辑

有关更多信息,请参阅 Elasticsearch API 密钥文档