腾讯云 Elasticsearch 实战篇(二十二) ES6.8权限使用配置

前言|

在前面的章节中我们讲了开源架构ELK、腾讯云Elasticsearch产品系列。我们也知道了,在构建腾讯云ES集群的时候,我们选择的6.8.2白金版具备充分的安全的机制来保证数据和访问的安全。那么,它到底是如何实现的呢?我们今天就来简单聊聊这个问题:

一、在ElasticSearch6.8及以上版本开启安全认证功能

ElasticSearch的商业插件X-pack 在ES6.x版本以前一直都是收费,不对外免费开放的。在ES6以后陆续放开了一些功能,比如前面讲到的Monitor集群监控功能。在ES6.8及以后版本ES又将部分安全性功能免费开放了,包含安全认证功能,之后版本又开放一些基础认证功能,对于普通用户来说是够用的。这里要提一下的是kibana的登录和权限是与ES紧密相关的,其实真正起作用的是Elasticsearch,因为kibana只是一个视图页面,真正工作的是Elasticsearch。现在我们就6.8版本的【基于角色的访问控制】进行操作、验证。步骤如下:

第一步:下载、安装ES、Kibana 6.8.2 版本(此处省略,可参考本博客前面的教程

第二步:修改ES配置文件 elasticsearch.yml 添加“ xpack.security.enabled: true”到配置文件,保存并退出

Xpack安全机制

基础版本的安全性功能是默认关闭的。

然后启动ES,注意需要用普通用户启动ES,注意一定要先启动ES,才能进行后续安全设置

启动ES

第三步:/bin/elasticsearch-setup-passwords interactive 启用ES默认的内置用户

安全设置用户密码

显示下面的图示:输入“y”

下面的这些用户都是ES默认的用户,需要设置密码,一定要记住,可以暂时设置相同的。后面可以改

ES默认用户

第四步:设置kibana登录的用户名、密码。在kibana.yml配置文件里进行修改

注意,这个用户名和密码一定跟ES刚刚设定的内置账号密码一样。否则,Kibana启动报错!!

添加用户名和密码

第五步:启动kibana

启动kibana就可以使用用户名与密码进行访问。如下截图

kibana启动
Kibana界面

登录Kibana看看,就出现了安全访问的登录框。输入在Kibana设定的内置用户登录即可.用户必须使用有效的用户ID和密码登录Kibana。

安全登录界面

二、如何在Kibana配置文件中屏蔽密码、用户字眼??

前面我们知道,登录ES的安全账号密码都配置在Kibana的配置文件里,但是这样,始终不安全,那么能不能屏蔽掉这些关键字眼呢??再来解决这个问题:

如果你不想将用户ID和密码放在kibana.yml文件中明文配置,可以将它们存储在密钥库中。运行以下命令以创建Kibana密钥库并添加配置:

首先 先创建秘钥库: ./kibana-keystore create

其次:添加登录用户名: ./kibana-keystore add elasticsearch.username

输入要添加的用户名(密文)

再次:添加登录用户名的密码: ./kibana-keystore add elasticsearch.password

输入用户名密码(密文)

最后,验证一下:使用刚刚新建账号密码、同时清除Kibana配置文件中原有的yml文件的用户、密码内容。重启Kibana

Kibana登录界面

使用Curl验证一下“

Curl指令

用其他用户是不行的:

验证其它用户

考虑一下:为什么这样?因为尽管是默认用户,但是没有配置它在服务中使用,所以,它无效!!

三、总结:

本节从实际角度去部署了一下ES、Kibana的安全访问功能。是一个非常实际可用的功能,建议大家多试试!