設定叢集密碼加密
虛擬私有雲 經典基礎架構 Satellite
建立群集後,您可以啟用金鑰管理服務 (KMS) 提供者,例如 IBM® Key Protect for IBM Cloud®,以保護 Kubernetes 秘密以及儲存在秘密中的任何憑證。
從 CLI 啟用密碼加密
您可以啟用 KMS 提供者、更新 KMS 提供者實例,或透過 CLI 更新根金鑰。
CLI 或 API 支援在不同帳戶中使用 KMS 來設定跨帳戶加密。
-
建立 KMS 實例及根金鑰。 如果您要使用跨帳戶 KMS 加密,請確保在您要使用其 KMS 實例的帳戶中建立 KMS 及根金鑰。
-
取得您先前建立之 KMS 實例的 ID。
ibmcloud oc kms instance ls -
取得您先前建立的根金鑰的 ID。
ibmcloud oc kms crk ls --instance-id KMS_INSTANCE_ID -
啟用 KMS 提供者以加密叢集裡的密碼。 使用先前擷取的資訊完成選項。 依預設,會使用 KMS 提供者的專用雲端服務端點來下載加密金鑰。 若要改用公用雲端服務端點,請包括
--public-endpoint選項。 啟用處理程序可能需要一點時間才能完成。ibmcloud oc kms enable -c CLUSTER_NAME_OR_ID --instance-id KMS_INSTANCE_ID --crk ROOT_KEY_ID [--public-endpoint]在啟用期間,您可能無法存取 Kubernetes 主節點,例如更新用於部署的 YAML 配置。
-
驗證 KMS 啟用程序已完成。 當 主要狀態 為 備妥 且 金鑰管理服務 已 啟用時,處理程序即會完成。
ibmcloud oc cluster get -c CLUSTER_NAME_OR_ID啟用程序進行中的輸出範例
NAME: <cluster_name> ID: <cluster_ID> ... Master Status: Key management service feature enablement in progress.當主節點就緒時的輸出範例
NAME: <cluster_name> ID: <cluster_ID> ... Master Status: Ready (1 min ago) ... Key Management Service: enabled在叢集裡啟用 KMS 提供者之後,會自動加密所有叢集密碼。
-
選用項目: 驗證密碼已加密。
金鑰啟用(透過 Red Hat OpenShift 啟動)表示加密切換到 KMS 提供者的新金鑰。 透過 KMS 提供者啟動的金鑰輪替,表示加密切換到現有金鑰的新版本。 如果 KMS 提供者已輪換 KMS 憑證,請勿刪除 KMS 憑證實例中的任何根金鑰。 根密鑰只有在不再使用時才能刪除。 例如,啟用新金鑰並確認群集不再使用舊金鑰後,就可以刪除舊金鑰。 若您刪除叢集所使用的根金鑰,該叢集將無法使用、遺失所有資料,且無法恢復。 當您替換根金鑰時,無法針對相同叢集重複使用先前的根金鑰。 同樣地,如果您停用根金鑰,則依賴讀取密鑰的作業會失敗。 不過,與刪除 root 金鑰不同,您可以重新啟用停用的金鑰,讓群集再次可用。
從主控台啟用密碼加密
您可以透過 IBM Cloud 主控台啟用 KMS 提供者、更新 KMS 提供者實例或更新根金鑰。
-
建立 KMS 實例及根金鑰。 如果您要使用跨帳戶 KMS 加密,請確保在您要使用其 KMS 實例的帳戶中建立 KMS 及根金鑰。
-
從 主控台,選擇要啟用加密的群集。
-
在「金鑰管理服務」區段中,按一下啟用。 如果您已啟用 KMS 提供者,請按一下更新。
-
選取您要用於加密的 金鑰管理服務實例 和 根金鑰。
在啟用期間,您可能無法存取 Kubernetes 主節點,例如更新用於部署的 YAML 配置。
-
按一下 啟用 (或 更新)。
-
驗證 KMS 啟用程序已完成。 啟用程序進行中的輸出範例。
Master status KMS feature enablement in progress.當主節點就緒時的輸出範例。
Master status Ready在叢集裡啟用 KMS 提供者之後,會自動加密所有叢集密碼。
-
選用項目: 驗證密碼已加密。
金鑰啟用(透過 Red Hat OpenShift 啟動)表示加密切換到 KMS 提供者的新金鑰。 透過 KMS 提供者啟動的金鑰輪替,表示加密切換到現有金鑰的新版本。 如果 KMS 提供者已輪換 KMS 憑證,請勿刪除 KMS 憑證實例中的任何根金鑰。 根密鑰只有在不再使用時才能刪除。 例如,啟用新金鑰並確認群集不再使用舊金鑰後,就可以刪除舊金鑰。 若您刪除叢集所使用的根金鑰,該叢集將無法使用、遺失所有資料,且無法恢復。 當您替換根金鑰時,無法針對相同叢集重複使用先前的根金鑰。 同樣地,如果您停用根金鑰,則依賴讀取密鑰的作業會失敗。 不過,與刪除 root 金鑰不同,您可以重新啟用停用的金鑰,讓群集再次可用。
輪替叢集的根金鑰
若要替換用來加密叢集的根金鑰,請重複步驟來啟用 KMS 加密。 當您替換根金鑰時,無法針對相同叢集重複使用先前的根金鑰。
您可以從 KMS 實例手動替換根金鑰。 此動作會使用新的根金鑰自動重新啟用叢集裡的 KMS。 若要手動旋轉按鍵,請參閱 旋轉按鍵。
驗證密鑰加密
在 Red Hat OpenShift on IBM Cloud 叢集裡啟用 KMS 提供者之後,您可以停用根金鑰來驗證叢集密碼是否已加密。 當您停用根金鑰時,叢集無法再解密密鑰並變成無法使用,這表示您的密鑰已加密。
確保您擁有 IBM Cloud IAM 管理員平台和群集的 Manager 服務存取角色。
-
若要檢查 KMS 加密是否已啟用,請在下列指令的輸出中驗證 金鑰管理服務 狀態是否設為
enabled。ibmcloud oc cluster get -c <cluster_name_or_ID> -
驗證您可以列出叢集裡的密碼。
oc get secrets --all-namespaces -
在 KMS 實例中,停用用來加密叢集的根金鑰。 如果您使用來自不同帳戶的 KMS 和 CRK 來加密叢集,則只能從它所在的帳戶停用 CRK。
-
等待叢集偵測根金鑰的變更。
-
請嘗試列出您的密鑰。 您收到逾時錯誤,因為您無法再連接至叢集。 如果您嘗試透過執行
ibmcloud oc cluster config來設定叢集的環境定義,則指令會失敗。oc get secrets --all-namespaces輸出範例
Unable to connect to the server: dial tcp 169.48.110.250:32346: i/o timeout -
檢查叢集是否處於 warning 狀態。 在重新啟用根金鑰之前,您的叢集會保持此狀態且無法使用。
ibmcloud oc cluster get -c <cluster_name_or_ID> -
在 KMS 實例中,啟用根金鑰,讓叢集回到 正常 狀態並再次變成可用。