跨集群搜索和检测规则
编辑跨集群搜索和检测规则
编辑跨集群搜索是 Elasticsearch 的一项功能,允许一个集群(本地集群)查询另一个单独集群(远程集群)中的数据。Elastic Security 的检测规则可以执行跨集群搜索,以查询远程集群中的数据。
在检测规则中设置跨集群搜索
编辑本节介绍了在检测规则中设置跨集群搜索的一般过程。有关该过程每个部分的具体说明,请参阅链接的文档。
-
在本地集群上,使用以下方法之一建立信任并设置与远程集群的连接。无论使用哪种方法,请记下您为远程集群指定的唯一名称,因为您将在整个过程中使用它。
- 使用 API 密钥身份验证添加远程集群 — 集群必须使用 Elastic Stack 8.14 或更高版本。
- 使用 TLS 证书身份验证添加远程集群
-
在本地和远程集群上,为跨集群搜索权限创建一个角色,并确保两个角色具有相同的名称。为每个角色分配以下权限
-
本地集群角色:使用每个索引的本地和远程索引模式,将
read
权限分配给您要搜索的索引。要指定远程索引,请使用模式<remote_cluster_name>:<index_name>
。例如,如果远程集群的名称为
remote-security-data
,并且您想查询logs-*
索引,请同时包含logs-*
和remote-security-data:logs-*
索引模式,并将read
权限分配给它们。 -
远程集群角色:将
read
和read_cross_cluster
权限分配给您要搜索的索引。您无需在此处包含远程集群的名称。
-
-
在本地集群上
-
将您刚刚创建的角色分配给您要配置跨集群检测规则的用户。
- 此步骤确保从用户到规则本身应用读取远程索引的权限。当用户创建新规则或保存对现有规则的编辑时,其当前权限将保存到规则的 API 密钥中。如果该用户的权限在将来发生更改,则规则的 API 密钥将不会更新,直到您手动更新它。有关详细信息,请参阅更新规则的 API 密钥。
- 此用户还必须具有适当的权限来管理和预览规则。
-
以此用户身份,配置一个搜索远程索引的规则:创建或编辑规则,然后在 Source 部分中输入
<remote_cluster_name>:<index_name>
模式。如果规则的 Source 使用数据视图而不是索引模式,则必须使用
<remote_cluster_name>:<index_name>
模式单独定义跨集群搜索的数据视图。有关定义数据视图的更多信息,请参阅将数据视图与跨集群搜索一起使用。 -
(可选)预览规则以测试其预期结果。
规则预览使用当前用户的跨集群搜索权限,而规则本身使用其 API 密钥中保存的权限快照运行,该密钥是在创建时保存的。如果执行预览的用户具有与规则的 API 密钥中保存的权限不同的权限,则预览结果可能与规则的实际行为不同。
- 保存并启用该规则。
-
更新规则的 API 密钥
编辑每个检测规则都有其自己的 API 密钥,该密钥确定规则允许访问的数据和操作。当用户创建新规则或更改现有规则时,其当前权限将保存到规则的 API 密钥中。如果该用户的权限在将来发生更改,则规则不会自动更新用户的最新权限 - 如果您想更新其权限,则必须更新规则的 API 密钥。
规则的 API 密钥与您可能为本地和远程集群之间的身份验证创建的 API 密钥不同。
要更新规则的 API 密钥,请以具有要应用于规则的权限的用户身份登录到本地集群,然后执行以下任一操作
- 编辑并保存规则。
-
手动更新规则的 API 密钥
- 在导航菜单中或使用全局搜索字段查找堆栈管理,然后转到规则。
- 使用搜索框和过滤器查找要更新的规则。例如,使用类型过滤器查找安全性类别下的规则。
-
选择规则的操作菜单(…),然后选择更新 API 密钥。
要更新多个规则,请选中它们的复选框,然后单击已选择 x 个规则→更新 API 密钥。