本文說明如何輪替根金鑰。如果根金鑰遭到入侵,或是您選擇定期輪替根金鑰來提升安全性,可以使用 RotationJob
資源將金鑰輪替為新的根金鑰。
輪替根金鑰會建立新的根金鑰,並將其設為主要金鑰,然後包裝所有非根金鑰。您無法刪除根金鑰,只能透過輪替來取代。如要進一步瞭解根金鑰,請參閱「根金鑰類型」。
如要瞭解 KMS API 的詳細資料,請參閱 KMS API 總覽,並查看 Key Management Service KRM API 的完整 API 定義。
事前準備
請務必備妥下列資訊再繼續操作:
設定為存取 Management API 伺服器的
kubectl
指令。如要執行這項操作,請使用 gdcloud 指令列介面 (CLI)取得 kubeconfig 檔案。KMS 輪替工作管理員角色。如要取得輪替金鑰所需的權限,請要求機構 IAM 管理員授予您 KMS 輪替作業管理員 (
kms-rotationjob-admin
) 角色。
輪替根金鑰
如要建立新的根金鑰並輪替金鑰,請完成下列步驟:
建立 YAML 檔案,並加入
RotationJob
資源和下列內容:apiVersion: "kms.gdc.goog/v1" kind: RotationJob metadata: name: ROTATION_NAME spec: rootKeyResourceName: ROOT_KEY_RESOURCE_NAME
將 ROTATION_NAME 替換為輪替工作的名稱,例如:
rotate-job1
。將 ROOT_KEY_RESOURCE_NAME 替換為表單
namespace/NAMESPACE/secrets/ROOT_KEY_NAME
中指定的根金鑰名稱例如
namespaces/kms-system/secrets/ctm-root
。將 YAML 檔案的內容套用至 KMS:
kubectl apply -f FILENAME.yaml
將 FILENAME 換成 YAML 檔案的名稱。
執行指令後,KMS 會建立新的根金鑰,並使用新的根金鑰輪替所有金鑰。
如要確認根金鑰輪替作業已完成,請執行下列指令:
kubectl get rotationjobs ROTATION_NAME
將 ROTATION_NAME 改為輪替作業的名稱。
執行指令後,如果輪替作業成功,您會看到
Completed
狀態。從根金鑰中移除
Done
註解。移除註解後,您就能多次輪替金鑰。基礎架構作業人員 (IO) 必須執行這個步驟。請 IO 執行下列指令:kubectl annotate secret kms-key-ROOT_KEY_NAME -n kms-system gdch.cluster.gke.io/rotation-status-