为ElasticSearch添加HTTP基本认证 https://github.com/Asquera/elasticsearch-http-basic/releases
ES的HTTP连接没有提供任何的权限控制措施,一旦部署在公共网络就容易有数据泄露的风险,尤其是加上类似elasticsearch-head这样友好的前端界面,简直让你的数据瞬间裸奔在黑客的眼皮底下。项目上线前做十万伏特的防护当然不现实,但至少,我们不要裸奔,穿一套比基尼吧。而做一个简单的HTTP认证并不需要从头造轮子,elasticsearch-http-basic就提供了针对ES HTTP连接的IP白名单、密码权限和信任代理功能。
安装
elasticsearch-http-basic还不支持ES标准的bin/plugin install [github-name]/[repo-name]的安装方式,但作者有提供编译好的jar包,不需要下载源码重新编译。GitHub上目前的最新版本是对应ES的1.4.0版本,但验证过1.5.2也是同样可用的。
插件的安装步骤如下:
- 从elasticsearch-http-basic的发布版下载对应版本的jar包
- mkdir -p plugins/http-basic; mv elasticsearch-http-basic-x.x.x.jar plugins/http-basic(注意文件夹的名称)
- 重启ES进程
- 验证插件是否生效:curl localhost:9200/_nodes/[your-node-name]/plugins?pretty=true(如果看到plugins列表包含有http-basic-server-plugin就说明插件生效了)
配置
elasticsearch-http-basic和其他ES插件一样,在config/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字段名 | 
测试
- Shell
# 无账号密码,不可访问
>>> curl http://[your-node-name]:[your-port]/[your-index]/_count?pretty=true
Authentication Required
# 通过user选项带上账号密码,返回正常数据
>>> curl --user [your-admin]:[your-password] http://[your-node-name]:[your-port]/[your-index]/_count?pretty=true
{
  "count" : xxx,
  "_shards" : {
    "total" : xxx,
    "successful" : xxx,
    "failed" : 0
  }
}
- 添加了HTTP基本认证后,elasticsearch-head同样会弹窗要求你先进行权限认证
Python
ES官方的Python客户端可以通过http_auth配置账号密码:
from elasticsearch import Elasticsearch
es = Elasticsearch(['localhost'], http_auth=('your-admin', 'your-password'), port=...)为ElasticSearch添加HTTP基本认证 https://github.com/Asquera/elasticsearch-http-basic/releases的更多相关文章
- 为ElasticSearch添加HTTP基本认证
		ES的HTTP连接没有提供任何的权限控制措施,一旦部署在公共网络就容易有数据泄露的风险,尤其是加上类似elasticsearch-head这样友好的前端界面,简直让你的数据瞬间裸奔在黑客的眼皮底下.项 ... 
- 为添加了自定义域名的GitHub Pages添加SSL,启用强制HTTPS(小绿锁)
		直奔主题 为什么要使用https协议? 提高网站访问安全性,网络连接都是加密的 (PS:虽然SSL并不是无懈可击的,但是我们应该尽可能提高窃听成本). 目前越来越多的浏览器会判断当前站点支不支持htt ... 
- 为Elasticsearch添加中文分词,对比分词器效果
		http://keenwon.com/1404.html Elasticsearch中,内置了很多分词器(analyzers),例如standard (标准分词器).english(英文分词)和chi ... 
- elasticsearch添加head插件
		首先,肯定是安装elasticsearch啦,我这里是直接在官网上下载rpm包安装的. 官网:https://www.elastic.co/downloads/elasticsearch elasti ... 
- 为 Elasticsearch 添加中文分词,对比分词器效果
		转自:http://keenwon.com/1404.html 为 Elasticsearch 添加中文分词,对比分词器效果 Posted in 后端 By KeenWon On 2014年12月12 ... 
- Elasticsearch添加Shield后TransportClient如何连接?
		Elasticsearch添加Shield后TransportClient如何连接? 时间 2015-12-28 10:24:01 旁门左道 原文 http://log.medcl.net/ite ... 
- 十四、.net core(.NET 6)搭建ElasticSearch(ES)系列之给ElasticSearch添加SQL插件和浏览器插件
		给ES添加SQL插件的方法: 下载SQL插件地址:https://github.com/NLPchina/elasticsearch-sql 当前最新的是7.12版本,我的ES是7.13版本,暂且将 ... 
- 转载请注明出处: https://github.com/qiu-deqing/FE-interview
		转载请注明出处: https://github.com/qiu-deqing/FE-interview Table of Contents generated with DocToc FE-inter ... 
- 为Asp.Net Web Api添加Http基本认证
		Asp.net Web Api提供了RESTFul web服务的编程接口.默认RESTFul 服务没有提供任何验证或者基于角色的验证,这显然不适合Put.Post.Delete这些操作.Aps.net ... 
随机推荐
- JAVA List 分割
			按指定大小,分隔集合,将集合按规定个数分为n个部分 import java.util.ArrayList; import java.util.Collections; import java.util ... 
- 处理图片(updated)
			高像素的图片,比如分辨率为 7712x4352 的照片,当加载到一个 bitmap 中时会占用相当大的内存. 每个像素会占用 4个字节的内存,所以当没有被压缩时,全部的图片会占用 12800万字节(约 ... 
- jquery $.each 和for 怎么跳出循环(终止本次循环)
			1.for循环中我们使用continue:终止本次循环计入下一个循环,使用break终止整个循环. 2.而在jquery中 $.each则对应的使用return true 和return false ... 
- ubuntu 12.04下apache 配置家目录地址
			apache2 最在搞前端相关的东西,上一次也记录了 Linux 下 LAMP环境的搭建,现在记录一下如果改变 apache2 的家目录地址该怎么做,改那个配置文件 修改配置文件 /etc/apach ... 
- Linux安装MediaWiki
			1. 编译安装libxml2 # wget http://xmlsoft.org/sources/libxml2-2.6.32.tar.gz # tar zxvf libxml2-2.6.32. ... 
- EF应用一:Code First模式
			EF的核心程序集位于System.Data.Entity.dll和System.Data.EntityFramework.dll中.支持CodeFirst的位于EntityFramework.dll中 ... 
- BI开发之——Mdx基础语法(2)(转至指尖流淌)
			结合webcast中老师的讲解,现在把基础语法应用通过几个案例应用如下: 一.维度的概念 上图中一个维度(Dimension):Region 改为度下有四个级别(Levels):country.pro ... 
- 数据库 Proc编程一
			proc编程 嵌入式sql:sql写入到C语言程序中 proc编程头文件路径 app\xxx\product\\dbhome_1\precomp\public proc编程要注意proc编译器也会使用 ... 
- Update 语句用于修改表中的数据。
			语法: UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 
- 算法优化:rgb向yuv的转化最优算法
			朋友曾经给我推荐了一个有关代码优化的pdf文档<让你的软件飞起来>,看完之后,感受颇深.为了推广其,同时也为了自己加深印象,故将其总结为word文档.下面就是其的详细内容总结,希望能于己于 ... 
