SuperAPI AI 工具集

elasticsearch-authz

安全与审计

查看项目

更新于 10-15 21:37

技能介绍

用途:管理 Elasticsearch 的授权(RBAC),包括原生用户、角色、角色分配,以及面向外部域(SAML、LDAP、PKI)的角色映射。认证方式与 API 密钥管理不在本技能范围,参见 elasticsearch-authn 技能。

主要能力:创建带指定权限的原生用户;定义最小权限的自定义角色(索引与集群权限);为已有用户分配一个或多个角色;创建含 Kibana 功能或空间权限的角色;为外部域用户配置角色映射;用 Mustache 模板从用户属性动态派生角色;按用户或部门限制文档可见性(文档级安全 DLS);对特定角色隐藏 PII 等敏感字段(字段级安全 FLS);用模板化角色查询实现基于属性的访问控制(ABAC);把自然语言访问请求拆解为用户、角色与角色映射任务。

使用方式:需要 Elasticsearch URL、认证凭据,用户与角色管理操作需 manage_security 集群权限;涉及 Kibana 功能/空间权限时还需 Kibana URL。纯索引与集群权限用 Elasticsearch API(PUT /_security/role/{name});含 Kibana 功能或空间权限时须用 Kibana API(PUT /api/security/role/{name})。创建用户示例:curl -X POST "${ELASTICSEARCH_URL}/_security/user/${USERNAME}" <auth_flags> -H "Content-Type: application/json" -d '{"password":"...","roles":["..."]}'。更新用户角色时 roles 数组会被整体替换,需先获取当前角色再合并。可用 POST /_security/user/_has_privileges 验证有效权限。

适用场景:为日志、指标等索引创建只读用户;按部门限制 HR 等数据;隐藏 PII 字段;为 LDAP/SAML 用户按组映射角色。

限制:原生用户与角色映射仅适用于自建和 ECH 部署;Serverless 无原生用户与角色映射,用户访问通过 Cloud 层角色分配,需使用 cloud-access-management 技能,且 Serverless 自定义角色不支持 run-as 权限。功能可用性在自建、ECH 与 Serverless 间存在差异。多个角色并存时 DLS 查询以 OR 合并、FLS 授权取并集,宽泛角色可能扩大访问范围,需核对有效权限。动态角色模板需启用脚本。