我的环境中有一些东西被破坏了,或者这个功能被破坏了。根据我所遵循的blog,它似乎在某一点上起作用了:
我想要做的是运行我的脚本,输入MFA。然后能够再次运行它,而无需使用缓存的会话令牌进入MFA。
我见过的样本是:
session = boto3.Session(profile_name='w2-cf3')
ec2_client = session.client('ec2',region_name='us-west-2')
然后我被提示输入我的mfa:
Enter MFA code:
我输入它并运行我的代码。此时,我的会话令牌应该被缓存,这就是它在awscli中的工作方式。但是,在第二次运行时,boto3不再读取此配置文件的缓存会话,而是忽略并再次提示我输入我的MFA:
Enter MFA code:
这是我的〜/ .aws / config文件的样子:
[profile default]
region = us-west-2
output = json
[profile w2-cf3]
region = us-west-2
source_profile = default
role_arn = arn:aws:iam::<accountid>:role/<role>
mfa_serial = arn:aws:iam::<accountid>:mfa/<user>
这是我的〜/ .aws / credentials文件的样子:
[default]
aws_access_key_id=<access key>
aws_secret_access_key=<secret key>
预期:我预计第二次运行我的脚本会像在awscli中那样使用缓存的会话令牌。 AWS提供的会话令牌持续1小时。
答案 0 :(得分:1)
这在僵尸here的GitHub回购中已经讨论过了,pull request已经提交并正在讨论。
你是对的,这似乎是在2014年工作,但已经以某种方式被删除,从上面提到的线程的讨论,这应该很快重新实现,遵循拉请求线程,并确保升级时它正在发布。