2016-08-22 66 views
1

努力創建存儲桶策略以列出某些文件類型。具體來說,我想只允許訪問圖像類型。擴展白名單S3資源

我能創造一個黑名單策略,像這樣:

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

白名單未遂#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

按照最小權限原則,決定默認 否認和明確的拒絕總是勝過的允許。例如,如果 IAM策略授予訪問對象的權限,S3存儲桶策略 將拒絕對該對象的訪問,並且沒有S3 ACL,則將拒絕訪問 。同樣,如果沒有方法指定允許,那麼 請求將被默認拒絕。只有在沒有方法指定DENY 且一個或多個方法指定允許時,該請求才允許爲 。

+0

Thanks @helloV - 我沒有應用IAM,但事實證明,我在對象級別分配了「公開閱讀」ACL,這是重寫策略的原因。 – Yarin

相關問題