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
GoでCコンパイラを作った話
repunit
0
150
キャリアLT会#3
beli68
2
240
全社でのソフトウェアサプライチェーン攻撃対策をやってみた with Takumi Guard
z63d
0
270
「守りたい体験」を渡すだけで E2E を生成させられるようになった話
hinac0
2
1k
Webアプリ認証の全体像 / The Big Picture of Web App Authentication
kitano_yuichi
1
420
アップデートで何が変わった?デモで学んで使いこなすIBM Bob2.0
muehara
0
230
インシデント事例と パッケージの全量解析に学ぶ ソフトウェアサプライチェーンの守り方 / supply-chain-attack-defense
flatt_security
0
890
プロダクト開発組織の現在地(Ver.2026/07) / product-organization
kaonavi
0
400
Devsumi 2026 Summer 人もAIも使える共通基盤を事業の加速装置にする~デザインシステム運用に学ぶ組織レバレッジ~ 渡辺 凌央
legalontechnologies
PRO
1
280
AI時代こそ、スケールしないことをしよう -「作る人」から「なぜ作るか」を考える人へ / Do Things That Don't Scale in the AI Era — From How to Why
kaminashi
1
100
探索・可視化・自動化を一本化 Amazon Quickでデータ活用スピードを上げる方法
koheiyoshikawa
0
170
OPENLOGI Company Profile for engineer
hr01
1
74k
Featured
See All Featured
The browser strikes back
jonoalderson
0
1.4k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
200
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
350
Navigating Weather and Climate Data
rabernat
0
400
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
310
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
220
My Coaching Mixtape
mlcsv
0
170
Balancing Empowerment & Direction
lara
6
1.2k
Optimizing for Happiness
mojombo
378
71k
Exploring anti-patterns in Rails
aemeredith
3
450
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
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 おわり 扱いひどくない?