用户数据的安全性一直被人诟病且默认没有密码认证,Elasticsearch在6.8之前官方的X-pack安全认证功能都是收费的,所以很多人都采用Search Guard或者ReadOnly REST这些免费的安全插件对Elasticsearch进行安全认证。从Elasticsearch 6.8开始,Security 纳入 x-pack 的 Basic 版本中,免费使用一些基本的功能。本文将对开启X-pack安全认证与用户管理进行简单的讲解。
一、开启并配置 X-Pack 的认证与鉴权
1.1 在 elasticsearch.yml 配置文件中,添加安全认证相关参数
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
1.2 开启节点证书
bin/elasticsearch-certutil ca
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
1.3 开启Elasticsearch集群,并初始化Elasticsearch密码
bin/elasticsearch-setup-passwords interactive/auto
注意: interactive为自定义密码,auto为自动生成密码,推荐使用auto。
二、Privilege
Elasticsearch的角色其实又是通过权限去控制,而Elasticsearch的权限主要分为对cluster和对索引的权限,分表如下:
● Cluster Privileges
● all / monitor / manager / manage_index / manage_index_template / manage_rollup
● Indices Privileges
● all / create / create_index / delete / delete_index / index / manage / read /write / view_index_metadata
三、用户角色管理
3.1 创建角色
3.2 创建ES用户
3.3 查看角色(指定角色名为bdp_role)
3.4 查看用户(指定用户名为bdp_user)
3.5 删除角色
3.6 删除用户
3.7 修改用户密码
参考文献
https://www.elastic.co/what-is/elastic-stack-security
https://www.elastic.co/guide/en/elasticsearch/reference/current/configuring-stack-security.html