Elastic Stack开启核心安全功能
从6.8.0和7.1.0版本开始,Elastic免费为我们提供了核心的安全功能,包括加密通讯、基于角色的访问控制、文件和原生身份验证
在这之前,默认能直接访问Kibana并且具有所有的操作权限,Elastic考虑到大多数用户的安全需求,免费提供了这个功能,但是这个功能需要手动开启
前提
搭建好 ElasticSearch、Kibana、Logstash并正常使用了
我的环境
Windows Server 2016
JDK1.8
Elastic Stack 7.2.0
单机模式,非集群
安装步骤
1.生成证书
在ElasticSearch的bin目录执行以下命令
elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""
这段命令的大概意思是生成证书,证书密码为 “”,并输出到 config/elastic-certificates.p12文件
2.配置SSL
编辑config/elasticsearch.yaml文件,将下列代码粘贴到文件末尾
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
如果是集群,把配置目录拷贝到其他节点就可以了,具体参考官方集群文档
3.生成密码
为内部用户生成随机密码或者用interactive 参数手动定义密码,这里我用随机密码。该密码信息注意保存,后面会用到
在ElasticSearch的bin目录执行
elasticsearch-setup-passwords auto
我们可以把红圈的密码信息保存到一个文本中
4.配置Kibana
编辑Kibana目录下的 config/kibana.yml文件,取消elasticsearch.username和elasticsearch.password的注释,并将账户密码信息改为上步骤的账户信息,如
5.启动Kibana
启动Kibana服务,用浏览器访问 http://localhost:5601,我们发现浏览器需要输入登录信息才能进去了,这里需要使用超级账户 elastic 登录,密码在步骤3寻找
后记
上面的教程步骤需要注意的就是要保存步骤3的账户信息,我在安装配置的时候就是没注意这个,搞了半天没开启成功。配置好安全功能之后还可以在Kibana创建新用户、创建角色、用户绑定角色权限等操作