我正在使用go sdk创建一个新角色并承担这个角色。两者均由同一IAM用户完成。 角色信任关系如下:
ScreenOrientation.LandscapeLeft
稍后尝试将对象添加到存储桶时,我可以创建会话令牌, 但是PutObject操作因AccessDenied而失败。 桶策略是:
{
"Statement": [{
"Effect": "Allow",
"Principal": { "AWS": "<an admin user>" },
"Action": [ "sts:AssumeRole" ]
}]
}
答案 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": {}
}