Как получить mfa_serial из конфигурационного файла в boto3? - PullRequest
0 голосов
/ 29 апреля 2019

В моем файле ~ / .aws / config у меня есть:

[dev]
region = us-east-1
output = json
mfa_serial = arn:aws:iam::1111:mfa/user

Как мне извлечь этот mfa_serial из конфигурации в boto3, чтобы мне не нужно было указывать arn в скрипте py?

sts = session.client('sts')
mfa_code = input("Enter the MFA code: ")
mfa_session = sts.get_session_token(
    DurationSeconds=3600,
    SerialNumber=mfa_serial,
    TokenCode=mfa_code
)

1 Ответ

0 голосов
/ 29 апреля 2019

Если вы в порядке ввода имени пользователя, вы можете получить MFA arn программно, используя list_mfa_devices.

Этот фрагмент запрашивает имя IAM пользователя, а затем получает информацию MFA.

import boto3

iam = session.client('iam')
user = input("Username: ")
response = iam.list_mfa_devices(UserName=user)['MFADevices']
mfa = next(iter(response))['SerialNumber']
print(mfa)

Выходные данные будут иметь следующий формат:

arn: aws: iam :: 123456789123: mfa / amandahugginkiss

Ссылки

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/iam.html#IAM.Client.list_mfa_devices

...