Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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()
Exemple #4
0
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)
Exemple #5
0
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)
Exemple #6
0
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 = []