轮替根密钥

如果您的根密钥被盗,或者您选择定期轮替根密钥,则可以使用 RotationJob 资源将密钥轮替为新的根密钥。

如需详细了解 KMS API,请参阅 KMS API 概览;如需查看完整的 API 定义,请参阅 Key Management Service KRM API

准备工作

在继续之前,请确保您已准备好以下内容:

  • 配置为访问 Management API 服务器的 kubectl 命令。为此,请使用 gdcloud 命令行界面 (CLI) 获取 kubeconfig 文件

  • KMS Rotation Job Admin 角色。如需获得轮换密钥所需的权限,请让您的组织 IAM 管理员为您授予 KMS Rotation Job Admin (kms-rotationjob-admin) 角色。

轮替根密钥

如需创建新的根密钥并轮替密钥,请完成以下步骤:

  1. 创建一个 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

  2. 将 YAML 文件的内容应用于 KMS:

    kubectl apply -f FILENAME.yaml
    

    FILENAME 替换为 YAML 文件的名称。

    运行该命令后,KMS 会创建一个新的根密钥,并使用该新根密钥轮替每个密钥。

  3. 如需验证根密钥轮替是否已完成,请运行以下命令:

    kubectl get rotationjobs ROTATION_NAME
    

    ROTATION_NAME 替换为轮换作业的名称。

    运行该命令后,如果轮替作业成功,您会看到状态为 Completed

  4. 从根密钥中移除了 Done 注解。移除注解后,您可以多次轮替密钥。您的基础设施运营商 (IO) 必须执行此步骤。让您的 IO 运行以下命令:

    kubectl annotate secret kms-key-ROOT_KEY_NAME -n kms-system gdch.cluster.gke.io/rotation-status-