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
amarelo_n24
September 09, 2025
Education
1
160
バケットポリシーの記述を誤りマネコンからS3バケットを操作できなくなりそうになった話
2025/9/10 JAWS-UG朝会 #73 登壇資料
amarelo_n24
September 09, 2025
Tweet
Share
More Decks by amarelo_n24
See All by amarelo_n24
re:Invent初参加者が感じたre:Invent を楽しむために必要なこと
amarelo_n24
0
27
おひとり様Organizations管理者もルートアクセス管理を有効にしよう!
amarelo_n24
1
95
アウトプット再始動2025・つなげるアウトプット2026
amarelo_n24
0
46
AWS re_Invent に全力で参加したくて筋トレを頑張っている話
amarelo_n24
1
120
質のよいアウトプットをできるようになるために~「読む・聞く、まとめる、言葉にする」を読んで~
amarelo_n24
0
360
AWSと共に英語を学ぼう
amarelo_n24
0
210
ANS-C01_2回不合格から合格までの道程
amarelo_n24
1
420
今年のふりかえりと来年目指すこと
amarelo_n24
0
800
ANS-C01を2回不合格になり認定試験受験に対する想い
amarelo_n24
0
910
Other Decks in Education
See All in Education
SJRC 2526
cbtlibrary
0
180
滑空スポーツ講習会2025(実技講習)EMFT学科講習資料/JSA EMFT 2025
jsaseminar
0
180
自己紹介 / who-am-i
yasulab
4
6.2k
Security, Privacy and Trust - Lecture 11 - Web Technologies (1019888BNR)
signer
PRO
0
3.2k
栃木にいても「だいじ」だっぺ〜! 栃木&全国アジャイルコミュニティへの参加・運営の魅力
sasakendayo
1
120
Web Search and SEO - Lecture 10 - Web Technologies (1019888BNR)
signer
PRO
2
3k
学習指導要領と解説に基づく学習内容の構造化の試み / Course of study Commentary LOD JAET 2025
masao
0
120
1125
cbtlibrary
0
160
【ZEPホスト用メタバース校舎操作ガイド】
ainischool
0
160
LotusScript でエージェント情報を出力してみた
harunakano
0
110
IHLヘルスケアリーダーシップ研究会17期説明資料
ihlhealthcareleadership
0
610
アジャイルの知見から新卒研修作り、そして組織作り
pokotyamu
0
140
Featured
See All Featured
Ruling the World: When Life Gets Gamed
codingconduct
0
130
From π to Pie charts
rasagy
0
120
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
560
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Rails Girls Zürich Keynote
gr2m
96
14k
Code Review Best Practice
trishagee
74
19k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
740
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Agile that works and the tools we love
rasmusluckow
331
21k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
The Limits of Empathy - UXLibs8
cassininazir
1
200
Transcript
バケットポリシーの記述を誤り、マネコンから バケットを操作できなくなりそうになった話 2025/9/10 JAWS-UG朝会 #73
自己紹介 藤田 直幸 | アマレロ@コーヒー焙煎人兼エンジニア JAWS-UG 彩の国埼玉支部 運営 X:@amarelo_n24 Facebook
https://www.facebook.com/naoyuki.fujita.37 仕事:所属企業の情シス 好きなAWSサービス:IAM、S3、CloudShell 好きなこと:コーヒー豆の焙煎
今回は、Amazon S3(以下、S3)バケットポリシーの記述で失敗したこと、 気づきがありましたので、その話をします。 話すこと:S3バケットポリシーの設定で起こったことと改善策 話さないこと:バケットポリシー以外のポリシーについて (IAMポリシー、VPCエンドポイントポリシー) なお、本資料に記載の内容は個人の見解です。 はじめに
今回の話は以下のブログを基にしています。 バケットポリシーの記述を誤りマネコンからS3バケットを操作できなくなりそうになった話 https://qiita.com/amarelo_n24/items/225456495d3a896c8004 今回の登壇の元ネタ
1.やろうとしたこと 2.バケットポリシー 3.バケットポリシー適用したら・・・ 4.解決策 5.まとめ アジェンダ
1.やろうとしたこと
VPCエンドポイント経由でEC2からS3へアクセス S3にてVPCエンドポイントを経由した アクセスのみを許可
2.バケットポリシー
特定のVPCエンドポイントを経由した場合にオブジェクトの参照と格納を許可する S3バケットポリシー { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow",
"Principal": "*", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ], "Condition": { "StringEquals": { "aws:sourceVpce": "vpce-xxxxxxxxx" } } }, { "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ], "Condition": { "StringNotEquals": { "aws:sourceVpce": "vpce-xxxxxxxxx" } } } ] }
3.バケットポリシー適用したら・・・
バケットポリシー、編集できない!? 急にアクセス許可が無くなりました!
バケット削除もできないし・・・どうしよう😢 オブジェクトも見えなくなった…
消せないサービスにお金が嵩んでいく不安が頭をよぎる… 課金され続ける・・・(汗)
4.解決策
ルートユーザでログインして取り急ぎバケットポリシーを削除 したら、エラーは解消されました。 ※以下の記事を読んで安心できました。ありがとうございました! アクセス不能になったS3バケットのバケットポリシーを削除する方法 https://dev.classmethod.jp/articles/delete-access-denied-bucket-policy/ ルートユーザで何とかできた!
マネージドコンソールからのアクセスも、特定のVPCエンドポイントを 経由していないため拒否された! エラーが表示された理由 あくまでも指定していたのは、特定のVPC エンドポイント以外のS3操作の明示的な拒 否。 マネコンからのアクセスはこの条件に合致 してしまった。
どうしてこんなポリシーにした?
実は、適用したバケットポリシーは、Amazon Q Developerに聞いて提示され たものでした。「AWSのことを Amazon Q Developer に聞いて出てきた アウトプットだからまぁー大丈夫か」と油断してのか、内容を十分確認して いませんでした…
生成AIのアウトプットを十分確認していなかった
特定のVPCエンドポイント以外のアクセス、または特定のIAMロールにスイッチした ユーザ以外からのアクセスのみ許可するよう書き換えたら、解決!! { "Effect": "Deny", "Principal": "*", "Action": "s3:*",
"Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ], "Condition": { "StringNotLike": { "aws:userId": "XXXXXXXXXXXXXXXXXXX:*" }, "StringNotEquals": { "aws:sourceVpce": "vpce-xxxxxxxxx" } } } ] } 改善後のバケットポリシー IAMロールのID { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ], "Condition": { "StringEquals": { "aws:sourceVpce": "vpce-xxxxxxxxx" } } },
AWS CLI を使います。 aws iam get-role --role-name <ロール名>
実行結果のJSON内に表示される、 "RoleId": "XXXXXXXXXXXXXXXXXXX", がRoleId("aws:userId” に指定する値)です。 ※こちらの記事を参考にさせていただきました。ありがとうございます! S3バケットのアクセス制御でマネコンからは特定ユーザのみ、リソースからはVPCエンドポイント経由のみに限定するS3バケットポ リシーの設定方法 https://dev.classmethod.jp/articles/configure-s3-bucket-policy/ IAMロールIDの調べ方
5.まとめ
・生成AIのアウトプットを設計の参考にするのは良いけど、 十分確認しましょう! ・確認不十分な明示的な拒否を適用すると痛い目に合う。 ・バケットポリシー編集は最悪ルートユーザで何とかなるけど、 ルートユーザに頼らずポリシー設計は慎重に! ・ポリシー設計の重要さ、奥深さを再確認できて良い経験でした! まとめ
ご清聴ありがとうございました!