从S3存储桶到本地目录的同步失败

时间:2016-08-26 20:04:20

标签: amazon-web-services amazon-s3 amazon-iam

我想将整个存储桶下载到本地目录。我试过了:

aws s3 sync s3://my-bucket-name . --profile default

我收到了身份验证错误:

  

下载失败:s3://my-bucket-name/thumbnail.jpg来路径   local / thumbnail.jpg调用时出现客户端错误(未知)   GetObject操作:未知

我相信我的IAM配置正确,因为它可以完全访问S3存储桶。当我尝试另一个命令时它会起作用,例如:

aws s3 ls

我对IAM用户的内联策略是:

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

我在这个设置中遗漏了什么吗?

2 个答案:

答案 0 :(得分:1)

如果您想通过cli和Web控制台访问并将存储桶限制为用户及其上的一些基本操作,则可以使用以下策略:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "s3:ListAllMyBuckets"
        ],
        "Resource": "arn:aws:s3:::*"
    },
    {
        "Effect": "Allow",
        "Action": [
            "s3:ListBucket"
        ],
        "Resource": [
            "arn:aws:s3:::YOURBUCKET"
        ]
    },
    {
        "Effect": "Allow",
        "Action": [
            "s3:PutObject",
            "s3:GetObject",
            "s3:DeleteObject",
            "s3:ListObjects"
        ],
        "Resource": [
            "arn:aws:s3:::YOURBUCKET/*"
        ]
    }
]

}

答案 1 :(得分:0)

政策中存在问题。将政策更改为以下。

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

如果您希望用户只访问一个存储桶,请使用以下政策。

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