実現したいこと
開発者と運用者でS3バケットのアクセス範囲を制御したい。
現在の状況
一つのAWSアカウント内で開発環境・検証環境・本番環境を構築している。本来であれば環境ごとにアカウントを切り分けることが推奨ですが、コストや管理の面で会社としては同じアカウント内で構築する方針です。
ユーザーの運用方法はIAM Identity Centerを利用して許可セットを付与しています。運用者はAdminister Accessで開発者はDeveloperです。
Developerの許可セットにはポリシーでAmazonS3FullAccessやdynamoDBFullAccessなどをアタッチしています。
S3バケットはdev.stg.prodと分けており、prodのバケットにはタグで「stage:prod」をつけています。
実現したいこと
Developerでの許可セットでログインした場合、S3バケットのdev.stgはアクセスできるけど、prodにはアクセスできないようにしたい。
発生している問題・分からないこと
行ったこと
メンバーアカウントにIAMポリシー「DenyProductionAccessPolicy」を作成。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/stage": "prod" } } } ] }
Developerの許可セットにカスタマーマネージドポリシー「DenyProductionAccessPolicy」をアタッチ。
S3バケットやdynamoDBテーブル等にタグ「stage: prod」を付与。
結果
dynamoDBのテーブルはdev.stgはアクセスでき、prodはアクセス拒否され期待通りでした。
しかしS3バケットだけはprodのバケットでもアクセスできてしまいます。
S3バケットのアクセス制御をする方法はありますでしょうか?
IAMポリシーで設定できればよいですが、難しい場合はそれぞれのバケットのバケットポリシーでの設定も考えています。
該当のソースコード
特になし
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
AIに聞いていろいろ試してもうまくいきませんでした。
補足
特になし

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2025/04/24 01:30