修复方案
利用zookeeper的ACL设置,解决未授权访问zookeeper的权限
ACL
ACL设置
利用zookeeper的acl认证,命令如下:
首先,./zkCli.sh 连接并登录zookeeper服务,执行如下命令:
addauth digest udal:Pass@w147ord
setAcl / auth:udal:Pass@w147ord:cdrwa
//udal:udal,表示用户(udal)及密码(Pass@w147ord)
执行完上述命令即可完成对zookeeper根节点的设置,其中udal:Pass@w147ord 为用户:密码
权限验证
设置完根节点的ACL权限后,可进行访问验证
权限验证过程如下:
[zk: 127.0.0.1:2184(CONNECTED) 3] addauth digest udal:Pass@w147ord
# 添加一个用户并登录
[zk: 127.0.0.1:2184(CONNECTED) 4] setAcl / auth:udal:Pass@w147ord:cdrwa
# 设置权限
[zk: 127.0.0.1:2184(CONNECTED) 5] getAcl /
# 权限结果
'digest,'udal:+UGTdm+eX21ke1Ncys3EsGkkAVY=
: cdrwa
#退出并重新登录,提示无权限
[zk: 127.0.0.1:2184(CONNECTED) 0] ls /
Insufficient permission : /
[zk: 127.0.0.1:2184(CONNECTED) 1] addauth digest udal:Pass@w147ord
#登录验证用户
[zk: 127.0.0.1:2184(CONNECTED) 2] ls /
[container, ctyun, udal_cluster]