【问题标题】:What role permissions are required to use get_contents_to_filename?使用 get_contents_to_filename 需要哪些角色权限?
【发布时间】:2013-01-18 14:01:24
【问题描述】:

我最近使用以下策略设置了一个 IAM 角色来访问存储桶:

{
  "Statement": [
    {
      "Sid": "Stmt1359923112752",
      "Action": [
        "s3:*"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::<BUCKET_NAME>"
      ]
    }
  ]
}

虽然我可以很好地列出存储桶的内容,但当我在特定键上调用 get_contents_to_filename 时,会收到 boto.exception.S3ResponseError: S3ResponseError: 403 Forbidden 异常。

是否需要添加角色权限才能从 S3 获取密钥?我已经检查了单个密钥的权限,似乎没有明确禁止其他用户访问的内容;只有一个权限授予所有者完全权限。

为了完整起见,我验证了删除上述角色策略会完全阻止对存储桶的访问,因此应用的策略不是问题。

谢谢!

【问题讨论】:

    标签: amazon-s3 boto


    【解决方案1】:

    您必须向存储桶中的对象授予权限,而不仅仅是对存储桶。所以你的资源必须是arn:aws:s3:::&lt;bucketname&gt;/*。这匹配每个对象。

    不幸的是,这与存储桶本身不匹配。因此,您要么需要将存储桶相关权限授予arn:aws:s3:::&lt;bucketname&gt;,将对象权限授予arn:aws:s3:::&lt;bucketname&gt;/*,要么只授予arn:aws:s3:::&lt;bucketname&gt;* 权限。尽管在后一种情况下,授予名为 fred 的存储桶的权限也会授予名为 freddy 的存储桶相同的权限。

    【讨论】:

    猜你喜欢
    • 2021-01-24
    • 2022-01-27
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    • 2021-04-29
    • 2019-11-28
    • 2015-12-28
    • 1970-01-01
    相关资源
    最近更新 更多