跨集群搜索和检测规则编辑

跨集群搜索 是一个 Elasticsearch 功能,允许一个集群(本地集群)查询另一个集群(远程集群)中的数据。Elastic Security 的检测规则可以执行跨集群搜索以查询远程集群中的数据。

在检测规则中设置跨集群搜索编辑

本节介绍了在检测规则中设置跨集群搜索的一般过程。有关每个过程部分的具体说明,请参阅链接的文档。

此过程使用 TLS 证书身份验证来添加远程集群。Elastic Stack 8.10.0 引入了使用 API 密钥身份验证 的另一种方法,但它尚不支持检测规则。

  1. 在本地集群上,建立信任并设置与远程集群的连接。请注意您为远程集群提供的唯一名称,因为您需要在整个过程中使用它。
  2. 在本地集群和远程集群上,为跨集群搜索权限创建角色,并确保这两个角色具有相同的名称。为每个角色分配以下权限:

    1. 本地集群角色:为要搜索的索引分配 read 权限,使用每个索引的本地远程索引模式两者。要指定远程索引,请使用模式 <remote_cluster_name>:<index_name>

      例如,如果远程集群的名称是 remote-security-data,并且您要查询 logs-* 索引,请包含 logs-*remote-security-data:logs-* 索引模式,并将它们分配 read 权限。

      Local cluster role configuration
    2. 远程集群角色:为要搜索的索引分配 readread_cross_cluster 权限。您无需在此处包含远程集群的名称。

      Remote cluster role configuration
  3. 在本地集群上

    1. 将您刚刚创建的角色分配给要配置跨集群检测规则的用户。

      • 此步骤确保从用户到规则本身应用读取远程索引的权限。当用户创建新规则或保存对现有规则的编辑时,其当前权限将保存到规则的 API 密钥。如果该用户的权限将来发生更改,则规则的 API 密钥不会更新,直到您手动更新它为止。有关详细信息,请参阅 更新规则的 API 密钥
      • 该用户还必须具有 适当的权限 来管理和预览规则。
    2. 以该用户身份,配置搜索远程索引的规则:创建或编辑规则,然后在 部分中输入 <remote_cluster_name>:<index_name> 模式。

      Rule source configuration

      如果规则的 使用数据视图而不是索引模式,则必须使用 <remote_cluster_name>:<index_name> 模式单独定义跨集群搜索的数据视图。有关定义数据视图的更多信息,请参阅 将数据视图与跨集群搜索一起使用

    3. (可选)预览规则 以测试其预期结果。

      规则预览使用当前用户的跨集群搜索权限,而规则本身使用其 API 密钥创建时的快照中保存的权限运行。如果执行预览的用户具有与保存在规则 API 密钥中的权限不同的权限,则预览结果可能与规则的实际行为不同。

    4. 保存并启用规则。

更新规则的 API 密钥编辑

当用户创建新规则或保存对现有规则的编辑时,其当前权限将保存到 规则的 API 密钥。如果该用户的权限将来发生更改,则规则 不会 自动更新为用户的最新权限 - 您必须更新规则的 API 密钥才能更新其权限。

要更新规则的 API 密钥,请以具有要应用于规则的权限的用户身份登录本地集群,然后执行以下任一操作:

  • 编辑并保存规则。
  • 手动更新规则的 API 密钥

    1. 转到 Kibana → 堆栈管理规则
    2. 使用搜索框和过滤器查找要更新的规则。例如,使用 类型 过滤器查找 安全 类别下的规则。
    3. 选择规则的操作菜单 (…​),然后选择 更新 API 密钥

      要更新多个规则,请选中它们的复选框,然后单击 已选更新 API 密钥