文档级安全性
编辑文档级安全性编辑
文档级安全性限制了用户有权读取的文档。具体来说,它限制了可以从基于文档的读取 API 访问哪些文档。
要启用文档级安全性,您可以使用查询来指定每个角色可以访问的文档。文档 query
与特定数据流、索引或通配符 (*
) 模式相关联,并与为数据流和索引指定的权限结合使用。
指定的文档 query
- 预期格式与在搜索请求中定义的格式相同
- 支持 模板化角色查询,该查询可以访问当前已认证用户的详细信息
- 接受以字符串值或嵌套 JSON 编写的查询
- 支持大多数 Elasticsearch 查询领域特定语言 (DSL),但对于字段级和文档级安全性存在 一些限制
完全省略 query
参数将禁用相应索引权限条目的文档级安全性。
以下角色定义仅授予对属于所有 events-*
数据流和索引中的 click
类别的文档的读取访问权限
POST /_security/role/click_role { "indices": [ { "names": [ "events-*" ], "privileges": [ "read" ], "query": "{\"match\": {\"category\": \"click\"}}" } ] }
您可以使用嵌套 JSON 语法编写相同的查询
POST _security/role/click_role { "indices": [ { "names": [ "events-*" ], "privileges": [ "read" ], "query": { "match": { "category": "click" } } } ] }
以下角色仅授予对 department_id
等于 12
的文档的读取访问权限
POST /_security/role/dept_role { "indices" : [ { "names" : [ "*" ], "privileges" : [ "read" ], "query" : { "term" : { "department_id" : 12 } } } ] }