【问题标题】:Boto failing to authenticate with S3 IAM roleBoto 无法使用 S3 IAM 角色进行身份验证
【发布时间】:2013-07-12 20:13:08
【问题描述】:

我有一个名为 Role1 的角色。该角色应用了以下策略。

我有一个具有 Role1 IAM 角色的 ec2 实例。

当我尝试 conn.get_bucket('fooo_udata') 时返回 403 错误。

对此有什么想法吗?

  {
"Statement": [
{
  "Effect": "Allow",
  "Action": ["s3:ListAllMyBuckets"],
  "Resource": "arn:aws:s3:::*"
},
{
  "Effect": "Allow",
  "Action": ["s3:ListBucket","s3:GetBucketLocation","s3:*"],
  "Resource": ["arn:aws:s3:::fooo_uadata/","arn:aws:s3:::fooo_uadata/*"]
},
{
  "Effect": "Allow",
  "Action": ["s3:PutObject","s3:GetObject","s3:DeleteObject"],
  "Resource":   ["arn:aws:s3:::fooo_uadata/","arn:aws:s3:::fooo_uadata/*"]
}
]
}

【问题讨论】:

    标签: amazon-s3 boto amazon-iam


    【解决方案1】:

    我认为您不想在存储桶策略中包含“/”字符。所以,尝试改变:

    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket","s3:GetBucketLocation","s3:*"],
      "Resource": ["arn:aws:s3:::fooo_uadata/","arn:aws:s3:::fooo_uadata/*"]
    },
    

    到这里:

    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket","s3:GetBucketLocation","s3:*"],
      "Resource": ["arn:aws:s3:::fooo_uadata","arn:aws:s3:::fooo_uadata*"]
    },
    

    因为您的存储桶的名称是 foo_uadata 而不是 foo_uadata/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-25
      • 2012-11-12
      • 2021-11-19
      相关资源
      最近更新 更多