安全——免费插件 Search Guard
Search Guard 简介
Search Guard是一个Elasticsearch的AAA plugin,特性包括:
权限控制粒度可以到indices, types,甚至可以到过滤field层次。也可以限制用户行为,read, write, admin;
提供多种HTTP认证方式,包括Basic, Proxy header, SPNEGO/Kerberos, Mutual SSL/CLIENT-CERT;
多种认证、授权后端支持: LDAP / AD , 基于文件的用户列表, Proxy header, Native Windows through WAFFLE;
审计功能;
支持HTTPS,支持Kibana、Logstash ;
etc.
原理
Search Guard分为几个模块,认证、授权、SSL/TLS、XFF、HTTP session、audit log 和 accesscontrol。其中access control又分为三种filter:
actionrequest / restrequest filter:检查用户是否有read,write, admin等的权限
dls filter:document levelsecurity,从搜索结果里过滤最终结果
fls filter:field level security,从搜索结果文档中过滤field
这些acl 作为一个index存在elasticsearch里面,一会儿给出例子会更明白。
限制
由于它的原理,在Elasticsearch的层面来说,还是会返回所有的结果,它只是在返回用户之前坐过滤,并且没有自动的multi-index的过滤能力,但是可以通过index alias 2 来解决。
1.安装插件
- Install latest version of search-guard-ssl plugin
- sudo bin/plugin install com.floragunn/search-guard-ssl/2.1.1.5
- Install search-guard-2 plugin
- sudo bin/plugin install com.floragunn/search-guard-2/2.1.1.0-alpha2
Both plugins need to be installed on everynode in the cluster. Tribe nodes are not yet supported.