不羅嗦了,直接來(lái)干貨。如有問(wèn)題,可隨時(shí)交流。
zookeeper授權(quán)方式設(shè)置
一、設(shè)置授權(quán)
1.1、IP白名單方式
備注:對(duì)需要進(jìn)行白名單設(shè)置的路徑進(jìn)行設(shè)置,此處設(shè)置的路徑?jīng)]有繼承關(guān)系,即設(shè)置了/test的白名單,但是/test/test2依然沒(méi)有設(shè)置為白名單。
setAcl /test ip:127.0.0.1:cdrwa
多個(gè)ip之間用逗號(hào)隔開(kāi),如:
setAcl /test ip:127.0.0.1:cdrwa,ip:192.168.10.3:cdrwa
通過(guò)此IP白名單設(shè)置之后,即只允許設(shè)定過(guò)的IP服務(wù)器才能進(jìn)行訪問(wèn),其他機(jī)器無(wú)法訪問(wèn)。
1.2、auth模式
1.2.1、添加用戶
addauth digest ramboo:ramboo
可以添加多個(gè)用戶,如
addauth digest ramboo1:ramboo1
addauth digest ramboo2:ramboo2
addauth digest ramboo3:ramboo3
1.2.2、設(shè)置Acl權(quán)限
此處假如對(duì)/auth路徑進(jìn)行設(shè)置,則
setAcl /auth auth:ramboo1:ramboo1:cdrwa
備注:****此處雖然設(shè)置了ramboo1用戶的權(quán)限,但是zk會(huì)默認(rèn)添加所有存在的用戶。此處需要注意。
1.2.3、查看Acl權(quán)限
getAcl /auth
結(jié)果如下所示:
'digest,'ramboo1:JXpHVJcEMUsIf5MM6u7TlOp3pqo=
: cdrwa
'digest,'ramboo2:lTTHGKOT6A3iEwj/SV5meGTXbAM=
: cdrwa
'digest,'ramboo3:b8+HkvFoPszTILQTMB1YFQ+Yvus=
: cdrwa
備注:如果退出了客戶端,再進(jìn)入的時(shí)候,需要重新添加用戶,才可訪問(wèn),即授權(quán)。
1.3、digest模式
此模式,和auth模式的區(qū)別在于:
1、digest設(shè)置Acl的時(shí)候,可以不用先添加用戶,而auth設(shè)置Acl的時(shí)候,是需要提前設(shè)置用戶的,否則報(bào)錯(cuò)。
2、digest設(shè)置的密碼要用密文,auth設(shè)置的密碼是明文。
3、auth設(shè)置的,只需設(shè)置一個(gè)用戶,就可以把所有用戶設(shè)置進(jìn)去,而digest不行,只能對(duì)本次設(shè)置的用戶有效。也就是auth模式忽略id。
1.3.1、生成密文密碼
在Linux下執(zhí)行如下命令
echo -n xing:xing | openssl dgst -binary -sha1 | openssl base64
結(jié)果為:
kgk4DGva6vqOBYMGbMsXBZuFCXE=
1.3.2、設(shè)置Acl權(quán)限
此處假如對(duì)/digest路徑進(jìn)行設(shè)置,則
setAcl /digest digest:xing:kgk4DGva6vqOBYMGbMsXBZuFCXE=:cdrwa
備注:此處的密文密碼不要隨意更改,否則不知道對(duì)應(yīng)的明文是多少,后續(xù)就沒(méi)辦法訪問(wèn)對(duì)應(yīng)節(jié)點(diǎn),切記!
備注:此處的密文密碼不要隨意更改,否則不知道對(duì)應(yīng)的明文是多少,后續(xù)就沒(méi)辦法訪問(wèn)對(duì)應(yīng)節(jié)點(diǎn),切記!
備注:此處的密文密碼不要隨意更改,否則不知道對(duì)應(yīng)的明文是多少,后續(xù)就沒(méi)辦法訪問(wèn)對(duì)應(yīng)節(jié)點(diǎn),切記!
1.3.3、查看Acl權(quán)限
此時(shí)如果沒(méi)有添加xing這個(gè)用戶,需要先添加,才可查看。添加命令如下:
addauth digest xing:xing
添加后,可查看:
getAcl /digest
結(jié)果為:
'digest,'xing:kgk4DGva6vqOBYMGbMsXBZuFCXE=
: cdrwa
備注:如果要添加多個(gè)用戶,則用逗號(hào)隔開(kāi),如下所示:
setAcl /digest digest:xing:kgk4DGva6vqOBYMGbMsXBZuFCXE=:cdrwa,digest:hang:YQRsX4vWAT6BHGo7yQi6tFSYxKc=:cdrwa
二、忘記密碼修復(fù)方式
如果對(duì)上述設(shè)置授權(quán)后,忘記密碼了,怎么辦?方法如下:
進(jìn)入配置文件zoo.cfg,修改配置,設(shè)置跳過(guò)Acl驗(yàn)證,配置如下:
skipACL=yes
重啟zookeeper。
啟動(dòng)后,可按照第一節(jié)所述的方式,重新進(jìn)行Acl設(shè)置即可。