修復方案
利用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]