从 AWS 组织中主账户中的 AWS lambda 函数 运行 检索子账户的角色 ARN

Retrieve Role ARNs of sub accounts from an AWS lambda function running in the master account, in AWS organizations

我有一个 lambda 函数,它承担 AWS 组织中子账户的角色。 lambda 驻留在主账户中。我需要将要承担的角色的角色 ARN 传递给此 lambda。我怎样才能做到这一点?我如何使用 AWS Lambda 从主账户检索驻留在子账户中的角色的角色 ARN?

是不是每个账号的角色名称都不一样?如果角色名称相同,您可以使用基本相同的 ARN,只需将账户 ID 插入调用 Lambda 函数的任何账户的字符串中。我不确定这是否回答了您的问题,但如果这是您尝试执行的操作,您的 Lambda 函数代码可能看起来像这样(使用 Python 和 boto3):

def lambda_handler(event, context):
    roleARN = 'arn:aws:iam::'+event['accountId']+':role/your_role_name'

    sts_connection = boto3.client('sts')
    # Assume the role in member accounts
    acct_b = sts_connection.assume_role(
        RoleArn=roleARN,
        RoleSessionName="session_name"
    )

请记住,您需要为这两个角色正确设置权限。 Lambda 执行角色需要有权在任何账户中代入具有该通用名称的角色,并且成员账户角色需要允许您的 Lambda 执行角色在信任策略中代入它们。