diff --git a/libs/cloudfront.py b/libs/cloudfront.py new file mode 100644 index 0000000..035efa7 --- /dev/null +++ b/libs/cloudfront.py @@ -0,0 +1,57 @@ +''' +Cloudfront libs for WeirdAAL +''' + +import boto3 +import botocore +import pprint +import sys + +pp = pprint.PrettyPrinter(indent=5, width=80) + +# from http://docs.aws.amazon.com/general/latest/gr/rande.html +regions = ['us-east-1'] + +''' +Code to get the AWS_ACCESS_KEY_ID from boto3 +''' +session = boto3.Session() +credentials = session.get_credentials() +AWS_ACCESS_KEY_ID = credentials.access_key + + +def cloudfront_list_distributions(): + ''' + cloudfront list distributions + ''' + print("### Printing CloudFront Distributions ###") + try: + for region in regions: + client = boto3.client('cloudfront', region_name=region) + + response = client.list_distributions() + #print(response) + if response.get('DistributionList') is None: + print("{} likely does not have CloudFront permissions\n" .format(AWS_ACCESS_KEY_ID)) + elif len(response['DistributionList']) <= 0: + print("[-] list_distributions allowed for {} but no results [-]" .format(region)) + else: + print("### {} CloudFront Distributions ###" .format(region)) + for dist in response['DistributionList']['Items']: + pp.pprint(dist) + + #pp.pprint(dist['Items'][0]) + print("\n") + except botocore.exceptions.ClientError as e: + if e.response['Error']['Code'] == 'InvalidClientTokenId': + sys.exit("{} : The AWS KEY IS INVALID. Exiting" .format(AWS_ACCESS_KEY_ID)) + elif e.response['Error']['Code'] == 'EndpointConnectionError': + print("[-] Cant connect to the {} endpoint [-]" .format(region)) + elif e.response['Error']['Code'] == 'SubscriptionRequiredException': + print('{} : Has permissions but isnt signed up for service - usually means you have a root account' .format(AWS_ACCESS_KEY_ID)) + else: + print("Unexpected error: {}" .format(e)) + except KeyboardInterrupt: + print("CTRL-C received, exiting...") + + diff --git a/modules/cloudfront.py b/modules/cloudfront.py new file mode 100644 index 0000000..e240a60 --- /dev/null +++ b/modules/cloudfront.py @@ -0,0 +1,10 @@ +''' +This file is used to perform some EMR actions +''' + +from libs.cloudfront import * + + +def module_cloudfront_list_distributions(): + cloudfront_list_distributions() +