2016-03-01 142 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调用的权限。您能否正确地请另一个答案,这将帮助我 –

相关问题