我无法弄清楚为什么在查看页面时出现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选项进行清理。有什么想法吗?
答案 0 :(得分:2)
在第二个政策声明(PutObject,...
)中,请务必为对象名称添加通配符:
"Resources" : [ "bucket_name/*" ]
您知道可以使用在线Policy Simulator工具测试您的政策吗?
答案 1 :(得分:2)
好的,这是我发现的感谢@sebsto建议使用策略模拟器:我需要PutObjectAcl
和PutBucketAcl
。现在同步工作。