Имя роли отличается в каждой учетной записи? Если имя роли такое же, вы можете использовать практически тот же ARN и просто вставить идентификатор учетной записи в строку для той учетной записи, которая вызывает функцию 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"
)
Keep помните, что вам нужно будет правильно настроить разрешения для обеих ролей. Роль выполнения Lambda должна иметь разрешение на принятие роли с этим общим именем в любой учетной записи, а роли учетных записей участников должны позволять вашей роли выполнения Lambda принимать их в политике доверия.