为了使用boto3和python承担子帐户的角色,我需要什么角色/权限?

时间:2019-07-06 18:16:11

标签: amazon-web-services boto3 amazon-iam

因此,正如标题中所述,我需要使用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'
)

是的,我在本地设置了凭据和配置。

1 个答案:

答案 0 :(得分:0)

在“儿童”帐户中,您需要:

  • 您希望担任的 IAM角色
  • 关于信任关系的角色,该角色允许其他帐户使用
  • 一种策略,该策略可以访问您希望角色使用的资源

在“父母”帐户中,您需要:

  • 对子帐户中的IAM角色至少具有sts:AssumeRole权限的IAM用户

顺便说一句,“孩子”或“主账户”的概念不是必需的。只是一个帐户在另一个帐户中的角色上呼叫AssumeRole

根据收到的错误消息,您用来呼叫AssumeRole的IAM用户没有必要的权限。因此,程序正在使用的IAM用户 not 没有显示的策略,或者试图在另一个帐户中承担的IAM角色没有信任关系允许来自“子”帐户的请求。

请参阅:Creating a Role to Delegate Permissions to an IAM User - AWS Identity and Access Management