AWS API and Python Boto
Quick note on connection to EC2 to list instances.
- Ensure IAM User permissions. In my case I tried EC2FullAccess.
- Ensure you have your access and secret key handy.
- This example just cycle through regions and list any instances.
import argparse import boto.ec2 access_key = '' secret_key = '' def get_ec2_instances(region): ec2_conn = boto.ec2.connect_to_region(region, aws_access_key_id=access_key, aws_secret_access_key=secret_key) reservations = ec2_conn.get_all_reservations() for reservation in reservations: print region+':',reservation.instances for vol in ec2_conn.get_all_volumes(): print region+':',vol.id def main(): regions = ['us-east-1','us-west-1','us-west-2','eu-west-1','sa-east-1', 'ap-southeast-1','ap-southeast-2','ap-northeast-1'] parser = argparse.ArgumentParser() parser.add_argument('access_key', help='Access Key'); parser.add_argument('secret_key', help='Secret Key'); args = parser.parse_args() global access_key global secret_key access_key = args.access_key secret_key = args.secret_key for region in regions: get_ec2_instances(region) if __name__ =='__main__':main()
Example:
$ python list.py myaccess_key mysecret_key
us-east-1: [Instance:i-1aac5699]
us-east-1: vol-d121290e