zookeeper的几种授权方式

zookeeper授权方式设置

一、设置授权

1.1、IP白名单方式

备注:对需要进行白名单设置的路径进行设置,此处设置的路径没有继承关系,即设置了/test的白名单,但是/test/test2依然没有设置为白名单。

setAcl /test ip:127.0.0.1:cdrwa

 权限组合字符串,由cdrwa组成,其中每个字母代表支持不同权限,创建权限create(c)、删除权限delete(d)、读权限read(r)、写权限write(w)、管理权限admin(a)。

多个ip之间用逗号隔开,如:
setAcl /test ip:127.0.0.1:cdrwa,ip:192.168.10.3:cdrwa

通过此IP白名单设置之后,即只允许设定过的IP服务器才能进行访问,其他机器无法访问。

1.2、auth模式

1.2.1、添加用户

addauth digest ramboo:ramboo

可以添加多个用户,如

addauth digest ramboo1:ramboo1
addauth digest ramboo2:ramboo2
addauth digest ramboo3:ramboo3

 

1.2.2、设置Acl权限

此处假如对/auth路径进行设置,则

setAcl /auth auth:ramboo1:ramboo1:cdrwa

备注:****此处虽然设置了ramboo1用户的权限,但是zk会默认添加所有存在的用户。此处需要注意。

 

1.2.3、查看Acl权限

getAcl /auth

结果如下所示:

'digest,'ramboo1:JXpHVJcEMUsIf5MM6u7TlOp3pqo=
: cdrwa
'digest,'ramboo2:lTTHGKOT6A3iEwj/SV5meGTXbAM=
: cdrwa
'digest,'ramboo3:b8+HkvFoPszTILQTMB1YFQ+Yvus=
: cdrwa

 

备注:如果退出了客户端,再进入的时候,需要重新添加用户,才可访问,即授权。

 

1.3、digest模式

此模式,和auth模式的区别在于:

1、digest设置Acl的时候,可以不用先添加用户,而auth设置Acl的时候,是需要提前设置用户的,否则报错。

2、digest设置的密码要用密文,auth设置的密码是明文。

3、auth设置的,只需设置一个用户,就可以把所有用户设置进去,而digest不行,只能对本次设置的用户有效。也就是auth模式忽略id。

 

1.3.1、生成密文密码

在Linux下执行如下命令

echo -n xing:xing | openssl dgst -binary -sha1 | openssl base64

结果为:

kgk4DGva6vqOBYMGbMsXBZuFCXE=

1.3.2、设置Acl权限

此处假如对/digest路径进行设置,则

setAcl /digest digest:xing:kgk4DGva6vqOBYMGbMsXBZuFCXE=:cdrwa

备注:此处的密文密码不要随意更改,否则不知道对应的明文是多少,后续就没办法访问对应节点,切记!

 

1.3.3、查看Acl权限

此时如果没有添加xing这个用户,需要先添加,才可查看。添加命令如下:

addauth digest xing:xing

添加后,可查看:

getAcl /digest

结果为:

'digest,'xing:kgk4DGva6vqOBYMGbMsXBZuFCXE=
: cdrwa

备注:如果要添加多个用户,则用逗号隔开,如下所示:

setAcl /digest digest:xing:kgk4DGva6vqOBYMGbMsXBZuFCXE=:cdrwa,digest:hang:YQRsX4vWAT6BHGo7yQi6tFSYxKc=:cdrwa

 

二、忘记密码修复方式

如果对上述设置授权后,忘记密码了,怎么办?方法如下:

进入配置文件zoo.cfg,修改配置,设置跳过Acl验证,配置如下:

skipACL=yes

重启zookeeper。

启动后,可按照第一节所述的方式,重新进行Acl设置即可。

 
链接:
https://www.jianshu.com/p/9707d3cf3da4

posted @ 2022-10-10 13:34  fengjian1585  阅读(967)  评论(0编辑  收藏  举报