在弹性搜索中实现此方案的最佳方法

问题描述 投票:0回答:1

我正在索引Elastic搜索中的一些数据以加快搜索速度。在当前系统(Oracle)中,对特定列的访问由以下表控制:

Data Table (this would become Elastic document) :

    Group  ADDRESS     FIRSTNAME LASTNAME STATE
    ABC    123 Road   Champ      Kemp      AZ
    ABC    213 Road   Lamp       Kent      TX
    XYZ    456 Road   Jamp       Keen      AZ
    DEF    128 Road   Mamp       Keith     CA

Access Contorl Table :
    User Group ADDRESS FIRSTNAME LASTNAME STATE
     A    ABC    Y       Y          N       Y
     A    XYZ    Y       Y          N       Y
     B    ABC    N       Y          N       Y
     B    XYZ    Y       N          N       Y

这意味着用户A将有权访问属于ABC组的项目的ADDRESS字段,但用户B不会。所以基本上对于用户A,字段ADDRESS可以在具有组ABC的文档中搜索,但不能用于用户B.

通过使用连接很容易在Oracle中控制它,但是当我必须处理Elastic Search文档时,如何实现相同的功能呢?

elasticsearch bigdata
1个回答
0
投票

您可以使用X-Pack(商业许可证)中提供的field and document level access control。这是一篇关于这个主题的文章:https://www.elastic.co/blog/securing-fields-and-documents-with-shield

还有一个名为SearchGuard的插件提供了类似的功能。这是另一篇关于这个主题的文章:https://floragunn.com/document-field-level-security-search-guard/

更新(2019年3月11日):

从今天开始,亚马逊发布了一个带有安全(和警报)插件的完全开源的Elasticsearch版本。更多信息:https://opendistro.github.io/for-elasticsearch/

更新(2019年5月20日):

从版本6.8.0和7.1.0开始,XPack Security的一些功能现在是included into the BASIC license,因此是免费的。

© www.soinside.com 2019 - 2024. All rights reserved.