Amazon SNS のサブスクリプション解除リンクによる誤解除を防ぐ (新規サブスクリプションの設定時ver.)

AWS

2025.5.13

Topics

はじめに

こんにちは。YUJIです。

みなさん、Amazon SNS 使ってますでしょうか。
「うちはEC2とRDSだけだから使ってないなあ。」という方も、実はAmazon CloudWatchの通知メールや、AWS Backupの通知メールなどで、開発者やインフラベンダーが裏でAmazon SNSによる通知を実装していたなんて場合もあると思います。

すごく便利なメッセージ配信管理サービスではありますが
メールにおいては、付随するこのUnsubscribeリンクを誤って踏んでしまうケースが多いです。

特に予防策を行わないまま、このリンクを踏んでしまうと
通知を受け取るための宛先情報(メールアドレスなど)を紐づけている「サブスクリプション(購読設定)」が削除されてしまい、Amazon SNSからのメールが届かなくなってしまいます。

こういった事故を防ぐために、新規で設定するAmazon SNS サブスクリプションに対して
メール添付のUnsubscribeリンクを無効化する手順を紹介します。

実際の作業

まず、トピックを作成してみましょう。

トピックが作成できました。

次に、宛先情報を管理するサブスクリプションを作成します。

サブスクリプションを作成すると、メールアドレス宛に検証メールが届きます。
普通ならばここでリンクをクリックすることで承認しますが、今回は開かずにリンクのアドレスだけコピーします。

マネジメントコンソールに戻り、該当のサブスクリプションを選択し
サブスクリプションの確認をクリックすると

先ほどコピーしたURLを入力する画面が出るため、入力しサブスクリプションの確認を押すと

無事に確認済みのステータスになりました。
これで該当のメールアドレス宛にAmazon SNS経由でメールを届けることができます。

(※補足※)
メール文中のリンクをクリックした場合と異なり、マネジメントコンソール経由で確認処理を行うことで
「AWS内の認証情報のもとで、Amazon SNSの購読確認が行われた」という扱いになり、SNSの購読解除にもAWS認証を強制するフラグがonになります。

AWS 公式ドキュメント:ConfirmSubscription – Amazon Simple Notification Service
https://docs.aws.amazon.com/ja_jp/sns/latest/api/API_ConfirmSubscription.html

これにより、メールのリンク経由のサブスクリプション解除を防ぐことができます。
ここは別記事でも改めて解説予定ですが、一旦この記事では「メールのリンクを間違って踏んでも解除されなければオッケー」という状態を目標とします。
(※補足ここまで※)

そして、本記事の主題、「Unsubscribeリンクが無効化されているか」を確認します。

Subscription not removed と表示されました。
これで、リンクをクリックしても、サブスクリプションが解除されない という状態を実現できていることを確認できました。

おわりに

この記事では、Amazon SNSのUnsubscribeリンクを無効化する所までを行いました。
「リンクを誤って踏んでしまっても安心」という状態は、この記事のみで実現可能ではありますが
より詳細な内容(裏側でどうなっているか)が気になる方向けに、CLIベースの記事も近々執筆しようかと思います。

最後まで読んでいただき、ありがとうございました。

テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!

YUJI

2025 AWS Community Builder / 2024 Japan AWS All Certifications Engineer

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら