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
データエンジニアリングとドメイン駆動設計
masuda220
PRO
14
2.7k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
110k
発表と総括 / Presentations and Summary
ks91
PRO
0
210
Power Automateアップデート情報
miyakemito
0
250
Flutter研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
130
Jitera Company Deck
jitera
0
570
AI工学特論: MLOps・継続的評価
asei
10
2.6k
41歳でAWSが好きすぎてITエンジニアになったおっさんの話
yama3133
1
770
なぜ、あなたのAPIは使われないのか? AX時代の設計原則、ガードレール、運用体制
yokawasa
1
230
AI時代におけるテストの基礎の再定義 / Rethinking the Fundamentals of Testing in the AI Era
mineo_matsuya
14
5.7k
AI Native なプロダクト組織の立ち上げ方 : 生産性 100 倍への挑戦
mikesorae
0
1.5k
なぜ、あなたのエージェントは言うことを聞かないのか
segavvy
1
510
Featured
See All Featured
The browser strikes back
jonoalderson
0
1.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
470
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
310
Side Projects
sachag
455
43k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Un-Boring Meetings
codingconduct
0
350
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
420
New Earth Scene 8
popppiees
3
2.4k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.9k
Being A Developer After 40
akosma
91
590k
エンジニアに許された特別な時間の終わり
watany
108
250k
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 おわり 扱いひどくない?