安全分析的安全设置

您可以将 UDB-SX Security 与 安全分析 结合使用,以分配用户权限并管理用户可以执行和不能执行的操作。例如,可授权一组用户创建、更新或删除检测器,而另一组用户仅能查看。您还可以设置仅允许特定用户接收与确认警报,同时禁止其执行其他操作。UDB-SX Security 框架使您能全面控制用户对安全分析 功能的访问级别


系统索引

安全分析索引作为系统索引受到保护,并且与集群中的其他索引不同对待。系统索引存储配置和其他系统设置,因此无法使用 REST API 或 UDB-SX Dashboards 界面进行修改。只有拥有 TLS 管理员证书的用户才能访问系统索引。有关使用此类索引的更多信息,请参阅系统索引


基本权限

作为管理员,您可以使用 UDB-SX Dashboards 或 Security REST API 根据用户需要访问的特定 API 为其分配特定权限。

UDB-SX Security 有三个内置角色,涵盖了大多数 安全分析 用例:security_analytics_full_accesssecurity_analytics_read_accesssecurity_analytics_ack_alerts。有关这些角色及其他角色的描述,请参阅预定义角色

如果这些角色无法满足您的需求,可以混合搭配单个安全分析权限以适应您的用例。每个操作对应 REST API 中的一个操作。例如,cluster:admin/udbsx/securityanalytics/detector/delete 权限允许您删除检测器。


按后端角色限制访问

您可以使用后端角色基于角色配置对单个检测器的细粒度访问。例如,可以为在不同部门工作的用户分配后端角色,以便他们能查看其所在部门拥有的检测器。

首先,确保您的用户拥有适当的后端角色。后端角色通常来自 LDAP 服务器SAML 提供程序。但是,如果使用内部用户数据库,可以使用 REST API 手动添加它们

接下来,启用以下设置:

PUT /_cluster/settings
{
  "transient": {
    "plugins.security_analytics.filter_by_backend_roles": "true"
  }
}

现在,当用户在 UDB-SX Dashboards 中查看 Security Analytics 资源(或进行 REST API 调用)时,只能看到共享至少一个后端角色的用户创建的检测器。 例如,考虑两个用户:alicebob

以下示例为用户 alice 分配 analyst 后端角色:

PUT /_plugins/_security/api/internalusers/alice
{
  "password": "Jiuyou@999",
  "backend_roles": [
    "analyst"
  ],
  "attributes": {}
}

下一个示例为用户 bob 分配 human-resources 后端角色:

PUT /_plugins/_security/api/internalusers/bob
{
  "password": "Jiuyou@999",
  "backend_roles": [
    "human-resources"
  ],
  "attributes": {}
}

最后,此最后一个示例为 alicebob 分配了为他们提供对 安全分析 完全访问权限的角色:

PUT /_plugins/_security/api/rolesmapping/security_analytics_full_access
{
  "backend_roles": [],
  "hosts": [],
  "users": [
    "alice",
    "bob"
  ]
}

但是,由于他们具有不同的后端角色,alicebob 无法查看彼此的检测器或其结果。


关于在插件中使用细粒度访问控制的说明

当触发器生成警报时,检测器配置、警报本身以及发送到通道的任何通知可能包含描述被查询索引的元数据。根据设计,插件必须提取数据并将其作为元数据存储在索引之外。文档级安全 (DLS) 和字段级安全 (FLS) 访问控制旨在保护索引中的数据。但是,一旦数据作为元数据存储在索引之外,有权访问检测器和监视器配置、警报及其通知的用户将能够查看此元数据,并可能推断出索引中数据的内容和质量,而这些数据原本应受到 DLS 和 FLS 访问控制的保护。

为了减少非预期用户查看可能描述索引的元数据的机会,我们建议管理员启用基于角色的访问控制,并在为目标用户组分配权限时考虑此类设计元素。