为安全起见,决定开启现有ES集群的重要操作安全校验,防止索引误删除
实现目标:在无认证的ES集群上开启安全认证,默认使用匿名用户,并设定匿名用户的权限,关键操作需要认证
- 【所有节点】开启xpack 编辑
elasticsearch.yml
增加以下配置
1 | xpack.security.enabled: true |
并重启服务
- 【主节点】设置密码
在主节点执行命令,按照提示输入各个elk组件访问ES的密码
1 | bin/elasticsearch-setup-passwords interactive |
然后执行
1 | # 设置匿名用户角色的权限 |
- 【主节点】设置证书(不然ES会一直产生不信任警告日志)
1 | bin/elasticsearch-certutil ca |
会生成两个证书文件 elastic-certificates.p12
、elastic-stack-ca.p12
1 | mv elastic-* config/ |
!!!!!!!!一定要设置两个文件的权限!!!!!!!!
【所有节点】将前面的两个文件同步到其他节点的所有config下,并设置权限,然后重启所有节点的服务
【可选】【主节点】创建一个普普通通的管理用户 日常管理集群
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18# 创建管理角色
curl -XPUT -H "Content-Type:application/json" -u elastic 127.0.0.1:9200/_security/role/management_role -d '
{
"cluster": ["manage", "monitor"],
"indices": [
{
"names": ["*"],
"privileges": ["read", "write", "create_index", "delete_index", "manage"]
}
]
}'
# 创建管理用户admin
curl -XPOST -H "Content-Type:application/json" -u elastic 127.0.0.1:9200/_security/user/admin -d '
{
"password": "admin111222",
"roles": ["management_role"]
}'