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

組織の方針に従ってキーを更新し、旧バージョンとデータの扱いも計画してください。

説明

暗号鍵を長期間使うと、一つのキーバージョンに依存するデータが増える場合があります。Cloud KMS の対称暗号鍵には必要な間隔で自動ローテーションを設定してください。更新で新しいプライマリバージョンが作成されますが、既存データの再暗号化や旧バージョンの無効化は自動では行われません。

想定される影響

  • キーバージョンが漏えいすると、そのバージョンで暗号化したデータに影響するおそれがあります。
  • 更新だけで侵害されたキーの利用が止まったと判断すると、必要な対応を見落とす場合があります。

対処方法

  • 暗号鍵の管理方針に合わせて rotation_period を設定してください。90日が必要なら 7776000s を使用し、非対称キーには別の更新手順を用意してください。
  • 旧バージョンの利用状況と再暗号化の必要性を確認してください。キーが侵害された場合はアクセスを制限し、必要なバージョンを無効化してください。その前に復旧と既存データの復号への影響を確認してください。

例

同じキーの更新間隔を比較する抜粋です。100000s は例示値であり、すべての環境に推奨する間隔ではありません。

変更前

hcl
resource "google_kms_crypto_key" "crypto_key" {
  name            = "crypto-key-example"
  key_ring        = google_kms_key_ring.keyring.id
  rotation_period = "77760009s"

  lifecycle {
    prevent_destroy = true
  }
}

変更後

hcl
resource "google_kms_crypto_key" "crypto_key" {
  name            = "crypto-key-example"
  key_ring        = google_kms_key_ring.keyring.id
  rotation_period = "100000s"

  lifecycle {
    prevent_destroy = true
  }
}

補足:

  • 変更前: 長い更新間隔を設定しています。実際の方針とデータ利用量に適しているか確認が必要です。
  • 変更後: 短い間隔を設定しています。この変更だけでは既存データや旧キーバージョンは処理されません。

参考資料