权限控制大约有以下几种方法:
1、shield :https://www.elastic.co/products/shield
2、search-guard : http://floragunn.com/searchguard
3、kibana-authentication-proxy: https://github.com/fangli/kibana-authentication-proxy
4、elasticsearch-http-basic:https://github.com/Asquera/elasticsearch-http-basic
优点:功能特别强大,以下列出我们项目组可能需要的功能
1、 Preventing Unauthorized Access
验证用户 authenticating users
每个用户有不同的权限
基于ip地址的权限控制
2、 Preserving Data Integrity
通信加密、验证消息encrypting communications、authenticating messages
3、 Maintaining an Audit Trail
4、 注意:在安装shield之前,必须停止集群所有的节点,并且,集群中的每个节点都必须安装shield
5、 为了让集群每个节点通信被保护,加上bin/shield/syskeygen
6、 启用审核:在elasticsearch.yml文件中,增加shield.audit.enabled: true 参考Configuring Auditing
7、 增加一个用户特有的权限
8、 The supported realms are native, file, LDAP, Active Directory, PKI.这些配置可以指定验证顺序,同时,对于internal
(native、file),配置文件中,每个属性最大为1.但是其他的external。每个属性可以配置多个。
9、 如果所有的控制配置都没有通过的话,默认就会返回THHP代码为401.即不允许匿名访问,但是可以在elasticsearch.yml中配置,允许匿名访问(Enabling Anonymous Access)
10、在CONFIG_DIR/shield文件夹下面,添加roles.yml,可以添加role(要想是的集群中的所有节点都生效,必须对集群中的所有节点,做同样的更改),所有的权限可以参考Shield Privileges。对于roles.yml例子,可以参考Defining Roles。如果是用的是file realm,直接添加user和role即可,但是对于其他的realm,必须要指定user、group和role之间的mapping关系。具体请参考Mapping Users and Groups to Roles
11、别名的好处:An alias points to one or more indices, holds metadata and potentially a filter
12、还可以对某个indices中的属性,进行配置权限。参考Setting Up Field and Document Level Security
13、还可以Submitting Requests on Behalf of Other Users
14、对于kibana user,在file realm下, 可以增加相应的role,可以指定每个user对应不同的role,具体请参考:Managing Users in a File-based Realm
15、Kibana role权限和es 权限是分开的,虽然都在roles.yml里面
缺点:收费。
16、Shield有30天试用期,详情参考Managing Your License
优点:
1、账号认证,解决es匿名访问的问题
2、授权管理,对不同的账号按照不同维度分配(主要是索引)访问权限
3、只读权限,此条需求来源于 :某个Dashboard想分享给其他人,但又不想让其他人有权限修改
4、目前官方网站只支持到ES2.2.3,我们的集群ES版本为2.2
5、开放了一些基础功能不收费,需要企业级别的应用的话,就收费,具体见下表
优点:
此方案是针对kibana实现的认证,优点是该方案支持“ Google OAuth2, BasicAuth(multiple users supported) and CAS Authentication ”
支持账号认证
对于不同的kibana用户,可以看到不同的index
缺点:
只支持到kibana3版本,我们的版本为kibana4.4.1
优点:
实现了账号认证和ip白名单功能
缺点:
基于index的权限控制没有提供,功能单一。并且版本只支持到es1.7.而且不支持kibana权限控制
总结:若shield不收费。用sheild是最好的,功能强大,而且es官方插件。其次,可以使用search-guard ,