在我的〜/ .aws / config文件中:
[dev]
region = us-east-1
output = json
mfa_serial = arn:aws:iam::1111:mfa/user
如何从boto3的配置中检索mfa_serial,这样我就不必在py脚本中指定arn了?
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
)
答案 0 :(得分:1)
您可以使用 botocore.session.get_scoped_config 获取当前配置文件中定义的 mfa_serial
from botocore.session import Session
Session().get_scoped_config().get('mfa_serial')
答案 1 :(得分:0)
如果可以接受用户名输入,则可以使用list_mfa_devices
以编程方式获取MFA信息。
此代码段请求用户的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
参考