Я пишу программу на python с использованием boto3, которая захватывает все запросы, сделанные основной учетной записью, и передает их на все вспомогательные учетные записи основной учетной записи.
Получение идентификаторов запросов из главного экземпляра завершено, но у меня возникли проблемы с их отправкой во вспомогательные учетные записи. С моей аутентификационной информацией AWS подключается к основной учетной записи по умолчанию, но я не могу понять, как заставить ее подключиться к дополнительной учетной записи. Обычно сервисы AWS делают это путем смены ролей, но у Афины нет встроенного метода для этого. Я мог бы вручную создавать разные профили, но я не уверен, как переключать их вручную во время выполнения кода
Вот пример кода Amazon для переключения в STS, который поддерживает принятие различных ролей https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-api.html
Вот как выглядит моя программа
#!/usr/bin/env python3
import boto3
dev = boto3.session.Session(profile_name='dev')
#Function for executing athena queries
client = dev.client('athena')
s3_input = 's3://dev/test/'
s3_output = 's3://dev/testOutput'
database = 'ex_athena_db'
table = 'test_data'
response = client.list_named_queries(
MaxResults=50,
WorkGroup='primary'
)
print response
Итак, у меня есть профиль "dev", но я не уверен, как дифференцировать этот профиль, чтобы указать AWS, что я хотел бы получить доступ к одной из дочерних учетных записей. Это просто имя или мне нужен какой-то другой параметр? Я не думаю, что могу (или должен) генерировать отдельный токен аутентификации для этого