1

我有一个 Python 脚本,可以从主账户创建一个新的 AWS 账户。然后它使用assume_role 访问新创建的帐户。我有一个自定义服务员来检查帐户是否已创建。但是,不确定是否由于时间问题或其他原因,有时假设角色显示 AccessDenied。放入 time.sleep(x) 似乎有帮助。我想知道是否有更好的方法来做到这一点(是否可以为假设角色制作自定义服务员?)。

def assume_role(assumed_session, account_id, account_alias):
    client = assumed_session.client('sts')
    assumed_role_object = client.assume_role(
        RoleArn = "arn:aws:iam::%s:role/MyCustomRole2" % account_id,
        RoleSessionName = account_alias
    )
    time.sleep(x)
    credentials = assumed_role_object['Credentials']
    return credentials

我偶尔遇到的错误是

('An error occurred (AccessDenied) when calling the AssumeRole operation: User: arn:aws:sts::XXXXXXXXXXXX:assumed-role/MyCustomRole1/my-org is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::YYYYYYYYYYYY:role/MyCustomRole2',)
4

0 回答 0