因此,正如标题中所述,我需要使用boto3和python承担我的一个子帐户的角色。我正在从主帐户发出请求,并且使用IAM用户,原因是当我读取根帐户时无法承担角色,只能充当用户。这样就创建了用户,具有管理员权限,并且我还创建了一个自定义策略,这是JSON:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:*",
"Resource": "*"
}
]
}
但我不断得到:
botocore.exceptions.ClientError:调用AssumeRole操作时发生错误(AccessDenied):访问被拒绝
顺便说一句,这是我的代码:
sts = boto3.client('sts')
response = sts.assume_role(
RoleArn='arn:aws:organizations::123456789:account/Master',
RoleSessionName='currentSession'
)
是的,我在本地设置了凭据和配置。
答案 0 :(得分:0)
在“儿童”帐户中,您需要:
在“父母”帐户中,您需要:
sts:AssumeRole
权限的IAM用户顺便说一句,“孩子”或“主账户”的概念不是必需的。只是一个帐户在另一个帐户中的角色上呼叫AssumeRole
。
根据收到的错误消息,您用来呼叫AssumeRole
的IAM用户没有必要的权限。因此,程序正在使用的IAM用户 not 没有显示的策略,或者试图在另一个帐户中承担的IAM角色没有信任关系允许来自“子”帐户的请求。
请参阅:Creating a Role to Delegate Permissions to an IAM User - AWS Identity and Access Management