添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

一:业务背景

  1. 线上集群版本 elasticsearch-5.6.15
    在这里插入图片描述
  2. ES在默认安装后,不提供任何形式的安全防护,运维安全扫描发现漏洞,要求项目组进行修复
    在这里插入图片描述

二:方案调研

  1. 设置Nginx反向代理,让用户在访问ES集群的时候需要提供用户验证信息,这个方法目前使用比较普遍。特别是针对ES低版本基础版、开源版;

  2. 安装免费的security插件,比如Search Guard、ReadOnly REST

  3. ES的商业包 x-pack的Basic版 ,从ES6.8基础版开始免费使用一些基础的安全功能,比如身份验证、用户鉴权

基于要求:1. 既不修改 线上版本,2. 也不增加新组件如nginx
决定使用插件方式添加鉴权

xpack : 对于5.x免费支持不好
elasticsearch-http-basic: 已经很久没有维护
决定使用 ReadOnly REST

三:下载安装

  1. 选择对应的es版本,并填入有效邮箱,就可以收到下载链接
    https://readonlyrest.com/download/
    在这里插入图片描述

  2. 安装插件

[es目录]/bin/elasticsearch-plugin install  file:///tmp/readonlyrest-X.Y.Z_esW.Q.U.zip

注意 file:// 后面跟下载文件绝对路径

  1. 创建配置文件 readonlyrest.yml
  • 进入es的config文件夹(即elasticsearch.yml所在的文件夹)
    在此示例中,配置ReadonlyREST对所有HTTP请求都要求基本身份验证,否则返回: 401 Unauthorized
readonlyrest:
    access_control_rules:
    - name: "Require HTTP Basic Auth"
      type: allow
      auth_key: user:password
  • es 6.4.0 以上还需要把X-Pack禁用,编辑 elasticsearch.yml
  1. 启动es
bin/elasticsearch -d

四:测试

api直连

ip与端口号与自己配置为准

或者查看集群状态

curl  -vvv -u user:password  -XGET http://10.128.123.45:9200/_cat/health?v&ts=false

代码连接

代码连接需要增加两项配置

es.net.http.auth.user
基本身份验证用户名
es.net.http.auth.pass
基本身份验证密码
版权声明:本文为CSDN博主「qq_31454379」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:
https://blog.csdn.net/qq_31454379/article/details/115460761