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
或者
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