|
import json |
|
import boto3 |
|
import sys |
|
|
|
input_json = sys.stdin.read() |
|
try: |
|
data = json.loads(input_json) |
|
except ValueError as value_error: |
|
sys.exit(value_error) |
|
|
|
boto_sts=boto3.client('sts') |
|
stsresponse = boto_sts.assume_role( |
|
RoleArn=data["role_arn"], |
|
RoleSessionName='newsession' |
|
) |
|
|
|
newsession_id = stsresponse["Credentials"]["AccessKeyId"] |
|
newsession_key = stsresponse["Credentials"]["SecretAccessKey"] |
|
newsession_token = stsresponse["Credentials"]["SessionToken"] |
|
|
|
ec2 = boto3.resource('ec2', |
|
region_name=data["region"], |
|
aws_access_key_id=newsession_id, |
|
aws_secret_access_key=newsession_key, |
|
aws_session_token=newsession_token |
|
) |
|
client = boto3.client('ec2', |
|
region_name=data["region"], |
|
aws_access_key_id=newsession_id, |
|
aws_secret_access_key=newsession_key, |
|
aws_session_token=newsession_token |
|
) |
|
|
|
filters = [{'Name':'tag:Name', 'Values':[data["vpc_name"]]}] |
|
vpcs = list(ec2.vpcs.filter(Filters=filters)) |
|
|
|
tags = {} |
|
|
|
for vpc in vpcs: |
|
response = client.describe_vpcs( |
|
VpcIds=[ |
|
vpc.id, |
|
] |
|
) |
|
for tag in response["Vpcs"][0]["Tags"]: |
|
tags[tag["Key"]] = tag["Value"] |
|
|
|
sys.stdout.write(json.dumps(tags)) |