AWS S3 - 如何将IAM用户限制为单个存储桶?

AWS S3 - 如何将IAM用户限制为单个存储桶?

问题描述:

我一直在努力挣扎几个小时,无法弄清楚。AWS S3 - 如何将IAM用户限制为单个存储桶?

我创建了一个新的用户,口是心非,我做了一个新的水桶叫鲍勃 - 房子,产生了以下政策:(任何数字我不知道我应该分享的xxx'd出)

{ 
    "Version": "2012-10-17", 
    "Id": "Policyxxx", 
    "Statement": [ 
     { 
      "Sid": "Stmtxxx", 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "arn:aws:iam::xxx:user/duplicity" 
      }, 
      "Action": "s3:*", 
      "Resource": "arn:aws:s3:::bobs-house/*" 
     } 
    ] 
} 

我去策略模拟器,并运行一些测试。果然,它表示我可以做任何我想做的用户复制品,但只能在bobs-house上。如果虚度试图做任何涉及其他桶的事情,它就会被拒绝。大!

现在我启动我的FTP客户端并使用重复的IAM访问密钥和密钥连接到s3.amazonaws.com(使用传输的S3协议当然,而不是FTP协议)。我得到“访问被拒绝”。我无法弄清楚我做错了什么。任何帮助,将不胜感激!

编辑:

明白了,感谢约翰的答案如下。我可以使用传输连接和仅查看桶的内容,添加文件等,但口是心非(备份软件)抱怨:

PermanentRedirect. The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint. bobs-house.s3.amazonaws.com

所以我切换格式在口是心非的配置到:

s3://bops-house.s3.amazonaws.com/test 

然后我得到这个错误:

The request signature we calculated does not match the signature you provided. Check your key and signing method.

我的访问密钥&秘密密钥是绝对正确的。

+0

我不知道AWS做FTP –

+0

你尝试'在策略模拟器列表buckets'?因为我不确定Transmit在底层做了什么,但是它很可能会尝试一些你没有批准的操作,而不涉及特定的存储桶(在这种情况下,你真的需要提交一个bug报告他们)。 –

如果您希望为特定用户授予Amazon S3权限,最好针对IAM用户本身而不是桶策略创建策略

一个桶政策好分配普遍权限,而政策IAM有利于赋予权限的用户的特定用户或组。

参见:User Policy Examples

+0

谢谢!这工作。我编辑了我的帖子..还有一个问题 – ffxsam