2016-03-01 140 views
0

嗨我試圖編寫訪問我的存儲桶的權限策略。s3存儲桶策略添加異常

我想拒絕訪問特定的用戶代理並允許訪問所有其他用戶代理。根據以下政策,訪問權限被拒絕。

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "Stmt1456658595000", 
      "Effect": "Deny", 
      "Action": [ 
       "s3:*" 
      ], 
      "Condition": { 
       "StringLike": { 
        "aws:UserAgent": "NSPlayer" 
       } 
      }, 
      "Resource": [ 
       "arn:aws:s3:::bucket/" 
      ] 
     }, 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "s3:*" 
      ], 
      "Resource": [ 
       "arn:aws:s3:::bucket/*" 
      ] 
     } 
    ] 
} 

請讓我知道我應該怎麼寫這樣的政策,使除了一個用戶代理其他所有都能夠訪問相同的。

回答

0

它必須這樣寫!

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "SID", 
      "Effect": "Allow", 
      "Action": [ 
       "s3:*" 
      ], 
      "Condition": { 
       "StringNotLike": { 
        "aws:UserAgent": "NSPlayer" 
       } 
      }, 
      "Resource": [ 
       "*" 
      ] 
     } 
    ] 
} 

該解決方案適用於桶對象不是公共讀/寫的情況。一個相關的答案是hereDeny access to user agent to access a bucket in AWS S3

+1

請注意 - 您正在向每個人授予您的Amazon S3存儲桶的完全控制權(只要他們不使用NSPlayer)。這意味着他們可以上傳,下載和刪除您的數據。只允許訪問您的用戶所需的API調用和存儲區是安全的 - 不再需要。一種方法是通過正常的策略授予對S3的訪問權限,然後使用「Like」和「Deny」的上述策略來明確拒絕NSPlayer訪問。 –

+0

你的評論是有用的..你能否請正確編輯答案,以便其他人也看到答案時有理解! –

+0

我們如何僅授予僅API調用的權限。您能否正確地請另一個答案,這將幫助我 –

相關問題