【问题标题】:What role/permission I need in order to assume role of child account using boto3 and python?为了使用 boto3 和 python 承担子帐户的角色,我需要什么角色/权限?
【发布时间】:2019-11-16 21:16:06
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    在“孩子”帐户中,您需要:

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

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

    • 至少拥有子账户中 IAM 角色的 sts:AssumeRole 权限的 IAM 用户

    顺便说一句,“子”或“主”帐户的概念是不必要的。这只是一个帐户调用 AssumeRole 在另一个帐户中的角色。

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

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

    【讨论】:

    • 好的,让我重新表述我的问题,是否可以通过仅使用 boto3 和 python 知道子账户 arn 和 id 来从主账户的 IAM 用户承担子账户的角色?
    • 是的,如果权限配置正确的话。
    • 正确配置权限是指在主账户和子账户中添加前面提到的权限,对吧?
    猜你喜欢
    • 2021-10-10
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    • 2021-08-30
    • 2018-01-15
    • 2019-09-10
    相关资源
    最近更新 更多