AWS S3へのIAMポリシーとバケットポリシーのまとめ表

目次

S3へのIAMポリシーとバケットポリシーのまとめ表

No. IAMポリシー S3バケット
ポリシー
判断ロジック 結果
Allow Allow 両者一致 アクセス許可
Allow Deny 明示的な拒否が優先 アクセス拒否
Allow バケットポリシー無 明示的な許可あり アクセス許可
Deny Allow 明示的な拒否が優先 アクセス拒否
Deny Deny 両者一致 アクセス拒否
Deny バケットポリシー無 明示的な拒否が優先 アクセス拒否
IAMポリシー無/
匿名アクセス
Allow 明示的な許可あり アクセス許可
IAMポリシー無/
匿名アクセス
Deny 明示的な拒否が優先 アクセス拒否
IAMポリシー無/
匿名アクセス
バケットポリシー無 明示的に許可がないと拒否 アクセス拒否

No.7:匿名アクセスが可能になるのは、明示的にパブリク設定がされている時のみ

匿名アクセス:認証情報(AWSアカウント・IAMユーザー・ロールなど)を一切提示せずにAWSリソースへアクセスすること

 

IAMポリシーの仕様

  • デフォルト拒否: 何も許可されていない状態からスタート
  • 明示的な許可が必要: Allowがないと操作不可
  • 明示的な拒否が最優先: どんなAllowがあっても、Denyがあれば拒否される

 

S3バケットポリシーの評価方法

上から順に評価するわけではありません。
すべてのステートメントを評価します。Denyがあれば拒否されます。

 

EC2からS3へのアクセスとアカウント内外の関係

EC2からS3へアクセスする場合で

同一のアカウント内でのアクセスの場合 IAMポリシーまたはS3バケットポリシーのどちらかで許可されていればアクセスできます(※)。
基本は、IAMポリシーに操作の許可を与えバケットポリシーの許可は不要です。
異なるアカウントでのアクセスの場合 IAMポリシーとS3バケットポリシーの両方で許可されている必要があります。

※S3バケットポリシーに記載する場合、S3バケットポリシーにアクセスするIAMロールの記載は必要です。

許可されていない場合でEC2からS3へaws lsコマンドのでアクセスした場合以下のアクセスできないというメッセージが出ます。

An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied

関連の記事

AWS IAMポリシーとS3バケットポリシーの関係

△上に戻る