amazon-s3 - Boto 无法使用 S3 IAM 角色进行身份验证

标签 amazon-s3 boto amazon-iam

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

我有一个 IAM 角色为 Role1 的 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/*"]
}
]
}

最佳答案

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

{
  "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/

关于amazon-s3 - Boto 无法使用 S3 IAM 角色进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17623273/

相关文章:

python - Django 亚马逊 S3 Heroku。连接被对端重置。删除对 collectstatic 脚本的确认

python - 您可以列出 S3 存储桶中的所有文件夹吗?

amazon-iam - 使用现有 S3 存储桶触发 Lambda 函数时如何避免授予 `iam:CreateRole` 权限?

java - 如何在 Java SDK 2.0 中构建用于文件上传的 Amazon S3 Presigned PostPolicy?

Java amazonS3.generatePresignedUrl - 如何配置 https ://s3. amazonaws.com/mycompany 而不是 https ://mycompany. s3.amazonaws.com/com.mycompany

python - boto3 Route53 提示无法连接到端点 URL :

Python Boto EC2 在给定 IP 地址的情况下查找实例

amazon-web-services - --auth-dry-run in AWS cli 丢失了吗?

amazon-web-services - 应用 AWS IAM 策略后我应该等待多长时间才能生效?

python-3.x - 使用带有 boto3 的访问点从 S3 存储桶读取和写入