AWS S3 CLI ACL public-read为我提供了403 with sync命令

时间:2014-11-23 17:23:02

标签: amazon-web-services amazon-s3 acl aws-cli

我无法弄清楚为什么在查看页面时出现403权限被拒绝错误。我使用AWS CLI使用以下命令:

aws s3 sync [source] [s3 destination] --acl public-read --recursive --delete --profile [my_profile]

在IAM上,我的政策如下:

{
  "Version": "2012-10-17",
  "Statement": [
{
  "Effect": "Allow",
  "Action": ["s3:ListBucket"],
  "Resource": ["bucket_location"]
},
{
  "Effect": "Allow",
    "Action": [
      "s3:PutObject",
      "s3:PutObjectAcl",
      "s3:GetObject",
      "s3:DeleteObject"
    ],
      "Resource": ["bucket_location"]
    }
  ]
}

路径是正确的,因为它确实上传了文件,但看起来它忽略了--acl public-read选项。当我使用cp命令时,看起来它运行正常。我只想使用sync来使用--delete选项进行清理。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

在第二个政策声明(PutObject,...)中,请务必为对象名称添加通配符:

"Resources" : [ "bucket_name/*" ]

您知道可以使用在线Policy Simulator工具测试您的政策吗?

答案 1 :(得分:2)

好的,这是我发现的感谢@sebsto建议使用策略模拟器:我需要PutObjectAclPutBucketAcl。现在同步工作。