概述
默認情況下,ZooKeeper集群不會對客戶端進行強制身份認證,任何客戶端都可以訪問ZooKeeper數據,存在安全隱患。目前,MSE ZooKeeper支持SASL身份認證,通過用戶名和密碼對客戶端進行身份認證,提升Zookeeper數據的安全性。
前提條件
創建微服務引擎MSE,參考章節:創建ZooKeeper引擎;
開通引擎版本為3.8.1.9及以上的ZooKeeper實例,并且實例狀態正常;
操作步驟
1.登錄微服務引擎MSE注冊配置中心管理控制臺,選擇資源池;
2.在左側導航欄,選擇注冊配置中心 > 實例列表;
3.在實例列表頁面,單擊目標實例ID、實例名稱或者目標行“管理”按鈕均可跳轉至實例基礎信息頁面;
4.在左側導航欄,選擇權限管理> SASL認證;
5.在用戶管理頁面,單擊創建用戶。在創建用戶面板中輸入用戶名、密碼和確認密碼,然后單擊確定即可增加新的用戶身份信息配置;
6.單擊對應用戶操作列中的復制配置,以下內容會被復制到粘貼板,密碼需要手動補充,然后將其保存在客戶端的任意文件中(如jaas.conf);
Client {
org.apache.zookeeper.server.auth.DigestLoginModule required
username=test
password="";
};7.對于Java使用Zookeeper原生SDK或者Apache Curator框架的應用時,需要進行以下操作:
假設之前已經保存的配置文件路徑為/path/to/jaas.conf,在Java應用啟動的時候,指定以下系統屬性。
-Djava.security.auth.login.config=/path/to/jaas.conf // 填寫配置保存的文件的路徑
重啟客戶端應用后,客戶端會自動讀取認證信息配置并向Zookeeper服務端進行身份認證。
8.客戶端配置完成之后,在左側導航欄,選擇參數管理。在參數管理頁面,將requireClientSASLAuth的值設置為true,即可強制要求客戶端連接服務端時進行SASL身份認證;
9.用戶創建成功后,可以在用戶列表的操作列,按需執行如下操作;
重置密碼:點擊重置密碼,在密碼重置面板中輸入用戶名、新密碼和確認密碼。當用戶密碼發生變更后,以該用戶身份連接服務端的客戶端將會斷開連接;
刪除用戶:單擊刪除,彈出框提示確認需要刪除的用戶名稱,點擊確認即可刪除用戶。當用戶被刪除后,以該用戶身份連接服務端的客戶端將會斷開連接;
說明
將requireClientSASLAuth設置為true會導致未通過SASL身份認證的客戶端無法請求Zookeeper服務端;
Java客戶端請確保依賴的ZooKeeper依賴版本為3.4及以上;
Zookeeper服務端的引擎版本為3.8.19.及以上;