ルート鍵をローテーションする

ルートキーが不正使用された場合や、ルートキーを定期的にローテーションする場合は、RotationJob リソースを使用して、キーを新しいルートキーにローテーションできます。

KMS API の詳細については KMS API の概要を、API 定義全体については Key Management Service KRM API をご覧ください。

始める前に

続行する前に、次の点をご確認ください。

  • Management API サーバーにアクセスするように構成された kubectl コマンド。これを行うには、gdcloud コマンドライン インターフェース(CLI)を使用して kubeconfig ファイルを取得します。

  • KMS ローテーション ジョブ管理者ロール。鍵のローテーションに必要な権限を取得するには、組織の IAM 管理者に KMS ローテーション ジョブ管理者(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-