AWS IAM不允许PutObject

时间:2016-11-30 18:31:12

标签: amazon-web-services amazon-s3

这是我做的:

1)向IAM用户添加了以下策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": "arn:aws:s3:::bucket-name"
        }
    ] }

2)我使用aws-cli

以该用户身份登录

3)执行以下命令:

aws s3 sync ./dist s3://bucket-name/ --delete

我得到了一堆:

  

调用PutObject操作时发生错误(AccessDenied):   访问被拒绝

奇怪的是,这很好用:

aws s3api list-objects --bucket bucket-name

这意味着我的政策正在某种程度上运作......

提前致谢

1 个答案:

答案 0 :(得分:3)

好的,我想出来了。政策需要:

[
  {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::bucket-name",
                "arn:aws:s3:::bucket-name/*"
            ]
        }
    ] 
  }
]

注意资源的差异。基本上,桶本身被认为是与其内部对象不同的资源。