def enumerate_volumes(vpcid): tag = '' table_name = str('volumes-' + vpcid) dynamodb.dyndb_create(table_name) dynamodb.initialize_table(table_name) print("Populating EBS volume information") volume_metadata = ec2_resource.volumes.all() for i in volume_metadata: keytag = '' try: for key in i.tags: if key['Key'] == 'Name': keytag = key['Value'] if keytag == '': keytag = 'None' except: if i.tags == None or keytag == '': keytag = 'None' mount_point = i.attachments[0]['Device'] if i.snapshot_id == '': snapshot = 'None' else: snapshot = i.snapshot_id print("%s %s" % (i.volume_id, i.availability_zone)) dynamodb.volume_put(table_name, i.volume_id, i.availability_zone, mount_point, snapshot, keytag)
def enumerate_secgroups(vpcid): table_name = str('secgroups-' + vpcid) dynamodb.dyndb_create(table_name) dynamodb.initialize_table(table_name) print("Populating security group information") secgroups = ec2_resource.security_groups.filter(Filters=[{ 'Name': 'vpc-id', 'Values': [vpcid] }]) for i in secgroups: print('%s\t' ' %s' % (i.id, i.group_name)) dynamodb.secgroup_put(table_name, i.id, i.group_name, i.description, i.vpc_id, i.ip_permissions, i.ip_permissions_egress)
def enumerate_ec2_instances(vpcid): associated_volumes = [] secondary_ipv4 = [] table_name = str('instances-' + vpcid) dynamodb.dyndb_create(table_name) dynamodb.initialize_table(table_name) print("Populating EC2 instance information") instances = ec2_resource.instances.filter(Filters=[{ 'Name': 'vpc-id', 'Values': [vpcid] }]) for i in instances: try: iam_arn = i.iam_instance_profile['Arn'] iam_arn = re.sub('arn.*profile/', '', iam_arn) except: iam_arn = 'None' try: keypair = i.key_name except: keypair = 'None' volumes = i.volumes.all() eni = i.network_interfaces for v in volumes: associated_volumes.append(v.id) for tag in i.tags: if tag['Key'] == 'Name': keytag = tag['Value'] if keytag == '': keytag = 'Null' for n in eni: for ip in n.private_ip_addresses: if ip['Primary'] == False: secondary_ipv4.append(ip['PrivateIpAddress']) if ip['Primary'] == True: primary_ipv4 = ip['PrivateIpAddress'] print("%s" ' %s ' ' %s ' "%s" % (i.id, keytag, keypair, i.vpc_id)) dynamodb.instances_put(table_name, i.id, keytag, i.vpc_id, i.image_id, i.security_groups, i.instance_type, i.placement['AvailabilityZone'], i.subnet_id, keypair, iam_arn, primary_ipv4, secondary_ipv4, associated_volumes) associated_volumes = [] secondary_ipv4 = [] #if __name__ == '__main__': # main()
def enumerate_vpc_details(vpcid): table_name = str('vpc-' + vpcid) dynamodb.dyndb_create(table_name) dynamodb.initialize_table(table_name) print("Populating VPC detail information") vpc_info = ec2_client.describe_vpcs(VpcIds=[vpcid]) vpc_info = vpc_info['Vpcs'] for tag in vpc_info[0]['Tags']: if tag['Key'] == 'Name': keytag = tag['Value'] if keytag == '': keytag = 'Null' dhcp = ec2_client.describe_dhcp_options( DhcpOptionsIds=[vpc_info[0]['DhcpOptionsId']]) dhcp = dhcp['DhcpOptions'] dynamodb.vpc_put(table_name, vpc_info[0]['VpcId'], keytag, vpc_info[0]['CidrBlock'], dhcp)
def enumerate_subnets(vpcid): table_name = str('subnet-' + vpcid) dynamodb.dyndb_create(table_name) dynamodb.initialize_table(table_name) print("Populating subnet information") subnet_filter = ec2_resource.subnets.filter(Filters=[{ 'Name': 'vpc-id', 'Values': [vpcid] }]) for i in subnet_filter: for tag in i.tags: if tag['Key'] == 'Name': keytag = tag['Value'] print("%s" ' %s ' ' %s ' ' %s ' "%s" % (i.id, keytag, i.cidr_block, i.availability_zone, i.vpc_id)) dynamodb.subnet_put(table_name, i.id, keytag, i.cidr_block, i.availability_zone, i.vpc_id)
def enumerate_rttbl(vpcid): associated_subnets = [] table_name = str('rttbl-' + vpcid) dynamodb.dyndb_create(table_name) dynamodb.initialize_table(table_name) print("Populating route table information") rttbl_filter = ec2_resource.route_tables.filter(Filters=[{ 'Name': 'vpc-id', 'Values': [vpcid] }]) for i in rttbl_filter: rttbl_id = ec2_resource.RouteTable(i.id) for associated in rttbl_id.associations: associated_subnets.append(associated.subnet_id) for tag in i.tags: if tag['Key'] == 'Name': keytag = tag['Value'] if keytag == '': keytag = 'Null' print("%s" ' %s ' "%s" % (i.id, keytag, i.vpc_id)) dynamodb.rttbl_put(table_name, i.id, keytag, associated_subnets, i.vpc_id) associated_subnets = []