0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SESフィードバック通知でSNSトピックを登録できないエラーの原因と解決方法

Posted at

運用中のサービスを新しいAWSアカウントに移行中なのですが、SESのフィードバック通知(Bounce, Complaintなど)でSNSトピックを設定しようとしたら謎のエラーに阻まれました。

An invalid or out-of-range value was supplied for the input parameter.

SNSトピックは“Standard”で作成、リージョンもSESと同じ、SNSトピックのアクセスポリシーにはses.amazonaws.comsns:Publishを許可済み...と漏れなく設定しているつもりだったので、何が問題なのかわかりませんでした。

スクリーンショット 2025-09-11 9.44.56.png

原因

SNSトピックの暗号化に設定しているKMSのキーポリシー不足が原因でした。

暗号化トピックにpublishする主体(今回のSES)には、KMSにkms:GenerateDataKeykms:Decrypt権限が必要とのことです。実際の暗号化/復号処理はSNS側で実行されますが、そのためのKMS API呼び出しをSESがトリガーする形になるためです。

ただ、今回SNSトピックの暗号化に利用したのはAWS管理キーalias/aws/snsだったので、キーポリシーを編集できませんでした...

スクリーンショット 2025-09-11 9.47.44.png

解決策

そのため、今回、以下のポリシーを追加してカスタマーマネージドキー(CMK)sns-ses-dev-1を新規で作成してSNSに設定しました。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowSESToUseKMSKey",
            "Effect": "Allow",
            "Principal": {
                "Service": "ses.amazonaws.com"
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "*"
        }
    ]
}

スクリーンショット 2025-09-11 9.49.16.png

無事にフィードバック通知にSNSトピックを設定できるようになりました。

さいごに

CMKはコストがかかるので、開発環境ならそもそもSNSトピックの暗号化はしなくてもいいかもしれません。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?