IAMグループとの重要な関係を図解で完全理解
S3バケットポリシーを「オフィスビルのセキュリティゲート」に例えて説明します
「開発チーム」グループに所属するメンバーたち
😢 グループ名で許可しても、メンバーは誰も入れない!
個人のAWSアカウントユーザー。社員証を持った個人のようなもの。
一時的に引き受けられる役割。「システム管理者」という腕章のようなもの。
アカウント全体を許可。取引先企業全体に許可を出すようなもの。
CloudFrontやLambdaなど。ビル管理システムのようなもの。
誰でもアクセス可能に。一般公開の受付ロビーのようなもの。
バケットポリシーでは使えません!
グループはIAMポリシー内でのみ使用可能。
| 項目 | バケットポリシー | IAMポリシー |
|---|---|---|
| 付与先 | S3バケット(リソース) | ユーザー/グループ/ロール |
| IAMユーザー指定 | ✅ | ✅ |
| IAMロール指定 | ✅ | ✅ |
| IAMグループ指定 | ❌ | ✅ |
| クロスアカウント | ✅ 必須 | ❌ 単独では不可 |
| 匿名アクセス | ✅ | ❌ |
| 管理場所 | S3バケット | IAMコンソール |
複数ユーザーへの一括許可が必要な場合、共通のIAMロールを作成し、そのロールをPrincipalに指定します。メンバー変更時もロールの設定変更不要。
Principalに「*」を使う場合は、Conditionで接続元IPやVPCエンドポイントを制限するなど、追加の制約を必ず設定しましょう。
同じAWSアカウント内のアクセス制御は、バケットポリシーよりIAMポリシー(グループ経由)の方が管理しやすいケースが多いです。
他のAWSアカウントからのアクセスを許可する場合は、バケットポリシーでのPrincipal指定が必要です。IAMポリシーだけでは不可。
Created by SSuzuki1063
AWS SAP Learning Resources