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