使用 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 密钥文档