Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Amazon SNSサブスクリプションの誤解除を防ぐ
Search
y_sakata
July 16, 2025
Technology
420
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Amazon SNSサブスクリプションの誤解除を防ぐ
y_sakata
July 16, 2025
More Decks by y_sakata
See All by y_sakata
Amazon Bedrock Agentsがメンテナンスモードに入る前に持っておきたい視点
y_sakata
0
16
Amazon Bedrock Agentsがメンテナンスモードに入る前に持っておきたい視点
y_sakata
0
9
AWS WAF Top Insightsについて
y_sakata
0
170
「プロジェクトの引き継ぎ」のベストプラクティスを探す旅
y_sakata
0
130
Other Decks in Technology
See All in Technology
どこまでAIに任せるか 〜確率論と決定論の境界決定〜
shukob
0
520
ダッシュボード"開発"について 〜使われるダッシュボードのつくりかた〜
kimichan
0
220
Power Automateアップデート情報
miyakemito
0
250
「守りたい体験」を渡すだけで E2E を生成させられるようになった話
hinac0
2
1.1k
データ活用研修 問いの発見と仮説構築【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
280
AI x 開発生産性を取り巻く予算戦略と投資対効果
i35_267
7
3.4k
CloudWatchから始めるAWS監視
butadora
0
170
AIとハーネスで育てるトランスコンパイラ / 20260722 Yasushi Katayama
shift_evolve
PRO
3
960
AWS環境のセキュリティ不安を解消した企業事例 ~よくある課題と対策を一挙公開~
asanoharuki
0
190
テックカンファレンス三大ステークホルダーの文化人類学 ─ 違いを認め合う関係性作り
bash0c7
2
650
Git 研修【MIXI 26新卒技術研修】#2
mixi_engineers
PRO
1
230
QA・ソフトウェアテスト研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
460
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Making Projects Easy
brettharned
120
6.7k
Site-Speed That Sticks
csswizardry
13
1.3k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
470
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
160
GraphQLとの向き合い方2022年版
quramy
50
15k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Everyday Curiosity
cassininazir
0
260
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
600
Side Projects
sachag
455
43k
[SF Ruby Conf 2025] Rails X
palkan
2
1.2k
Transcript
Amazon SNSサブスクリプションの誤解除を防ぐ 2025.07.16 クラウド⾷堂#3
P2 ⾃⼰紹介 坂⽥ 裕⼆ AWS Community Builder 2025 Japan AWS
Top Engineer 2025 Japan AWS All Certifications Engineer ▪経歴 2021年7⽉- 2023年8⽉ 某CIer MSPセクション(監視‧運⽤) 2023年9⽉- 現在 NHN テコラス株式会社(構築‧運⽤‧プリセールス‧コンサル)
P3 所属会社の紹介 会社名 NHN テコラス株式会社 (英:NHN Techorus Corp.) 代表者 代表取締役社⻑
⽩倉 章照 設⽴ 2007年4⽉ 所在地 本社 〒105-0003 東京都港区⻄新橋三丁⽬1番8号 NHNアトリエ ⼤阪 〒530-0002 ⼤阪府⼤阪市北区曽根崎新地1-13-22 御堂筋フロンティア1F 社員数 157名 ※直接雇⽤社員(2024年10⽉時点) 資本⾦ 21億円 事業内容 ‧データセンター、クラウドの販売 ‧ITインフラのインテグレーション、コンサルティング、運⽤管理 グローバル展開のNHNグループの クラウドMSPリードカンパニー 全世界100か所、従業員5,000名以上 クラウドのトップシェアであるAWSの 最上位 「プレミアティアサービスパートナー」 認定保有 世界中で数万社のパートナーの上位1%未満の 最上位認定企業の1社です。
P4 アジェンダ • Amazon SNS で発⽣しやすいトラブル • 予防策 • 解説/注意点
P5 Amazon SNS で発⽣しやすいトラブル
P6 Amazon SNS で発⽣しやすいトラブル Amazon SNS の使⽤例) • CWの監視 •
AWS Backupの成否確認 SNSトピックに、送付先のメールアドレスを サブスクリプションとして紐づけておく。
P7 Amazon SNS で発⽣しやすいトラブル Amazon SNSから⾶ばされるメールには こんな感じの「購読解除するならここをクリックしてくれ」ってリンクが付いてくる。
P8 Amazon SNS で発⽣しやすいトラブル 例えば... アラートメールの宛先として メーリングリスト(
[email protected]
)をエンドポイントとした サブスクリプションを設定している場合 何このURL? クリックしてみよ!
↑メーリス内の⼈
P9 Amazon SNS で発⽣しやすいトラブル
P10 Amazon SNS で発⽣しやすいトラブル 購読解除 = SNSサブスクリプションが削除されるため 以後そのメールアドレス宛にメールが配信されなくなる。 なんか最近 アラート届かないね
不思議だね?
P11 Amazon SNS で発⽣しやすいトラブル • 法令遵守(特定電⼦メール法 etc…) • スパムメール扱いを防ぐ •
迷惑フォルダ⾏きを防ぐ という意味で⼤変ありがたみのあるリンクですが、本LTでは⾃爆スイッチと同等に扱います。 =
P12 予防策
P13 予防策 まずは普通に、 既存のトピックに紐づける形で サブスクリプションを作成。
P14 予防策 宛先にこのような確認メールが届くので ここのリンクをクリックせずに、右クリ → URLをコピー して渡してもらう。
P15 予防策 もらったリンクを使って マネジメントコンソールから 確認を押すと…
P16 予防策 サブスクリプションが[確認済み]のステータスに! (通常のリンククリック確認でも同じですが、違うのはここから先)
P17 予防策 この⼿順ならば、例えこのリンク(⾃爆スイッチ)を誤ってクリックしても
P18 予防策 このように「AWSの認証情報を使え」と⾔われ、リクエストがブロックされる = サブスクリプションが爆発しない!
P19 予防策 ‒ 受け⼿側が承認リンクを踏んだ場合 先程までの⼿順中で、受け⼿側がここの承認リンクを踏んでしまった場合 その時点でステータスは確認済みとなり、⾃爆スイッチが有効になってしまう。
P20 予防策 ‒ 受け⼿側が承認リンクを踏んだ場合 →その場合でも、AWS CLIによる操作で⾃爆スイッチが無効化されるよう上書き可能。 ▪承認リンクの中⾝ https://sns.ap-northeast-1.amazonaws.com/confirmation.html?TopicArn=arn:aws:sns:ap-northeast-1: xxxxxxxxxxxxx:xxxx-xxxxt&Token={ここのトークンをコピーする}&
[email protected]
▪CLIで打つコマンド
aws sns confirm-subscription --token {上でコピーしたトークン} --topic-arn {トピックARN} --authenticate-on-unsubscribe true
P21 予防策 要するに… AWSエンジニアとメールの受け⼿側が『この⽇にこういう設定しようぜ』って決めて 当⽇にURLもしくはトークンの受け渡しを⾏えばOKです。 これでもう 「なんかメールしばらく届いてないぞ…?」 「SNSサブスクリプションが無い!誰かが購読解除リンクを押したっぽい?」 という悲しいことは起こりません。
P22 解説 / 注意点
P23 解説 解説パートでは 「なんで今回の⼿順で⾃爆スイッチを無効化できたのか」を喋ります。
P24 解説 ⾃爆スイッチになっている 押しても何も起きない 購読解除リンクが、上記のどっちになってるかは 該当SNSのAuthenticateOnUnsubscribe の値がTrue/Falseどちらか で決まる。 ▪Amazon Simple
Notification Service ‒ ConfirmSubscription https://docs.aws.amazon.com/ja_jp/sns/latest/api/API_ConfirmSubscription.html
P25 解説 AWSの認証認可を基に、署名付きで許可した ただリンクを踏むだけで承認した or True/Falseの分岐点はこれ
P26 解説 マネコン/CLI (認証付き)で 署名を添えてサブスク許可 例えば、このLTの対策をした場合(True) リンクを踏むだけで サブスク解除しようとする 何を気軽に解除しようとしてんねん! 許可する時はAWSの認証情報まで付けて
厳重にやっとったやないの! ちゃんとAWSの認証情報持ってきてよ!
P27 解説 リンクを踏むだけで サブスク(購読)を許可する このLTの対策をしていない場合(False) リンクを踏むだけで サブスク解除しようとする 購読許可するときは署名も認可も無かったし まあ、いいんじゃない? もうメールは送らないでおくね。
P28 解説 これらを直接管理している AuthenticateOnUnsubscribe は • マネジメントコンソール • AWS CLI
のいずれからも確認することが出来ない。(どうやっても⾒られない。) ただし、実質的には ConfirmationWasAuthenticated という パラメータと同期しているので、それを⾒ることで確認可能。
P29 図式としてはこんな感じ AuthenticateOnUnsubscribe (配信停⽌時にAWS認証を必要とする) ConfirmationWasAuthenticated (確認時に認証を使う) True True False False
P30 解説 ↓ 何の対策も取ってないサブスクリプションをget-subscription-attributesで⾒ると ConfirmationWasAuthenticatedがFalseになっている。 先程の上書き⽤のAWS CLIを実⾏すると、ここがTrueになる。 $ aws sns
confirm-subscription --token {リンク記載のトークン} --topic-arn {トピックARN} --authenticate-on-unsubscribe true
P31 注意点① 昔に作ったSNS サブスクリプションも、CLIで上書きして対策済みにしちゃおう! → 残念ながら、多分無理です。 仮に、昔の確認メールからトークンを引っ張り出せても そのトークンが⽣きている必要があります。
昔に作ったサブスクリプションに、本LTの対策を施すならば 今あるサブスクリプションは⼀度消して、作り直す必要があります。
P32 注意点② 今あるサブスクリプションを消して、対策済みで作り直そう! → 注意点として、サブスクリプションフィルターの有無は気を付けてください。 何も考えずにサブスクリプションを消してしまうと、フィルターごと消えます。 サブスクリプションを作り直した後に 「えっ
以前のはフィルター付いてたっぽい!?どんなのだ!?」 って慌てる事になります。
P33 おわり 扱いひどくない?