繁体   English   中英

在 python 中使用 boto3 多次承担 IAM 角色

[英]assuming IAM role multiple times using boto3 in python

我是使用 aws 的新手,我不确定我的措辞是否正确,但基本上,我需要在一个帐户中进行 sso -> 在帐户 A 中扮演一个角色 -> 然后在帐户 B 中扮演一个角色。我我正在关注这篇文章 ( https://medium.com/geekculture/programming-aws-iam-using-aws-python-sdk-boto3-part-4-62f2f1c21584 ) 关于如何承担这个角色。 当我在账户A中担任第一个角色后,我得到了“iam_client”(来自文章),然后我不知道如何从账户B中担任第二个角色。

import boto3

从 botocore.exceptions 导入 ClientError

def lambda_handler(事件,上下文):

sts_client = boto3.client('sts')

try:
    response = sts_client.assume_role(
        RoleArn='arn:aws:iam::<TRUSTING_ACCOUNT_ID>:role/<ROLE_NAME_IN_TRUSTING_ACCOUNT>',
        RoleSessionName='assume_role_session'
    )
except ClientError as error:
    print('Unexpected error occurred... could not assume role', error)
    return error

try:
    iam_client = boto3.client('iam',
                              aws_access_key_id=response['Credentials']['AccessKeyId'],
                              aws_secret_access_key=response['Credentials']['SecretAccessKey'],
                              aws_session_token=response['Credentials']['SessionToken']
                              )
except ClientError as error:
    print('Unexpected error occurred... could not create iam client on trusting account', error)
    return error

编辑:我的 aws 帐户设置方式使我无法在 sso 登录后立即承担帐户 B 中的角色。 信任关系的设置方式仅允许账户 A 中的角色代入该关系。

查看包含此用例的AWS 官方代码库 在查找 AWS 代码示例时,请查看此新 AWS 文档。

在此处输入图像描述

如您所见,代码库以不同的受支持编程语言显示了此用例。 题目在这里:

使用 AWS SDK 创建 IAM 用户并担任 AWS STS 的角色

您可以按照 Python 示例代入角色。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM