Я использую этот код для принятия роли Amazon Web Services с помощью аутентификации SAML:
client = boto3.client('sts', region_name = region)
token = client.assume_role_with_saml(role, principal, saml)
Как задокументировано здесь , вызов assume_role_with_saml
не требуетиспользование учетных данных безопасности AWS ;вся информация об аутентификации содержится в параметрах самого вызова.Тем не менее, если у меня установлены переменные окружения AWS_
, связанные с аутентификацией, вызов boto3.client()
немедленно попытается использовать их для аутентификации.Обычно у меня установлен AWS_PROFILE
, и причина, по которой я запускаю этот код, в том, что срок действия токена безопасности именованного профиля истек, поэтому вызов не выполняется, и я должен сбросить AWS_PROFILE
и повторить попытку.
Я могу, конечно, вручную выполнить os.environ
поиск и удаление релевантных переменных перед вызовом boto3.client()
, но мне интересно, есть ли более понятный способ сказать: "Эй, Бото, просто дай мне объект клиента STS безпытаясь что-нибудь подтвердить, хорошо? "