Amazon web services AWS S3 CLI ACL public read为我提供了403和sync命令

Amazon web services AWS S3 CLI ACL public read为我提供了403和sync命令,amazon-web-services,amazon-s3,acl,aws-cli,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:Lis

我不明白为什么在查看页面时会出现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选项进行清理。有什么想法吗?

在您的第二个策略声明(带有
PutObject,
的声明)中,请确保在对象名称中包含通配符:

"Resources" : [ "bucket_name/*" ]

你知道你可以使用在线工具测试你的策略吗?

好的,这是我在@sebsto建议策略模拟器后发现的:我需要
PutObjectAcl
PutBucketAcl
。现在同步工作了