Monday 20 May 2019

Create STS connection using Boto3

This is not production ready code. It is just as a sample.

import boto3
from boto3 import Session

def connect_sts(region, role_arn):
  sts_client = boto3.client('sts')
 
  session = Session(region_name=region)

  assumedRoleObject = sts_client.assume_role(
    RoleArn=role_arn,
    RoleSessionName="AssumeRoleSession1"
  )

  credentials = assumedRoleObject['Credentials']
  connector = {
    'cloudformation' : session.resource('cloudformation', aws_access_key_id = credentials['AccessKeyId'], aws_secret_access_key = credentials['SecretAccessKey'], aws_session_token = credentials['SessionToken']),
    'iam' : session.resource('iam', aws_access_key_id = credentials['AccessKeyId'], aws_secret_access_key = credentials['SecretAccessKey'], aws_session_token = credentials['SessionToken']),
    'ec2' : session.resource('ec2', aws_access_key_id = credentials['AccessKeyId'], aws_secret_access_key = credentials['SecretAccessKey'], aws_session_token = credentials['SessionToken']),
    's3' : session.resource('s3', aws_access_key_id = credentials['AccessKeyId'], aws_secret_access_key = credentials['SecretAccessKey'], aws_session_token = credentials['SessionToken'])

  }
  #print connector
  return connector

ec22 = connect_sts('eu-west-1','arn:aws:iam::837274771294:role/Administrator')
for vpc in ec22['ec2'].vpcs.all():
  print vpc