使用 API 密钥授予访问权限

编辑

使用 API 密钥授予访问权限

编辑

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

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

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

在为 Auditbeat 创建 API 密钥之前,请查阅 授予用户对安全资源的访问权限

创建用于发布的 API 密钥

编辑

要创建一个用于将数据写入 Elasticsearch 的 API 密钥,请使用 创建 API 密钥 API,例如

POST /_security/api_key
{
  "name": "auditbeat_host001", 
  "role_descriptors": {
    "auditbeat_writer": { 
      "cluster": ["monitor", "read_ilm", "read_pipeline"],
      "index": [
        {
          "names": ["auditbeat-*"],
          "privileges": ["view_index_metadata", "create_doc", "auto_configure"]
        }
      ]
    }
  }
}

API 密钥的名称

授予的权限,请参阅 授予用户对安全资源的访问权限

有关发布事件所需的权限列表,请参阅 创建 发布 用户

返回值将如下所示

{
  "id":"TiNAGG4BaaMdaH1tRfuU", 
  "name":"auditbeat_host001",
  "api_key":"KnR6yE41RrSowb0kQ0HWoA" 
}

此 API 密钥的唯一 ID

生成的 API 密钥

您现在可以在您的 auditbeat.yml 配置文件中使用此 API 密钥,如下所示

output.elasticsearch:
  api_key: TiNAGG4BaaMdaH1tRfuU:KnR6yE41RrSowb0kQ0HWoA 

格式为 id:api_key(由 创建 API 密钥 返回)

创建用于监控的 API 密钥

编辑

要创建一个用于将监控数据发送到 Elasticsearch 的 API 密钥,请使用 创建 API 密钥 API,例如

POST /_security/api_key
{
  "name": "auditbeat_host001", 
  "role_descriptors": {
    "auditbeat_monitoring": { 
      "cluster": ["monitor"],
      "index": [
        {
          "names": [".monitoring-beats-*"],
          "privileges": ["create_index", "create"]
        }
      ]
    }
  }
}

API 密钥的名称

授予的权限,请参阅 授予用户对安全资源的访问权限

有关发送监控数据所需的权限列表,请参阅 创建 监控 用户

返回值将如下所示

{
  "id":"TiNAGG4BaaMdaH1tRfuU", 
  "name":"auditbeat_host001",
  "api_key":"KnR6yE41RrSowb0kQ0HWoA" 
}

此 API 密钥的唯一 ID

生成的 API 密钥

您现在可以在您的 auditbeat.yml 配置文件中使用此 API 密钥,如下所示

monitoring.elasticsearch:
  api_key: TiNAGG4BaaMdaH1tRfuU:KnR6yE41RrSowb0kQ0HWoA 

格式为 id:api_key(由 创建 API 密钥 返回)

了解更多关于 API 密钥的信息

编辑

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