OpenSearch 安全分析的安全配置
您可以使用 OpenSearch 安全功能与安全分析功能配合使用,以分配用户权限并管理用户可以和不能执行的操作。例如,您可能希望一组用户能够创建、更新或删除检测器,而另一组用户只能查看检测器。您可能还希望另一组用户能够接收和确认告警,但被阻止执行其他任务。OpenSearch 安全框架允许您控制用户对安全分析功能的访问级别。
安全分析系统索引
安全分析索引作为系统索引受到保护,与集群中的其他索引处理方式不同。系统索引存储配置和其他系统设置,因此无法使用 REST API 或 OpenSearch Dashboards 界面进行修改。只有持有 TLS 管理员证书的用户才能访问系统索引。有关处理此类索引的更多信息,请参阅系统索引。
基本权限
作为管理员,您可以使用 OpenSearch Dashboards 或安全 REST API 根据用户需要访问的特定 API 为其分配特定权限。有关支持的 API 列表,请参阅API 工具。
OpenSearch 安全功能有三个内置角色,涵盖了大多数安全分析用例:security_analytics_full_access
、security_analytics_read_access
和 security_analytics_ack_alerts
。有关这些角色和其他角色的说明,请参阅预定义角色。
如果这些角色不符合您的需求,您可以根据用例混合搭配单独的安全分析权限。每个操作都对应 REST API 中的一个操作。例如,cluster:admin/opensearch/securityanalytics/detector/delete
权限允许您删除检测器。
(高级) 按后端角色限制访问
您可以使用后端角色来配置基于角色的单个检测器的细粒度访问。例如,可以将后端角色分配给在组织不同部门工作的用户,以便他们只能查看其所在部门拥有的检测器。
首先,请确保您的用户拥有适当的后端角色。后端角色通常来自 LDAP 服务器或 SAML 提供商。但是,如果您使用内部用户数据库,则可以使用 REST API 手动添加它们。
接下来,启用以下设置
PUT /_cluster/settings
{
"transient": {
"plugins.security_analytics.filter_by_backend_roles": "true"
}
}
现在,当用户在 OpenSearch Dashboards 中查看安全分析资源(或进行 REST API 调用)时,他们只能看到由共享至少一个后端角色的用户创建的检测器。例如,考虑两个用户:alice
和 bob
。
以下示例为用户 alice
分配 analyst
后端角色
PUT /_plugins/_security/api/internalusers/alice
{
"password": "alice",
"backend_roles": [
"analyst"
],
"attributes": {}
}
下一个示例为用户 bob
分配 human-resources
后端角色
PUT /_plugins/_security/api/internalusers/bob
{
"password": "bob",
"backend_roles": [
"human-resources"
],
"attributes": {}
}
最后,最后一个示例为 alice
和 bob
分配了对安全分析的完全访问权限的角色
PUT /_plugins/_security/api/rolesmapping/security_analytics_full_access
{
"backend_roles": [],
"hosts": [],
"users": [
"alice",
"bob"
]
}
然而,由于他们拥有不同的后端角色,alice
和 bob
无法查看彼此的检测器或其结果。
关于将细粒度访问控制与插件一起使用的注意事项
当触发器生成告警时,检测器配置、告警本身以及发送到通道的任何通知都可能包含描述所查询索引的元数据。根据设计,插件必须提取数据并将其作为元数据存储在索引之外。文档级安全性 (DLS) 和 字段级安全性 (FLS) 访问控制旨在保护索引中的数据。但是,一旦数据作为元数据存储在索引之外,有权访问检测器和监控器配置、告警及其通知的用户将能够查看此元数据,并可能推断索引中数据的内容和质量,而这些数据否则将通过 DLS 和 FLS 访问控制进行隐藏。
为降低意外用户查看可能描述索引的元数据的可能性,我们建议管理员启用基于角色的访问控制,并在为目标用户组分配权限时牢记这些设计要素。有关更多信息,请参阅按后端角色限制访问。