説明
SNS で alias/aws/sns を使うと、保存されるメッセージ本文が AWS マネージド KMS キーで暗号化されます。このキーの使用自体が、平文保存や暗号化強度の低下を意味するわけではありません。
ただし、キーポリシーは AWS が管理するため直接変更できません。組織がキーポリシーやライフサイクルを直接管理する必要がある場合は、カスタマー管理 KMS キーを使用してください。
想定される影響
カスタマー管理キーが必要なメッセージ経路で既定のキーを使用すると、組織の要件を満たせない場合があります。キーの権限を誤って制限すると発行や配信が失敗するおそれがあり、キーの種類にかかわらずトピックポリシーと配信先も確認する必要があります。
対処方法
- カスタマー管理キーが必要な場合は、
kms_master_key_idに実際の対称暗号化 KMS キーの ARN またはエイリアスを指定してください。 - トピックポリシーとキーポリシーを併せて確認し、発行元や連携サービスに必要なキー権限を付与してください。
- 変更後の発行・配信を確認し、既存メッセージの処理に必要なキーへのアクセスを維持してください。転送時暗号化とメッセージメタデータの保護は別途管理してください。
例
異なるトピックでキーの選択を比較する例です。既存トピックのキーだけを変更する場合は、トピック名を維持してください。
AWS マネージドキー
hcl
resource "aws_sns_topic" "example" {
name = "user-updates-topic"
kms_master_key_id = "alias/aws/sns"
}
AWS マネージドキーで保存メッセージ本文を暗号化します。
カスタマー管理キー
hcl
resource "aws_sns_topic" "example" {
name = "sns_ecnrypted"
kms_master_key_id = "alias/MyAlias"
}
alias/MyAlias を実際に使用するカスタマー管理キーのエイリアスに置き換えてください。キーポリシーと必要な使用権限も準備する必要があります。