场景
我有两个AWS帐户与第三个AWS帐户,主帐户相关联。
例如,帐户名是aws_acc_main
,aws_acc_1
,aws_acc_2
aws_main
用于维护其他两个帐户的用户、组和角色。但是,除IAM外,主帐户中不使用其他服务。在
使用boto3
和Python
我想得到account-1和account-2的ec2
实例
AWS配置如下:
.aws/credentials文件
[aws_acc_main]
aws_access_key_id=AKJFJHNUCTYUUAPW
aws_secret_access_key = 2uldfr94tuowjuHUKbnBIby8jhfdgjh
.aws/config
^{pr2}$现在是python文件。在
test1.py
sessions = ['aws_acc_1', 'aws_acc_2']
for session_name in sessions:
session = boto3.Session(profile_name=session_name)
ec2 = session.client('ec2', region_name='eu-west-2')
resources = ec2.describe_instances()
test2.py
mfa_code = raw_input("Enter the MFA code: ")
client = boto3.client('sts')
response = client.get_session_token(
DurationSeconds=3600,
SerialNumber='arn:aws:iam::111111111110:mfa/ABCD',
TokenCode=mfa_code
)
credentials = response['Credentials']
for session_name in sessions:
session = boto3.Session(profile_name=session_name,
aws_access_key_id = credentials['AccessKeyId'],
aws_secret_access_key = credentials['SecretAccessKey'],
aws_session_token = credentials['SessionToken'],
)
ec2Client = session.client('ec2', region_name='eu-west-2')
resources = ec2.describe_instances()
问题
第一个(test1.py
)工作正常,但是我必须在每次迭代中为每个帐户提供MFA
。在
第二个文件(test2.py
)也没有给出任何错误,但是它没有读取aws_acc_1
和aws_acc_2
的EC2
服务,而是只得到aws_acc_main
的ec2服务,它没有任何内容。它甚至没有给出任何错误。在
期望输出
我想在整个课程中只给MFA一次。然后,我想在不提供MFA的情况下切换角色。这意味着我要修复test2.py
。在
问题
在awsweb客户机中,一旦我使用我的userid、password和MFA登录,就可以切换角色,而无需反复验证MFA。这就是我想做的。在
如果我使用boto3创建会话,那么如何使用同一会话将角色切换到不同的帐户而不反复提供MFA?在
请注意。。。在这个场景中,重要的一点是aws_acc_1
和{aws_acc_main
来处理。
目前没有回答
相关问题 更多 >
编程相关推荐