メッセージ暗号化のない SNS トピック

SNS に保存するメッセージ本文を KMS で暗号化し、発行権限と配信経路も保護してください。

説明

SNS トピックは通知や運用イベントを扱います。サーバー側の暗号化は、受信したメッセージ本文を KMS キーで暗号化して保存し、配信時に復号します。暗号化を無効にしたトピックには、この保存データの保護がありません。

この機能は、トピック名、メッセージの件名や属性などのメタデータを暗号化しません。機密情報をメタデータに含めず、発行・サブスクリプションの権限も別途制限してください。

想定される影響

暗号化されていないメッセージでは保存データの漏えいに対する保護が不足し、組織の暗号化要件を満たせない場合があります。キー権限の誤りによって、正規の発行や配信に支障が出る可能性もあります。

対処方法

  • kms_master_key_id に対称 KMS キーを指定し、発行元や連携サービスに必要なキー権限を設定してください。
  • 暗号化されたトピックへのリクエストには HTTPS と Signature Version 4 を使用し、変更後に実際の発行から配信までの流れをテストしてください。
  • 暗号化は有効化後に発行されたメッセージに適用され、既存の未配信メッセージには遡って適用されません。配信先の保存時暗号化とアクセスポリシーも別途確認してください。

例

トピック設定の抜粋です。alias/MyAlias は同じリージョンの実際のキーエイリアスに置き換え、必要な権限を用意してください。

変更前

hcl
resource "aws_sns_topic" "user_updates" {
  name              = "user-updates-topic"
  kms_master_key_id = ""
}

保存するメッセージの暗号化キーが空です。

変更後

hcl
resource "aws_sns_topic" "user_updates" {
  name              = "user-updates-topic"
  kms_master_key_id = "alias/MyAlias"
}

指定したキーで新しいメッセージ本文を暗号化します。この設定だけでメタデータや配信先のデータもすべて保護されるわけではありません。

参考資料