1.查看是否有testuser用户
curl -H ‘Content-Type:application/json’ -XGET -u username:password “http://ip:port/_security/user/testuser?pretty”
若无返回结果则无testuser用户,需要新建用户,跳转到步骤5。若有mondb用户,继续执行步骤2。

2.查看testuser用户权限
es用户具有的权限就是用户的角色具有的权限,一个用户可以有多个角色。上图显示testuser角色也为testuser,查看testuser角色权限:
curl -H ‘Content-Type:application/json’ -XGET -u username:password “http://ip:port/_security/role/testuser?pretty”
上图显示,testuser角色对集群有monitor权限,对任意索引有view_index_metadata和monitor权限,这是符合基线标准的,跳转到步骤4。若权限与上图不一致,需要修改角色权限,继续执行步骤3

3.修改testuser用户权限
修改用户权限也就是修改用户的角色权限,修改testuser角色权限:
curl -H ‘Content-Type: application/json’ -u username:password -XPOST “http://ip:port/_xpack/security/role/testuser/” -d ‘{“cluster”:[“monitor”],“indices”:[{“names”:["*"],“privileges”:[“view_index_metadata”,“monitor”]}]}’
修改角色权限会报{“role”:{“created”:false}},这没有影响,修改完可以再执行步骤2查看一下testuser角色的权限是否修改成功。修改成功后继续执行步骤4

4.设置testuser用户密码
1)验证testuser密码
curl -H ‘Content-Type: application/json’ -u username:password -XGET “http://ip:port/_cat/health?v”
若成功返回集群状态,表示testuser当前密码就是password,结束流程;若报错,说明密码不对,转步骤2)修改密码。
2)修改testuser密码
curl -H ‘Content-Type: application/json’ -u username:password -XPUT “http://ip:port/_xpack/security/user/testuser/_password” -d ‘{“password”: “password”}’
按照基线标准testuser用户密码统一为testuser,结束流程。

5.新建testuser用户
1)新建testuser角色
curl -H ‘Content-Type:application/json’ -XPUT -u username:password “http://ip:port/_security/role/testuser” -d ‘{
“cluster”:[“monitor”],
“indices”:[{“names”:["*"],“privileges”:[“monitor”]}]
}’
返回create:true表示创建成功.
2)新建testuser用户
curl -H ‘Content-Type:application/json’ -XPUT -u username:password “http://ip:port/_security/user/testuser” -d ‘{
“password”:“password”,“roles”:[“testuser”]
}’
返回create:true表示创建成功,结束流程。

注意:
1)上面代码中的密码、ip、端口号需要根据实际情况替换
2)若项目组搭建的es有未开启xpack的,需要开启。xpack是es的安全认证模块,没有xpack无需用户密码可直接访问数据库。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐