2016-08-22 9 views
1

特定のファイルタイプをホワイトリストにするためのバケットポリシーを作成するのに苦労しています。具体的には、画像タイプのみにアクセス可能にしたいと考えています。ホワイトリストS3のリソースを拡張子で表示

そうように私はブラックリストポリシーを作成することができました:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Action": [ 
       "s3:GetObject" 
      ], 
      "Effect": "Deny", 
      "Resource": [ 
       "arn:aws:s3:::[my_bucket]/*.exe" 
      ], 
      "Principal": { 
       "AWS": "*" 
      } 
     } 
    ] 
} 

WHITELIST試行#1:

問題:これはすべてのタイプを可能にする、ちょうどそれら

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Action": [ 
       "s3:GetObject" 
      ], 
      "Effect": "Allow", 
      "Resource": [ 
       "arn:aws:s3:::[my_bucket]/*.jpg", 
     "arn:aws:s3:::[my_bucket]/*.png", 
     "arn:aws:s3:::[my_bucket]/*.gif", 
      ], 
      "Principal": { 
       "AWS": "*" 
      } 
     } 
    ] 
} 
を記載されていません

WHITELIST ATTEMPT#2:

問題:これは、すべてのファイル

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Action": [ 
     "s3:GetObject" 
     ], 
     "Effect": "Deny", 
     "Resource": [ 
     "arn:aws:s3:::[my_bucket]/*" 
     ], 
     "Principal": { 
     "AWS": "*" 
     } 
    }, 
     { 
      "Action": [ 
       "s3:GetObject" 
      ], 
      "Effect": "Allow", 
      "Resource": [ 
       "arn:aws:s3:::[my_bucket]/*.jpg", 
     "arn:aws:s3:::[my_bucket]/*.png", 
     "arn:aws:s3:::[my_bucket]/*.gif", 
      ], 
      "Principal": { 
       "AWS": "*" 
      } 
     } 
    ] 
} 
+1

** **一致する拒否は常に拒否します。許可は拒否を覆すことはできません。 –

答えて

2

あなたのホワイトリストバケットポリシー#1が正しいことを否定してしまいます。すべてのファイルタイプが許可されている理由がIAMポリシーである可能性があるため、すべてのファイルタイプがユーザにを許可します。ユーザーに添付IAMポリシーは最小権限の原則に従いS3FullAccess

を持っていないことを確認し、意思決定の拒否するようにデフォルト と明示は常に認め切り札DENY。たとえば、 IAMポリシーでオブジェクトへのアクセスが許可されている場合、S3バケットポリシー はそのオブジェクトへのアクセスを拒否し、S3 ACLは存在しません。 は拒否されます。同様に、メソッドがALLOWを指定しない場合、 要求はデフォルトで拒否されます。どのメソッドもDENY を指定せず、1つ以上のメソッドがALLOWを指定する場合にのみ、要求は になります。

+0

ありがとう@helloV - IAMは適用されていませんでしたが、ポリシーを上書きしていたオブジェクトレベルで 'public-read' ACLを割り当てていました。 – Yarin

関連する問題