AWS假设使用SDK时角色访问被拒绝

时间:2019-10-29 07:20:55

标签: amazon-web-services sdk amazon-iam assume-role

我正在使用go sdk创建一个新角色并承担这个角色。两者均由同一IAM用户完成。 角色信任关系如下:

ScreenOrientation.LandscapeLeft

稍后尝试将对象添加到存储桶时,我可以创建会话令牌, 但是PutObject操作因AccessDenied而失败。 桶策略是:

{
    "Statement": [{
        "Effect": "Allow",
        "Principal": { "AWS": "<an admin user>" },
        "Action": [ "sts:AssumeRole" ]
    }]
}

1 个答案:

答案 0 :(得分:0)

如果您假设的角色没有通过角色策略授予对S3存储桶的访问权限,则需要将该角色作为主体添加到存储桶策略中。

这里有一个方便的工具; https://awspolicygen.s3.amazonaws.com/policygen.html有助于生成存储桶策略。但是它最终看起来应该像这样:

{
      "Effect": "Allow",
      "Action":"s3:*",
      "Principal": {
          "AWS": ["arn:aws:iam::<accountid>:role/<name of assumed role>"]
      },
      "Resource": [
        "arn:aws:s3:::<name of the bucket>/*"
      ],
      "Condition": {}
}