【问题标题】:Elasticsearch access control based on field value基于字段值的 Elasticsearch 访问控制
【发布时间】:2015-05-24 02:42:51
【问题描述】:

我目前正在研究用于集中式日志文件分析的 ELK(Elasticsearch、Logstash、Kibana)堆栈。

计划是使用logstash和基于天的索引将多个应用程序的日志存储在同一个Elasticsearch集群中。

所有文档都包含一个名为 application 的字段,例如“application”:“superapp”。

现在我们正在寻找一种方法来实现这样的访问控制:

A) 超级用户: 能够查看所有应用程序的日志条目。

B) 开发人员: 只能查看他被允许访问的应用程序的日志条目。例如,应用程序“superapp”的开发团队应该只能看到此应用程序的条目。

总结一下:我们需要基于字段应用程序中的值的访问控制。

在阅读 Elastisearch 和 Shield 的文档时,我找不到明显的方法。

有什么想法可以让我们以同样适用于 Kibana 3 和 4 的方式实现这一点?

我的第一个想法是使用通过索引模板自动分配给文档的别名。我想知道这是否是正确的方向。

【问题讨论】:

    标签: authentication elasticsearch role-based-access-control elasticsearch-shield


    【解决方案1】:

    我在elasticsearch Google Group 上问了这个问题here,得到了这样的回复:

    “您可以将不同类型的日志分离到它们自己的索引中,这会使事情变得更容易,您还可以使用过滤器设置别名,然后向某些用户提供对该别名的访问权限。 目前 KB 不是多租户的,但这是一项即将添加的功能,您必须设置多个实例,每个实例都有自己的别名。”

    总结一下:多租户需要在前端(Kibana)和后端(Elasticsearch)解决。

    前端:为 Kibana 使用代理
    https://github.com/salyh/elastic-defender
    https://github.com/fangli/kibana-authentication-proxy

    后端:使用过滤别名和别名模板的几种方法
    Limiting Indexes and Operations
    Faking Index per User with Aliases -
    http://engineering.aweber.com/using-elasticsearchs-aliases/
    http://opennomad.com/content/controlling-access-elasticsearch-filtered-aliases-nginx-and-tokens

    【讨论】:

      猜你喜欢
      • 2015-08-11
      • 2013-08-28
      • 2010-09-11
      • 1970-01-01
      • 1970-01-01
      • 2012-09-07
      • 2013-05-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多