【ElasticSearch】 ElasticSearch X-Pack之用户认证(十二)

 X-Pack介绍

  X-Pack是Elastic Stack扩展,提供安全性,警报,监视,报告,机器学习和许多其他功能。默认情况下,当您安装Elasticsearch时,会安装X-Pack。

  安装默认发行版时,您会获得基本许可证(30天使用期)。有关基本许可证中包含的免费功能的完整列表,请参见 https://www.elastic.co/subscriptions

  当然普通用户认证功能此为免费功能,可以一直使用

在Elasticsearch中配置安全认证

单机版Elasticsearch认证

  1、安装elasticsearch,版本:7.6.1,参考:【ElasticSearch】 ElasticSearch安装(一)

  2、在配置文件中,开启xpack的安装认证功能

1 # ---------------------------------- X-Pack ------------------------------------
2 # 开机xpack安全认证,默认为false
3 xpack.security.enabled: true
4 #

  3、启动Elasticsearch

  4、设置所有内置用户的密码。

    Elasticsearch安全功能提供 内置用户来帮助您启动和运行。

    该 elasticsearch-setup-passwords 命令是首次设置内置用户密码的最简单方法。    

    注意:该 elasticsearch-setup-passwords 命令使用瞬态引导密码,该密码在命令成功运行后将不再有效。您不能elasticsearch-setup-passwords再次运行该命令。

    设置密码命令:./bin/elasticsearch-setup-passwords interactive

    

    分别对内置用户:elastic、apm_system、kibana、logstash_system、beats_system、remote_monitoring_user,设置了密码

  5、测试验证

    1)使用elasticsearch-head插件查看es,访问时提示输入用户名/密码访问

    2)概览页展示如下,增加了索引来保存用户名/密码

      

    3)查看.security-7索引数据

      

    4)使用curl命令访问

      命令:curl -u username:password http://127.0.0.1:9200

  说明:ES的Web认证采用的是Basic Auth认证,Basic Auth认证参考:【Web】HTTP基本认证之 Basic Auth

集群Elasticsearch认证

  Elastic Stack安全功能使信息加密往返于Elasticsearch集群以及从其内部的流量。

  使用传输层安全性(TLS)(通常称为“ SSL”)保护连接的安全。

  1、安装elasticsearch集群,版本:7.6.1,参考:【ElasticSearch】 ElasticSearch集群安装(八)

  2、为Elasticsearch集群创建一个证书颁发机构

    命令:./bin/elasticsearch-certutil ca

    过程:输入命令 -> 回车(文件使用默认名) -> 回车(CA密码为空) -> 得到elastic-stack-ca.p12文件(包含CA的公共证书 + 用于对每个节点的证书签名的私钥)

  3、为集群中的节点生成证书和私钥

    命令:./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

    过程:输入命令 -> 回车(CA密码为空) -> 回车(文件使用默认名) -> 回车(证书密码为空) -> 得到elastic-certificates.p12文件(包含节点证书,节点密钥和CA证书)

  4、将节点证书elastic-certificates.p12文件拷贝到各个节点的config目录下

    证书颁发机构elastic-stack-ca.p12文件,自行保存或保存到master节点的config目录下

  5、在配置文件elasticsearch.yml中,开机xpack认证,并配置证书,内容如下:

1 # ---------------------------------- X-Pack ------------------------------------
2 # 开机xpack安全认证,默认为false
3 xpack.security.enabled: true
4 # 必须开启,节点间ssl通信
5 xpack.security.transport.ssl.enabled: true
6 # 验证模式:证书
7 xpack.security.transport.ssl.verification_mode: certificate
8 xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
9 xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

  6、分别将集群所有节点启动或重启

  7、设置所有内置用户的密码(同上)

    设置密码命令:./bin/elasticsearch-setup-passwords interactive

  8、使用elasticsearch-head插件查看es

    1)访问时提示输入用户名/密码访问

    2)概览页展示如下,增加了索引来保存用户名/密码

      

原文地址:https://www.cnblogs.com/h--d/p/13128635.html