説明
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: "*"
キーを有効にします。待機期間を省略しても削除自体を防ぐことはできないため、実際のキー状態と削除権限を管理してください。