AmazonS3FullAccess托管策略对组不赋予S3权限?
我有一个S3存储桶,其政策许可中包含我的CloudFront来源访问标识:
{
"Version": "2008-10-17",
"Id": "PolicyForCloudFrontPrivateContent",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity <mine>"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<my-bucket>/*"
}
]
}
此外,我创建了一个组,并将AmazonS3FullAccess托管策略附加到该组,并将IAM用户添加到该组。 托管策略如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "*"
}
]
}
然而,当该用户试图向桶中添加任何东西时,我会得到一个403(拒绝访问)。 我不确定是否有其他操作,我没有编写代码来尝试它们。 只有当我明确允许用户的ARN直接在存储桶策略中允许它们添加对象时才能访问存储桶。 我错过了什么? 看起来上面的组策略应该允许该组的成员访问所有桶中的所有操作,但它不会那样做。
编辑:在阅读了大量文档后,我想我已经发现亚马逊不打算以这种方式使用组。 他们希望您使用角色,您可以将其分配给EC2实例以进行自动凭据管理。 这很好,但后来我无法弄清楚如何在本地测试我的代码(使用aws-sdk Ruby gem)。 亚马逊说为你的访问ID和密钥定义环境变量 - 但是访问ID和密钥是什么? 没有这样的角色......
尝试更换(在您的政策中):
"Resource": "arn:aws:s3:::<my-bucket>/*"
有:
"Resource": ["arn:aws:s3:::<my-bucket>", "arn:aws:s3:::<my-bucket>/*",]
和:
"Principal": {"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity <mine>"},
有:
"Principal": {"AWS": "arn:aws:iam::ACCOUNT_ID:user/USERNAME"},
链接地址: http://www.djcxy.com/p/93537.html
上一篇: AmazonS3FullAccess managed policy on a group doesn't give S3 permission?
下一篇: Access denied on Cloudfront distribution using signed URL's