一、目前主要通过插件的形式来控制:
常用的插件主要包括:elasticsearch-http-basic,search-guard,shield
由于shield是收费的暂时还未研究(研究后统一补充)
search-guard主要用于elasticsearch2.x以后的版本(研究后统一补充)
elasticsearch-http-basic主要用于elasticsearch1.x的版本
基于目前我们es集群大部分都是1.5.2版本的,所以主要使用http-basic来控制来自http请求的访问。
二、elasticsearch-http-basic安装:
1.下载elasticsearch-http-basic-1.5.1.jar(下载地址:https://github.com/Asquera/elasticsearch-http-basic/releases)
2.在ES的plugins文件夹下新建http-basic文件夹
3.把下载的 elasticsearch-http-basic-1.5.1.jar拷贝到新建的http-basic文件夹下
4.修改ES的配置文件elasticsearch.yml,在文件末尾添加以下配置:
配置名 默认值 说明
http.basic.enabled true 开关,开启会接管全部HTTP连接
http.basic.user "admin" 账号
http.basic.password "admin_pw" 密码
http.basic.ipwhitelist ["localhost", "127.0.0.1"] 白名单内的ip访问不需要通过账号和密码,支持ip和主机名,不支持ip区间或正则
http.basic.trusted_proxy_chains [] 信任代理列表
http.basic.log false 把无授权的访问事件添加到ES的日志
http.basic.xforward "" 记载代理路径的header字段名
5.重启ES集群
三、目前我们主要通过http.basic.ipwhitelist 白名单 + 用户名、密码来控制外部机器对ES集群的http请求,
1.在白名单内的ip列表用户无需验证可直接通过ES节点的ip地址访问ES,白名单外的用户无权访问ES集群
2.由于白名单无法控制通过域名的访问,如果要通过域名访问ES必须要通过用户名和密码来访问