Elasticsearch创建安全账户

1.在es节点上启用安全功能

在es配置路径/elasticsearch-7.17.1/config下的elasticsearch.yml添加如下两行

[sandwich@centos-elk config]$ tail -n 2 elasticsearch.yml
xpack.security.enabled: true
discovery.type: single-node

这里只考虑单节点,如果你有多个节点,则可以在群集中的每个节点上启用 Elasticsearch 安全功能,并为节点间通信配置传输层安全性(TLS)。
集群我们以后再配置。
重启es。

2.为内置用户创建密码

es内置用户用于特定的管理目的:apm_system,beats_system,elastic,kibana,logstash_system 和 remote_monitoring_user。
在使用它们之前,我们必须为它们设置密码。在 Elasticsearch 的目录里安装打入如下的命令:

[sandwich@centos-elk bin]$ ./elasticsearch-setup-passwords interactive
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y


Enter password for [elastic]: 
Reenter password for [elastic]: 
Enter password for [apm_system]: 
Reenter password for [apm_system]: 
Enter password for [kibana_system]: 
Reenter password for [kibana_system]: 
Enter password for [logstash_system]: 
Reenter password for [logstash_system]: 
Enter password for [beats_system]: 
Reenter password for [beats_system]: 
Enter password for [remote_monitoring_user]: 
Reenter password for [remote_monitoring_user]: 
Changed password for user [apm_system]
Changed password for user [kibana_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]

如果喜欢随机密码,可以用以下方式创建

./bin/elasticsearch-setup-passwords auto

创建好可以用如下方式验证

curl -u elastic:pwd http://192.168.32.3:9200

或者

curl http://elastic:[email protected]:9200

3.查看内置用户和权限

用/_security/user接口可以查看所有的用户列表以及用户拥有的roles

4.为Kibana添加内置用户

启用es安全功能后,用户必须使用有效的账号登录Kibana.
Kibana还执行一些需要使用内置用户的任务
如果不介意在配置文件中显示密码,更新 Kibana 安装目录下的 config 子目录中的 kibana.yml文 件中的以下设置

[sandwich@centos-elk config]$ tail -n 2 kibana.yml 
elasticsearch.username: "kibana"
elasticsearch.password: "123456"

如果你不想你的用户id和密码放在kibana.yml文件中,请将它们存储在密钥库中。
运行以上命令创建Kibana密钥库并添加安全设置:

[sandwich@centos-elk bin]$ ./kibana-keystore create
Created Kibana keystore in /home/sandwich/app/elk/kibana-7.17.1-linux-x86_64/config/kibana.keystore
[sandwich@centos-elk bin]$ ./kibana-keystore add elasticsearch.username
Enter value for elasticsearch.username: ******
[sandwich@centos-elk bin]$ ./kibana-keystore add elasticsearch.password
Enter value for elasticsearch.password: ******

也可以在启动Kibana带上账户信息,如下

./bin/kibana --elasticsearch.hosts="http://localhost:9200" --elasticsearch.username=kibana --elasticsearch.password=123456

上面三方式任选其中一种,对于我来说,生产环境一定是加密的那种

重启Kibana
重新打开Kibana,这时候需要输入es账号登录


5.创建用户

在前面我们已经使用内置用户elastic登录我们的Kibana。现在我们测试新建用户。
进入Stack Management/Security/Users页面


kibana用户信息,所以这里显示'Deprecated'是表示已经不建议使用这个保留用户了。
现在建议用kibana_system, 它们的权限是一样的,在以下接口得到印证

好了,题外话不多说了,选择‘Create User’

创建一个用户,但是先不分配权限试试

接着退出登录,用这个新用户登录试试

连登录都没有权限
添加kibana_admin role,使其可以访问Kibana的所有功能。

重新登录,一切正常。

参考文章:
https://elasticstack.blog.csdn.net/article/details/100548174

你可能感兴趣的:(Elasticsearch创建安全账户)