首页 > 解决方案 > 如何限制对弹性搜索中的文档的访问?

问题描述

我正在设计一个解决方案并希望利用 Elasticsearch 的一些查询功能(版本 7.x)。我们预计每个索引大约有 1000 万个文档。文档可能与我们所说的“用户”有不同的“关联”(不一定与 ES 中的含义相同)-

  1. 与所有相关联,可在任何上下文中查询。
  2. 关联到单个用户,应仅出现在此用户上下文搜索中。
  3. 关联到用户的“组”(大小高达 1000K),应该出现在对该组用户的查询中。

我们预计会有很多用户,在 100K 左右。这也意味着我们可能有很多不同的组,每 2 个用户可能组成一个自定义组。

我一直在研究 ES 的功能,看起来我提出的每个解决方案都有缺点:

  1. RBAC - 需要创建很多卷(每个用户 + 每个组,ES 甚至可以处理那么多吗?)
  2. ABAC - 需要创建很多用户(ES 甚至可以处理那么多用户吗?)
  3. 专用属性上的简单 AND 子句(此处解释的查询的复杂模板)

重要的是要注意,我将使用一个用户来查询on behalf of我将创建的用户,以防我选择走这条路。

我遇到了这个问题,但我认为自从ElasticSearch 中的文档访问控制得到回答后,它可能已经进化了

还有其他我应该检查的建议吗?甚至可能是定制的第 3 方解决方案?

标签: elasticsearchelastic-stackspring-data-elasticsearchelasticsearch-pluginelasticsearch-dsl

解决方案


推荐阅读