Amazon SNS のサブスクリプション解除リンクによる誤解除を防ぐ (新規サブスクリプションの設定時ver.)
はじめに
こんにちは。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に関するお役立ち情報を配信中!
Follow @twitter2025 AWS Community Builder / 2024 Japan AWS All Certifications Engineer
Recommends
こちらもおすすめ
-
AWS Chatbotを使って、Slack通知をカスタマイズする
2024.2.15
-
AWSサービスをTerraformでコード化する:AWS Chatbot編
2024.3.11
Special Topics
注目記事はこちら

データ分析入門
これから始めるBigQuery基礎知識
2024.02.28

AWSの料金が 10 %割引になる!
『AWSの請求代行リセールサービス』
2024.07.16