Elasticsearch6.8.4安全认证

6.8之前免费版本并不包含安全认证功能
本版本使用6.8.4最新版7.6需JDK11

免费版本

TLS 功能,可对通信进行加密
文件和原生 Realm,可用于创建和管理用户
基于角色的访问控制,可用于控制用户对集群 API 和索引的访问权限;
通过针对 Kibana Spaces 的安全功能,还可允许在 Kibana 中实现多租户。
收费版本包含更丰富的安全功能,比如:

日志审计
IP过滤
LDAP、PKI和活动目录身份验证
单点登录身份验证(SAML、Kerberos)
基于属性的权限控制
字段和文档级别安全性
静态数据加密支持
需要同时在ES和kibana端开启安全认证功能

一、启用安全模块
在elasticsearch.yml配置文件中加入

xpack.security.enabled: true

在免费版本中此项设置是禁用的

二、集群内部安全通信
1.生成证书

bin/elasticsearch-certutil ca

2.为集群中的每个节点生成证书和私钥

/elasticsearch-certutil cert --ca elastic-stack-ca.p12

回车即可,若创建密码切记一致
3.将证书拷贝到elasticsearch的每个节点下面config/certs目录下

elastic-certificates.p12

4.配置elasticsearch.yml

xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12

5.如果在创建证书的过程中加了密码,需要将你的密码加入到你的Elasticsearch keystore中去。每个节点都需要

bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password

三、给认证的集群创建用户密码
启动es

bin/elasticsearch-setup-passwords interactive

elastic 账号:拥有 superuser 角色,是内置的超级用户。
kibana 账号:拥有 kibana_system 角色,用户 kibana 用来连接 elasticsearch 并与之通信。Kibana 服务器以该用户身份提交请求以访问集群监视 API 和 .kibana 索引。不能访问 index。
logstash_system 账号:拥有 logstash_system 角色。用户 Logstash 在 Elasticsearch 中存储监控信息时使用。
beats_system账号:拥有 beats_system 角色。用户 Beats 在 Elasticsearch 中存储监控信息时使用。
elastic是超级用户

参考:https://blog.csdn.net/jiangshuanshuan/article/details/106014064

原文地址:https://www.cnblogs.com/zhangmingcheng/p/14572877.html