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