2014-11-23 95 views
3

我不明白为什么我在查看页面时得到403权限被拒绝错误。我使用AWS CLI使用以下命令:AWS S3 CLI公共读取给我403与同步命令

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公开阅读选项。当我使用cp命令时,它看起来好像运行正常。我只想使用同步来使用--delete选项进行清理。有任何想法吗?

回答

2

在你的第二个政策声明(具有PutObject,...),一定要包含通配符为您的对象名称:

"Resources" : [ "bucket_name/*" ] 

你知不知道,你可以使用在线Policy Simulator工具来测试策略?

1

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