目前在公司內部使用zookeeper的地方越來越多,應用大多喜歡自己部署一套zk集群來使用。考慮到zk的高可用,並且一套zk集群至少3臺機器, 那麼每個應用,尤其是一些非核心應用都自己去部署一套的話,對資源利用率很低。另外,隨著zk容災的提出,單套zk集群使用的機器量會更大,運維人員開始 對這個情況擔憂,強烈希望能夠合併zk集群。
在公司不少牛人的幫助下,暫時得到兩個許可權方案,同時也希望大家提出自己的看法,共同進步。
方案一:採用zookeeper支援的digest方式,使用者自己定義節點的許可權
這種方案將zookeeper的acl和digest授權認證模式相結合。具體操作流程如下:
注意:zookeeper原生的api是支援這種方式的,但是github上的zkclient目前還不支援,我已經在它基礎上新增了許可權控制介面,測試通過。如果你正在使用這個客戶端,那麼不妨嘗試一下。(
方案二、對zookeeper的authenticationprovider進行擴充套件,和內部其它系統a打通,從系統a中獲取一些資訊來判斷許可權
個人比較兩個方案 1.方案一較方案二,使用者的掌控性大,無論線上,日常,測試都可以由應用開發人員自己決定開啟/關閉許可權。 (方案一的優勢) 2.方案二較方案一,易用性強,使用者的使用和無許可權基本一致。 (方案二的優勢) 3.方案一較方案二更為純潔。因為我覺得zk本來就應該是乙個底層元件,讓他來依賴其它上層的另乙個系統?許可權的控制精度取決於系統a上資訊的準確性。 (方案一的優勢)
Zookeeper 許可權控制
1.acl access control lists 針對節點設定相關讀寫等許可權,目的為了保障資料的安全性。許可權permissions可以指定不同的許可權範圍以及角色。2.acl命令列 getacl 獲取某個節點的acl許可權資訊。setacl 設定某個節點的acl許可權資訊。addauth 輸...
zookeeper之許可權控制 ACL
1.許可權控制 zookeeper集群中,通常是由乙個統一的zookeeper集群來為若干個應用提供服務。而此時,各應用之間不存在資料的共享操作場景。因此為了避免zookeeper伺服器上的資料資源被其他程序意外操作修改,需要解決不同應用之間的許可權問題 即對zookeeper伺服器上的資料訪問進行...
Zookeeper 許可權控制 ACL介紹
zookeeper 的 acl access control list,訪問控制表 許可權在生產環境是特別重要的。acl 許可權可以針對節點設定相關讀寫等許可權,保障資料安全性。permissions 可以指定不同的許可權範圍及角色。acl 命令列 getacl 命令 獲取某個節點的 acl 許可權...