概要
備忘録です。
AssumeRole でのアカウントスイッチで credentials 情報を持っている場合に対応した boto3.Session での認証の仕方です。
MFA 設定してる場合も付けときました。
実装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| mfa_TOTP = raw_input("Enter the MFA code: ")
client=boto3.client( 'sts' )
response = client.assume_role( RoleArn='arn:aws:iam::123456789:role/admin_full', RoleSessionName='mysession', DurationSeconds=3600, SerialNumber='arn:aws:iam::987654321:mfa/myaccount', TokenCode=mfa_TOTP, )
credentials = response['Credentials']
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='ap-north-east1') resources = ec2.describe_instances()
|
boto3.Session に sts で AssumeRole で得た credentials 情報を渡してます。
以上です。