加载中

跨集群搜索和检测规则

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

要求

本节介绍了在检测规则中设置跨集群搜索的通用流程。有关流程各个部分的具体说明,请参考链接文档。

  1. 在本地集群上,使用以下方法之一建立信任并设置与远程集群的连接。无论使用哪种方法,请记住为远程集群指定的唯一名称,因为在整个过程中都需要使用它。

  2. 配置允许搜索远程索引的权限。所需的设置取决于用于连接集群的身份验证方法。有关完整详细信息,请参考配置跨集群搜索权限

    对于 API 密钥身份验证(推荐),远程集群的访问由跨集群 API 密钥控制,因此您只需在 本地 集群上创建一个角色。您无需在远程集群上创建角色。

    在本地集群上创建一个角色,并为远程集群别名及要搜索的索引分配远程索引权限。分配 readread_cross_clusterview_index_metadata 权限。

    例如,如果远程集群的连接名为 remote-security-data 且您想要查询 logs-* 索引

    				POST /_security/role/remote-search
    					{
      "remote_indices": [
        {
          "clusters": [ "remote-security-data" ],
          "names": [ "logs-*" ],
          "privileges": [ "read", "read_cross_cluster", "view_index_metadata" ]
        }
      ]
    }
    		

    如果用户还需查询本地索引或使用 Kibana,请将所需的本地权限添加到同一角色中,或为用户分配额外的角色。

    对于 TLS 证书身份验证,本地用户的角色名称会被转发到远程集群,远程集群通过评估本地定义的具有 相同名称 的角色来授权请求。在本地集群和远程集群上分别创建一个 名称完全相同 的角色,并为每个角色分配以下权限

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

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

    • 远程集群角色:为要搜索的索引分配 readread_cross_cluster 权限。此处无需包含远程集群的名称。

  3. 在本地集群上

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

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

      Rule source configuration
      注意

      如果规则的 Source 使用的是数据视图而不是索引模式,您必须使用 <remote_cluster_name>:<index_name> 模式单独为跨集群搜索定义该数据视图。有关定义数据视图的更多信息,请参考在跨集群搜索中使用数据视图

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

      重要提示

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

    4. 保存并启用规则。

每个检测规则都有其自己的 API 密钥,它决定了规则被允许访问的数据和操作。当用户创建新规则或修改现有规则时,其当前的权限将保存到规则的 API 密钥中。如果该用户的权限在未来发生更改,规则 不会 自动更新为该用户的最新权限——如果您想更新其权限,必须手动更新规则的 API 密钥。

重要提示

规则的 API 密钥与您可能为 本地和远程集群之间的身份验证 创建的 API 密钥有所不同。

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

  • 编辑并保存规则。

  • 手动更新规则的 API 密钥

    1. 在导航菜单中查找 Stack Management 或使用全局搜索字段,然后转到 Rules

    2. 使用搜索框和筛选器找到要更新的规则。例如,使用 Type 筛选器查找 Security 类别下的规则。

    3. 选择规则的操作菜单 ,然后选择 Update API key

      提示

      要更新多个规则,请勾选它们的复选框,然后单击 Selected x rules > Update API keys

© . This website operates independently and is not affiliated with or endorsed by Elasticsearch B.V. All brand names, logos, and trademarks are the property of their respective owners.