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

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

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

出于安全原因,我们建议为每个 APM 服务器实例使用唯一的 API 密钥。您可以为每个用户创建尽可能多的 API 密钥。

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

在 Kibana 中,导航到 堆栈管理 > API 密钥 并单击 创建 API 密钥

API key creation

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

{
    "apm_writer": {
        "index": [
            {
                "names": ["apm-*"],
                "privileges": ["create_index", "create_doc"]
            }
        ]
    },
    "apm_sourcemap": {
        "index": [
            {
                "names": [".apm-source-map"],
                "privileges": ["read"]
            }
        ]
    },
    "apm_agentcfg": {
        "index": [
            {
                "names": [".apm-agent-configuration"],
                "privileges": ["read"]
            }
        ]
    }
}

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

要为 API 密钥设置过期日期,请选择 过期时间 并以天为单位输入 API 密钥的生存期。

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

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

output.elasticsearch:
  api_key: TiNAGG4BaaMdaH1tRfuU:KnR6yE41RrSowb0kQ0HWoA 

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

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

在 Kibana 中,导航到 堆栈管理 > 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": { 
      "index": [
        {
          "names": ["apm-*"],
          "privileges": ["create_index", "create_doc"]
        }
      ]
    },
    "apm_sourcemap": {
      "index": [
        {
          "names": [".apm-source-map"],
          "privileges": ["read"]
        }
      ]
    },
    "apm_agentcfg": {
      "index": [
        {
          "names": [".apm-agent-configuration"],
          "privileges": ["read"]
        }
      ]
    }
  }
}

API 密钥的名称

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

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

详细了解 API 密钥编辑

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