elasticsearch开启密码认证
如果是单节点,可以再elasticsearch配置文件里新增
#开启安全
xpack.security.enabled: true
#集群节点间不互相通讯
discovery.type: single-node
这里不使用这种方式,还是以集群方式进行配置。集群间节点通讯通过transport方式,开启es安全后要配置Transport Layer Security (TLS)。
1、生成证书
使用es自带的certutil工具生成ca证书
./bin/elasticsearch-certutil ca
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
根据提示框一步步操作,中间需要设置证书密码,记下来,后面要写道keystore里。如果中间不设置证书文件名,会生成elastic-stack-ca.p12和elastic-certificates.p12两个证书文件。
然后将两个证书文件复制到es集群每个node的conf目录下。
2、添加证书密码至keystore
使用es自带的keystore命令
#
./bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
./bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
根据提示输入上面生成证书设置的密码
3、添加配置
es配置文件新增如下配置
#开启安全
xpack.security.enabled: true
#开启tls
xpack.security.transport.ssl.enabled: true
#认证方式 certificate
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.client_authentication: required
#PK2 认证文件
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
4、设置密码
重启es
重置默认用户密码
./bin/elasticsearch-setup-passwords interactive
根据提示一步步设置内置用户elastic、apm_system、kibana_system、kibana、logstash_system、beats_system、remote_monitoring_user的密码
5、kibanna配置
kibana.yml新增上面配置的kibana_system账号密码
elasticsearch.username: "kibana_system"
elasticsearch.password: "888888"
重启kibana,然后再访问会提示输入用户密码。
参考:
https://www.elastic.co/guide/en/elasticsearch/reference/7.12/security-minimal-setup.html