預設情況下,ZooKeeper叢集未強制進行身份認證,導致叢集資料在網路中暴露,任何用戶端都可訪問其中的資料,存在較大安全隱患。MSE支援配置ZooKeeper的SASL認證資訊和強制開關,以提升叢集資料的安全性。目前,MSE ZooKeeper支援Digest-5機制的SASL身份認證,通過使用者名稱和密碼對用戶端進行身份認證。您可以通過佈建服務端用戶端將要使用的身份資訊,開啟服務端對用戶端的身份認證能力。
前提條件
建立ZooKeeper引擎且ZooKeeper引擎版本為3.8.0.7及以上。如需升級引擎版本,請參見升級ZooKeeper引擎版本。
操作步驟
登入MSE註冊中心控制台。
在左側導覽列,選擇注册配置中心 > 实例列表。單擊目標執行個體名稱。
在左側導覽列,選擇鑒權管理。
在鑒權管理頁面,單擊建立使用者。在建立使用者面板,輸入使用者名稱、密碼和確認密碼,然後單擊確定並重啟執行個體。
重啟叢集後,會應用新的使用者身份資訊配置。
單擊對應使用者操作列下的複製配置,密碼需要手動在配置中補充,然後儲存在用戶端的任意檔案。
對於Java使用ZooKeeper原生SDK或者CuratorFramework的應用需要進行以下操作:
假設之前已經儲存的設定檔路徑為/path,在Java應用啟動的時候,指定系統屬性。
-Djava.security.auth.login.config=/path // 等號後面填寫配置儲存的檔案的路徑重啟應用後,用戶端會自動讀取配置並進行認證。
說明Java用戶端請確保依賴的ZooKeeper版本為3.4及以上。
其他語言用戶端,請參考對應的SDK文檔進行設定。
所有用戶端配置完成之後,在控制台左側導覽列,選擇參數設定。在參數設定頁面,設定AuthEnabled值為true,即可開啟服務端強制校正用戶端使用SASL身份認證。
說明將"AuthEnabled"設定為true將會導致未通過SASL身份認證的用戶端無法請求Server。