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
S3は問答無用で非公開!!
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
ryoAccount
November 26, 2025
Technology
25
0
Share
S3は問答無用で非公開!!
Security.any #07 がんばったセキュリティLT の発表スライドです。
https://security-any.connpass.com/event/368802/
ryoAccount
November 26, 2025
More Decks by ryoAccount
See All by ryoAccount
そこにAIはあるか?
ryoaccount
0
45
最大のアウトプット術は問題を作ること
ryoaccount
0
380
Code Reliability
ryoaccount
0
15
XSS?なんですかそれ?
ryoaccount
0
68
0から始めるセキュリティ
ryoaccount
0
130
エンジニアが考えるUI/UX
ryoaccount
0
20
Other Decks in Technology
See All in Technology
TSKaigi 2026 - 型プラグインシステムの実装に使われるテクニック
teamlab
PRO
2
420
Copilot CLI・IDE・Web・スマホで途切れない開発フローを目指して / One Copilot flow - CLI IDE Web Mobile
aeonpeople
1
1k
Amazon Bedrock 経由の Claude Cowork を試してみよう・MCP にも繋いでみよう
sugimomoto
0
170
GitHub Copilot のこれまでとこれから: From Copilot to Collaborative Agents
yuriemori
1
180
サプライチェーン攻撃への備えについて考えている #湘なんか
stefafafan
3
2.4k
checker.tsにチキンレースを仕掛けてみた:型エラー(TS2589)が発生する境界線を求めて
hal_spidernight
1
200
A Harness for Behaviour: how to get AI to generate code that does what we intend, or "TDD in the age of AI"
xpmatteo
0
420
AIのために、AIを使った、Effect-TSからの脱却 〜テストを活用した安全なリファクタリングの進め方〜
bitkey
PRO
1
560
最新技術を"今は選ばない"という技術選定
leveragestech
PRO
0
410
データ分析基盤の信頼を支える視点と設計
yuki_saito
1
650
Loadbalancing exporter internals
ymotongpoo
1
130
脅威をエンジニアリングの糧にして:恐怖を乗り越えた先にあったもの / Turn threats into fuel for engineering: what lay beyond overcoming fear
nrslib
1
270
Featured
See All Featured
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
Marketing to machines
jonoalderson
1
5.3k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
290
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
270
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Building the Perfect Custom Keyboard
takai
2
770
Building Adaptive Systems
keathley
44
3k
RailsConf 2023
tenderlove
30
1.4k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.5k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
310
Transcript
Date Your Footer Here 1 S3は問答無用で非公開!! Keep S3 Private !!
Security.any #07 がんばったセキュリティLT 2025.11.25 RYO
自己紹介 • 某人材系Webサービスを展開する企業にて、主にイン フラ(AWS)のセキュリティ対策や脆弱性管理を1人で従 事 • どうすればDevSecOpsを組織に浸透させられるか日々 悩み中 • CTFとか社内でやってみたり...
• CISSPと英語勉強中... 2 RYO
今日話すこと Today’s Topic
Date Your Footer Here 4 今日話すこと
Amazon S3 ? Amazon Simple Storage Service (Amazon S3) は、業界をリードするスケーラ
ビリティ、データ可用性、セキュリティ、およびパフォーマンスを提供するオ ブジェクトストレージサービスです。 あらゆる規模や業界のお客様が、Amazon S3 を使用して、データレイク、 ウェブサイト、モバイルアプリケーション、バックアップおよび復元、アーカ イブ、エンタープライズアプリケーション、IoT デバイス、ビッグデータ分析な ど、広範なユースケースのデータを容量にかかわらず、保存して保護する ことができます。 出典: ユーザガイド Amazon S3 とは
Amazon S3 ? Amazon Simple Storage Service (Amazon S3) は、業界をリードするスケーラ
ビリティ、データ可用性、セキュリティ、およびパフォーマンスを提供するオ ブジェクトストレージサービスです。 あらゆる規模や業界のお客様が、Amazon S3 を使用して、データレイク、 ウェブサイト、モバイルアプリケーション、バックアップおよび復元、アーカ イブ、エンタープライズアプリケーション、IoT デバイス、ビッグデータ分析な ど、広範なユースケースのデータを容量にかかわらず、保存して保護する ことができます。 出典: ユーザガイド Amazon S3 とは Google Drive iCloud DropBox みたいなもんか
伝えたいこと I want to say … 7
伝えたいこと • ブロックパブリックアクセス設定をONにせよ • バケットポリシーはAllowステートメントだけで構成せよ
伝えたいこと • ブロックパブリックアクセス設定をONにせよ • バケットポリシーはAllowステートメントだけで構成せよ ブロックパブリック アクセス設定?
ブロックパブリックアクセス設定とは? AWS S3バケットやオブジェクトへの意図しない公開を防ぐためのセキュリ ティ機能です これを有効にすると、パブリックアクセスを許可するルールが設定されてい ても、強制的にそのルールを遮断できます 2023/04から新規作成されるS3バケットはブロックパブリックアクセス設定 がデフォルトで ONとなった なので、基本的にはONにしておくのが推奨(AWS公式も推奨)
(ちなみに..)公開したい場合は? Webサイトに掲載する画像や動画などの公開する前提のファイルを格納 する場合、S3バケットを公開してもよい...?🤔
(ちなみに..)公開したい場合は? Webサイトに掲載する画像や動画などの公開する前提のファイルを格納 する場合、S3バケットを公開してもよい...?🤔 答えは「No」で、WAFとCloudFront(CDN)をS3バケットの前に配置するのが 安全。 WAF ・DDoS対策 ・悪意のあるアクセスのブロック CloudFront ・レスポンス(応答速度)の改善
・データ転送量の抑制 → コスト削減
伝えたいこと • ブロックパブリックアクセス設定をONにせよ • バケットポリシーはAllowステートメントだけで構成せよ バケット ポリシー?
バケットポリシーとは? S3バケットに対するアクセスルールを定義する設定ファイルです。 「誰が」「どんな操作を」「どんな条件で」実行できるかをJSON形式で書きま す。 アクセスできる条件(Allow)とアクセスできない条件(Deny)を記載できる が、基本はAllowのみで構成することを推奨します。 理由はアクセス制御の単純化とDenyは強力過ぎる場合があるため。
Denyは誰もアクセスできない原因に... アクセスできない条件(Deny)は設定を間違えると、S3バケットの所有者で ある自分自身ですらアクセスできなくなる。 { "Effect": "Deny", "Principal": "*", "Action": "s3:*",
"Resource": [ "arn:aws:s3:::example-bucket","arn:aws:s3:::example-bucket/*" ], "Condition": { "StringNotLike": { "aws:userId": ["arn:aws:iam::123456789012:role/MyRole"] } } } 設定を間違えたバケットポリシーの例 (どこを間違えているかわかりますか?)
Denyは誰もアクセスできない原因に... アクセスできない条件(Deny)は設定を間違えると、S3バケットの所有者で ある自分自身ですらアクセスできなくなる。 { "Effect": "Deny", "Principal": "*", "Action": "s3:*",
"Resource": [ "arn:aws:s3:::example-bucket","arn:aws:s3:::example-bucket/*" ], "Condition": { "StringNotLike": { "aws:userId": ["arn:aws:iam::123456789012:role/MyRole"] } } } 内部的な一意のID(例:AROAXO2RZRXXXXXX:*)を指 定すべきなのに、ARNを設定している。 結果として、誰もアクセスできなくなる可能性がある。
今年がんばった こと Thank you for your hard work
今年がんばったこと 18 公開されてしまっているS3バケットに ブロックパブリックアクセス設定をONにする
案外、公開されがち? 19 • 新規作成されるS3バケットがデフォルトでブロックパブリックアクセス 設定がONとなったのは、2023/04から • それ以前から開発されているシステムでは案外、公開された状態で 運用してしまっている(可能性がある)😨
なぜ、がんばる羽目になったか? • 既存のアクセス経路が不透明 • 誰が・いつ・どこから・どのオブジェクトをどの方法でアクセスしているか完全 に把握するのはそこそこ難しい • 残念ながらS3サーバアクセスログを取得していなかった • 各所に調整が必要
• アプリケーションだけでなく、他部署・協力会社・利用しているSaaSなどいろい ろなところからパブリックアクセスしていた • 非公開にするには各所に影響があり、説明して対応してもらう必要があった • アクセス制御の知識が必要 • Amazon Simple Storage Serviceという名前の割に、IAMポリシー・バケットポリ シー・ACL・所有権などアクセスを制御する仕組みが複雑
苦労したこと It’s too difficult … 21
誰がいつアクセスしているかわからない • 状況 • S3バケットにはDBのテーブル定義書が保管されている • 開発者に聞いても業務で全く使ってないらしい... • じゃあ不要か聞いたらわからないと言われ... •
対応 • CloudTrail でアクセス履歴を確認する • 誰が、いつ、どのIPから、どのオブジェクトにアクセスしたか? • 関係者を調べる • 開発者以外でテーブル定義書を必要とする人は? • 結局、データアナリストの分析のための資料としてごく稀に参照してい たことがわかった • CloudFrontを立てて、そちらからアクセスするように変更 社内事情に関する内容のため非公開 <(_ _)>
• 状況 • S3バケットにはDBのテーブル定義書が保管されている • 開発者に聞いても業務で全く使ってないらしい... • じゃあ不要か聞いたらわからないと言われ... • 対応
• CloudTrail でアクセス履歴を確認する • 誰が、いつ、どのIPから、どのオブジェクトにアクセスしたか? • 関係者を調べる • 開発者以外でテーブル定義書を必要とする人は? • 結局、データアナリストの分析のための資料としてごく稀に参照してい たことがわかった • CloudFrontを立てて、そちらからアクセスするように変更 誰がいつアクセスしているかわからない 社内事情に関する内容のため非公開 <(_ _)> ADRを書くとか IaCにコメントを残 すとか 用途を記す習慣が あればいいのに...
業務に影響するから無理と言われる • 状況 • S3バケットにはアプリケーションだけでなく、社内の別部署や外 部の協力会社からもアクセスがある • 開発者にS3バケットを非公開にできないか相談したら、業務影響 が大きいから無理と言われる... •
対応 • 非公開にする必要性を訴える • 発生するリスクをしっかり伝えて、やる意義・やる価値の認識を合わ せる • 具体的な対応手順を伝える • 改善後のAWSの構成図を作ったり、IaCを代わりに実装したり、開発者 の手間をできるだけ減らす 社内事情に関する内容のため非公開 <(_ _)>
• 状況 • S3バケットにはアプリケーションだけでなく、社内の別部署や外 部の協力会社からもアクセスがある • 開発者にS3バケットを非公開にできないか相談したら、業務影響 が大きいから無理と言われる... • 対応
• 非公開にする必要性を訴える • 発生するリスクをしっかり伝えて、やる意義・やる価値の認識を合わ せる • 具体的な対応手順を伝える • 改善後のAWSの構成図を作ったり、IaCを代わりに実装したり、開発者 の手間をできるだけ減らす 業務に影響するから無理と言われる 社内事情に関する内容のため非公開 <(_ _)> 業務に影響するな ら尚更、公開した らダメでは...?
アクセス制御の理解が難しい 突然ですが、クイズです。 次の状況でBさんはファイルにアクセスできるか?できないか? • AさんがS3バケットにファイルをアップロードします • Bさんがファイルにアクセスを試みます • BさんはS3オブジェクトへのアクセス権(s3:GetObject)を持っています •
バケットポリシーでは誰からのアクセスも許可(Allow)しています • オブジェクト所有者はオブジェクトライターであるAさんです • ACLはオブジェクト所有者(AWSアカウント)に読み取り権限が与えられています Aさん Bさん GetObject
正解:ファイルにアクセスできない 解説 Bさんの権限(IAMロール)とバケットポリシーではアクセスが許可されている しかし、オブジェクトの所有者である Aさんが、オブジェクトレベルでアクセス許可を ACLで付与し ていない場合、 Bさんは AccessDenied エラーになる
バケットポリシーと ACLの両方で許可しなければアクセスできない ややこしいので ACLは最初から無効にしておくとよい( AWSもACLを非推奨としている) オブジェクト所有者を「常にバケット所有者」にすれば ACLは無効にできる Aさん Bさん GetObject
アクセス制御の理解が難しい ver2 もう1問、クイズです。 次の状況でBさんはファイルにアクセスできるか?できないか? • AさんがS3バケットにファイルをアップロードします • Bさんがファイルにアクセスを試みます • BさんはS3バケットへのアクセス権(s3:GetObject)を持っています
• バケットポリシーでは社内IP以外からのアクセスを拒否(Deny)します • Bさんは社内にいます • ACLは無効にしています Aさん Bさん GetObject
正解:ファイルにアクセスできない 解説 社内IP以外からのアクセスは拒否(Deny)しているからと言って、社内IPからのアクセスが 許可(Allow)されるわけではない アクセスするには明示的なBさんへの許可(Allow)の条件が記載されている必要があり、 それが無ければBさんは AccessDenied エラーになる バケットポリシーではAllowステートメントのみで構成した方がシンプル 許可(Allow)される条件に該当しない
= 拒否(Deny)される、という暗黙的な拒否が成立する Aさん Bさん GetObject
まとめ Summary
まとめ • ブロックパブリックアクセス設定は最初から ONの状態でS3バケット を利用開始すべし • 運用が始まったら誰がいつアクセスしているか調査が面倒 • 後でONにするのはそこそこ手間がかかる •
誤って公開されないのでセキュリティ的にも安心 • アクセス権限管理はシンプルにすべし • バケットポリシーは極力、Allowステートメントで構成する • オブジェクト所有者を「バケット所有者」に固定しておくとACLを無効にできるの でよい
ご清聴ありがとう ございました Thank you for your attention !! Date Your
Footer Here 32
www.PresentationGO.com The free PowerPoint and Google Slides template library Designed
with by