KMSキーの使用可能な状態の確認

サービスが使用するKMSキーの有効状態と削除計画を確認してください。

説明

KMSキーが無効になっているか、実際に削除待機中である場合、そのキーを必要とする暗号化・復号処理が失敗することがあります。保存データを暗号化していても、キーが使えなければサービス障害につながります。

PendingWindowInDaysはCloudFormationでキーを削除するときの待機期間です。このプロパティを指定するだけでは、削除は予約されず、キーも無効になりません。実際のキー状態と依存するサービスを確認する必要があります。

想定される影響

  • キーを必要とするデータの読み取り、リソース作成、バックアップの復元が失敗する可能性があります。
  • キーが最終的に削除されると、そのキーでしか復号できないデータを復元できなくなる可能性があります。

対処方法

  • キーの状態と使用権限を確認し、無効化された理由を調べたうえで、必要なキーを有効にしてください。
  • 必要なキーの削除が予約されている場合は、KMSで予約を取り消してから再度有効にしてください。テンプレートにキーを追加し直しても、元のキーは復元されません。
  • キーを廃止する前に、既存データやバックアップの復号がそのキーに依存しなくなったことを確認してください。

例

以下はキーの有効状態を比較する例です。アプリケーションのキー使用権限は別途設定してください。

変更前

yaml
Resources:
  AppKey:
    Type: AWS::KMS::Key
    Properties:
      Enabled: false
      PendingWindowInDays: 7
      KeyPolicy:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              AWS: !Sub arn:aws:iam::${AWS::AccountId}:root
            Action: kms:*
            Resource: "*"

Enabled: falseのため、このキーは暗号処理に使用できません。PendingWindowInDays: 7は削除時の待機期間であり、現在削除待機中であることを意味しません。

変更後

yaml
Resources:
  AppKey:
    Type: AWS::KMS::Key
    Properties:
      Enabled: true
      KeyPolicy:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              AWS: !Sub arn:aws:iam::${AWS::AccountId}:root
            Action: kms:*
            Resource: "*"

キーを有効にします。待機期間を省略しても削除自体を防ぐことはできないため、実際のキー状態と削除権限を管理してください。

参考資料