Link Search Menu Expand Document Documentation Menu

字段级安全

字段级安全性允许您控制用户可以查看哪些文档字段。就像文档级安全性一样,您可以通过角色内的索引控制访问。

开始使用文档级和字段级安全性的最简单方法是打开 OpenSearch Dashboards 并选择 Security。然后选择 Roles,创建一个新角色,并查看 Index permissions 部分。


目录

  1. 包含或排除字段
    1. OpenSearch Dashboards
    2. roles.yml
    3. REST API
  2. 与多个角色的交互
  3. 与文档级安全性的交互

包含或排除字段

配置字段级安全性时,您有两种选择:包含或排除字段。如果您包含字段,用户在检索文档时会看到这些字段。例如,如果您包含 actorstitleyear 字段,搜索结果可能如下所示

{
  "_index": "movies",
  "_source": {
    "year": 2013,
    "title": "Rush",
    "actors": [
      "Daniel Brühl",
      "Chris Hemsworth",
      "Olivia Wilde"
    ]
  }
}

如果您排除字段,用户在检索文档时会看到除这些字段之外的所有内容。例如,如果您排除相同的字段,相同的搜索结果可能如下所示

{
  "_index": "movies",
  "_source": {
    "directors": [
      "Ron Howard"
    ],
    "plot": "A re-creation of the merciless 1970s rivalry between Formula One rivals James Hunt and Niki Lauda.",
    "genres": [
      "Action",
      "Biography",
      "Drama",
      "Sport"
    ]
  }
}

您可以使用包含或排除来实现相同的效果,因此请选择适合您用例的方式。混合使用这两种方式没有意义,也不受支持。

您可以使用 OpenSearch Dashboards、roles.yml 和 REST API 指定字段级安全设置。

  • 要在 roles.yml 或 REST API 中排除字段,请在字段名称前添加 ~
  • 字段名称支持通配符 (*)。

    通配符对于排除子字段特别有用。例如,如果您索引一个包含字符串的文档(例如 {"title": "Thor"}),OpenSearch 会创建一个类型为 texttitle 字段,但它也会创建一个类型为 keywordtitle.keyword 子字段。在此示例中,为了防止未经授权访问 title 字段中的数据,您还必须排除 title.keyword 子字段。使用 title* 以匹配所有以 title 开头的字段。

OpenSearch Dashboards

  1. 选择一个角色并点击 Add index permission
  2. 选择一个索引模式。
  3. Field level security 下,使用下拉菜单选择您偏好的选项。然后指定一个或多个字段并按 Enter 键。

roles.yml

someonerole:
  cluster: []
  indices:
    movies:
      '*':
      - "READ"
      _fls_:
      - "~actors"
      - "~title"
      - "~year"

REST API

参见创建角色

与多个角色的交互

如果您将用户映射到多个角色,我们建议这些角色对每个索引使用包含排除语句。安全插件使用 AND 运算符评估字段级安全设置,因此合并包含和排除语句可能导致两者都无法正常工作。

例如,在 movies 索引中,如果您在一个角色中包含 actorstitleyear,在另一个角色中排除 actorstitlegenres,然后将这两个角色都映射到同一个用户,搜索结果可能如下所示

{
  "_index": "movies",
  "_source": {
    "year": 2013,
    "directors": [
      "Ron Howard"
    ],
    "plot": "A re-creation of the merciless 1970s rivalry between Formula One rivals James Hunt and Niki Lauda."
  }
}

与文档级安全性的交互

文档级安全性依赖于 OpenSearch 查询,这意味着查询中的所有字段都必须可见才能正常工作。如果您将字段级安全性与文档级安全性结合使用,请确保不要限制文档级安全性所使用的字段的访问。

剩余 350 字符

有问题?

想贡献?