Upgrade to Pro — share decks privately, control downloads, hide ads and more …

バケットポリシーの記述を誤りマネコンからS3バケットを操作できなくなりそうになった話

Avatar for amarelo_n24 amarelo_n24
September 09, 2025

 バケットポリシーの記述を誤りマネコンからS3バケットを操作できなくなりそうになった話

2025/9/10 JAWS-UG朝会 #73 登壇資料

Avatar for amarelo_n24

amarelo_n24

September 09, 2025
Tweet

More Decks by amarelo_n24

Other Decks in Education

Transcript

  1. 自己紹介
 藤田 直幸 | アマレロ@コーヒー焙煎人兼エンジニア
 JAWS-UG 彩の国埼玉支部 運営
 X:@amarelo_n24
 Facebook

    https://www.facebook.com/naoyuki.fujita.37
 
 仕事:所属企業の情シス
 好きなAWSサービス:IAM、S3、CloudShell
 好きなこと:コーヒー豆の焙煎

  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. 特定の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"
 }
 }
 },

  4. 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の調べ方