0%

ElasticSearch X-PACK 安全认证

ElasticSearch 从 6.8.0 和 7.1.0 开始,X-PACK 安全功能免费提供,首先确认版本是否支持。

SSL 证书

开启 X-PACK 首先要生成 SSL 证书。

以 CentOS7 为例,如果采用 RPM 包安装,安装路径在 /usr/share/elasticsearch,配置目录在 etc/elasticsearch

在其中一个节点上,执行:

1
2
3
cd /etc/elasticsearch
/usr/share/elasticsearch/bin/elasticsearch-certutil ca
/usr/share/elasticsearch/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

以上命令,会在 /etc/elasticsearch 生成两个文件:

elastic-certificates.p12elasticsearch.keystore

将两个文件同步到 ElasticSearch 所有节点,同时注意下 /etc/elasticsearch 目录的文件权限。

修改 elasticsearch.yml 配置

增加:

1
2
3
4
5
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

重启 ElasticSearch 集群

初始化密码

使用系统提供的工具,自动生成初始化密码:

1
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto

脚本会自动生成:elastic、apm_system、kibana、logstash_system、beats_system、remote_monitoring_user 等用户名密码,并对应不同的权限。

如果希望修改密码或进行权限管理,可以通过 Kibana 中的可视化界面操作。

注意: 安全认证其实是个 HTTP Basic 认证,容易被暴力破解,要设置强有力的密码。

客户端使用

开启安全认证之后,Kibana 以及客户端连接都需要提供用户名密码认证,自行查阅相关的客户端 SDK 进行集成。