このドキュメントでは、ルートキーをローテーションする方法について説明します。ルートキーが不正使用された場合や、セキュリティを強化するためにルートキーを定期的にローテーションする場合は、RotationJob リソースを使用して、キーを新しいルートキーにローテーションできます。
ルートキーをローテーションすると、新しいルートキーが作成され、それがプライマリ キーになり、すべての非ルートキーをラップします。ルートキーは削除できません。ローテーションでのみ置き換えることができます。ルートキーの詳細については、ルートキーのタイプをご覧ください。
KMS API の詳細については KMS API の概要を、API 定義全体については Key Management Service KRM 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_NAMEROTATION_NAME は、ローテーション ジョブの名前(例:
rotate-job1)に置き換えます。ROOT_KEY_RESOURCE_NAME は、
namespace/NAMESPACE/secrets/ROOT_KEY_NAME形式で指定されたルートキー名に置き換えます。例:
namespaces/kms-system/secrets/kms-key-ctm-rootYAML ファイルの内容を KMS に適用します。
kubectl apply -f FILENAME.yamlFILENAME は、YAML ファイルの名前に置き換えます。
コマンドを実行すると、KMS は新しいルートキーを作成し、新しいルートキーですべてのキーをローテーションします。
ルートキーのローテーションが完了したことを確認するには、次のコマンドを実行します。
kubectl get rotationjobs ROTATION_NAMEROTATION_NAME は、ローテーション ジョブの名前に置き換えます。
コマンドを実行すると、ローテーション ジョブのステータスが
Completedと表示されます。ルートキーから
Doneアノテーションを削除します。アノテーションを削除すると、キーを複数回ローテーションできます。この手順は、インフラストラクチャ オペレーター(IO)が実行する必要があります。IO に次のコマンドを実行してもらいます。kubectl annotate secret kms-key-ROOT_KEY_NAME -n kms-system gdch.cluster.gke.io/rotation-status-