Cloud KMS キーのローテーション間隔の確認

組織の方針に従ってキーのバージョンを更新し、既存データの復号に必要なバージョンを保持してください。

説明

暗号化キーの同じバージョンを長期間使うと、そのバージョンに依存するデータが増える場合があります。Cloud KMS のローテーション間隔はデータの機密性と組織の方針に基づいて決めるもので、90 日がすべての用途に必須のサービス上限ではありません。

自動ローテーションは、対称 ENCRYPT_DECRYPT キーの新しいプライマリバージョンを作成します。既存データの再暗号化や、古いバージョンの無効化・削除は行いません。非対称キーには別途更新計画が必要です。

想定される影響

  • 方針より長い利用期間は、キー管理や監査の要件を満たさない場合があります。
  • 必要な古いバージョンを早期に削除すると、既存データを復号できなくなるおそれがあります。

対処方法

組織が定めた間隔を rotation_period に設定し、実際のスケジュールを確認してください。新しいバージョンを使うアプリケーションの動作を試験し、既存データが依存するバージョンは必要な間保持してください。キーへのアクセス、再暗号化、廃棄の手順は別途管理してください。

例

対称暗号化キーの設定例です。プロジェクト、キーリング、認証ファイルを実際の対応する値に置き換えてください。変更前の二つのタスクは代替例であり、同じキーへ続けて実行する手順ではありません。

変更前

yaml
- name: create a crypto key
  google.cloud.gcp_kms_crypto_key:
    name: test_object
    key_ring: projects/{{ gcp_project }}/locations/us-central1/keyRings/key-key-ring
    project: test_project
    auth_kind: serviceaccount
    rotation_period: "315356000s"
    service_account_file: "/tmp/auth.pem"
    state: present

- name: create a crypto key2
  google.cloud.gcp_kms_crypto_key:
    name: test_object
    key_ring: projects/{{ gcp_project }}/locations/us-central1/keyRings/key-key-ring
    project: test_project
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"
    state: present

最初のタスクは約 10 年の間隔を設定し、二つ目は間隔を明示していません。省略しただけで既存キーのスケジュールが削除されるわけではありません。

変更後

yaml
- name: create a crypto key
  google.cloud.gcp_kms_crypto_key:
    name: test_object
    key_ring: projects/{{ gcp_project }}/locations/us-central1/keyRings/key-key-ring
    project: test_project
    auth_kind: serviceaccount
    rotation_period: 7776000s
    service_account_file: /tmp/auth.pem
    state: present

7776000s は 90 日です。この例の間隔が組織の方針に合うか確認し、既存データの再暗号化が必要かは別途判断してください。

参考資料