首页 > 解决方案 > 从 AWS 组织中的主账户中运行的 AWS lambda 函数检索子账户的角色 ARN

问题描述

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

标签: amazon-web-servicesaws-lambdaamazon-iamaws-organizations

解决方案


每个帐户中的角色名称是否不同?如果角色的名称相同,您可以使用基本相同的 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 执行角色在信任策略中代入它们。


推荐阅读