Amazon web services AWS假定在使用SDK时角色访问被拒绝
我正在使用GoSDK创建一个新角色并承担它。这两项都是使用相同的IAM用户完成的。 角色信任关系如下所示:Amazon web services AWS假定在使用SDK时角色访问被拒绝,amazon-web-services,sdk,amazon-iam,assume-role,Amazon Web Services,Sdk,Amazon Iam,Assume Role,我正在使用GoSDK创建一个新角色并承担它。这两项都是使用相同的IAM用户完成的。 角色信任关系如下所示: { "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "<an admin user>" }, "Action": [ "sts:AssumeRole" ] }] } { “声明”:[{ “效果”:“允许”, “委托人”:{“AWS”:“}, “行动
{
"Statement": [{
"Effect": "Allow",
"Principal": { "AWS": "<an admin user>" },
"Action": [ "sts:AssumeRole" ]
}]
}
{
“声明”:[{
“效果”:“允许”,
“委托人”:{“AWS”:“},
“行动”:[“sts:假设角色”]
}]
}
稍后,当尝试将对象添加到bucket时,我可以创建一个会话令牌,
但是PutObject操作失败,访问被拒绝。
桶策略是:
{
"Effect": "Allow",
"Action":"s3:*",
"Resource": [
"arn:aws:s3:::<name of the bucket>/*"
],
"Condition": {}
}
{
“效果”:“允许”,
“行动”:“s3:*”,
“资源”:[
“arn:aws:s3::/*”
],
“条件”:{}
}
如果您假设的角色没有通过角色策略授予对S3 bucket的访问权限,则需要将角色作为主体添加到bucket策略中
这里有一个方便的工具;这有助于生成bucket策略。但最终应该是这样的:
{
"Effect": "Allow",
"Action":"s3:*",
"Principal": {
"AWS": ["arn:aws:iam::<accountid>:role/<name of assumed role>"]
},
"Resource": [
"arn:aws:s3:::<name of the bucket>/*"
],
"Condition": {}
}
{
“效果”:“允许”,
“行动”:“s3:*”,
“委托人”:{
“AWS”:[“arn:AWS:iam:::角色/”]
},
“资源”:[
“arn:aws:s3::/*”
],
“条件”:{}
}