Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
¿Cómo identifico, superviso y optimizo el uso de mi dirección IPv4 pública de Amazon VPC?
Quiero identificar, supervisar y optimizar el uso de mi dirección IPv4 de Amazon Virtual Private Cloud (Amazon VPC).
Solución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Todas las direcciones IPv4 públicas conllevan un cargo de 0,005 USD por cada dirección IP cada hora, independientemente de si están conectadas a un servicio o no. Si eres cliente del nivel gratuito de AWS para Amazon Elastic Compute Cloud (Amazon EC2), recibirás 750 horas de uso gratuitas. Este uso gratuito es para iniciar una instancia de Amazon EC2 con una dirección IPv4 pública.
Activación de Public IP Insights
Puedes utilizar Public IP Insights para supervisar, analizar y auditar las direcciones IPv4 públicas que tus servicios utilizan actualmente en las regiones de AWS.
Para activar Public IP Insights, crea un grupo de administrador de direcciones IP (IPAM) de Amazon VPC. Para identificar el uso de direcciones IPv4 públicas, integra Public IP Insights de IPAM con una sola cuenta de AWS o con tus cuentas de AWS Organizations.
Nota: Public IP Insights en el nivel gratuito no tiene ningún coste. Para obtener información sobre los precios del nivel avanzado, consulta la pestaña de IPAM en la página de precios de Amazon VPC. Al integrar IPAM con Organizations, puedes utilizar Public IP Insights para todas las regiones y cuentas de tu organización, incluso en el nivel gratuito.
Para ver los resultados, puedes usar la consola de Amazon VPC o la AWS CLI.
Nota: Después de crear un grupo de IPAM, Public IP Insights genera un informe para tus direcciones IPv4 públicas. El tiempo necesario para generar el informe depende del tamaño de la organización.
Activación del informe de costes y uso
Tu informe de costes y uso (CUR) de AWS incluye datos de uso de las direcciones IPv4 públicas en uso y no utilizadas. Cuando crees tu CUR, selecciona Incluir ID de recursos para obtener un análisis detallado a nivel de recursos. Tras crear tu CUR, AWS actualiza los archivos de informes que contienen los datos del mes hasta la fecha al menos una vez al día. Puedes usar los archivos de informes para analizar los datos históricos de uso de direcciones IPv4.
Nota: Puedes acceder a los informes desde un bucket de Amazon Simple Storage Service (Amazon S3). AWS puede tardar hasta 24 horas en enviar los informes a tu bucket de Amazon S3.
Identificación inmediata de las direcciones IPv4 públicas
Nota: Se recomienda utilizar la información sobre CUR y Public IP Insights para el análisis planificado del uso de direcciones IPv4 públicas.
Para identificar inmediatamente los servicios que utilizan direcciones IPv4 públicas, utiliza la consola de Amazon EC2 o la AWS CLI.
Consola de Amazon EC2
Para analizar las interfaces de red y ver los servicios de AWS que utilizan direcciones IPv4 públicas, sigue estos pasos:
- Abre la consola de Amazon EC2.
- En el panel de navegación, en Red y seguridad, selecciona Interfaces de red.
- En el filtro Direcciones IPv4 públicas, introduce <*> para identificar las interfaces de red elásticas que utilizan la dirección IPv4 pública principal.
- Usa la descripción de la interfaz de red y el tipo de interfaz para identificar el servicio que usa la dirección IPv4 pública.
- Para mostrar todas las direcciones IP públicas y secundarias que tienen interfaces de red en una región, ejecuta el siguiente comando:
Nota: Sustituye example-region por tu región.aws ec2 describe-network-interfaces --region example-region --query 'NetworkInterfaces[*].PrivateIpAddresses[?Association.PublicIp].Association.PublicIp[]' --output table
Para ver las direcciones IPv4 públicas que utiliza AWS Site-to-Site VPN, consulta ¿Cómo compruebo el estado actual de mi túnel VPN?
Para ver las direcciones IPv4 públicas que utiliza el AWS Global Accelerator estándar y personalizado, consulta Visualización de los aceleradores.
Para ver las direcciones IP elásticas inactivas o asociadas, sigue estos pasos:
- Abre la consola de Amazon EC2.
- En el panel de navegación, en Red y seguridad, elige Direcciones IP elásticas.
- Selecciona una dirección IP elástica para ver los recursos que utilizan esa dirección IP elástica.
Nota: Para obtener más información sobre el uso, consulta los campos Interfaz de red o Instancia.
No hay cargos por traer tus propias direcciones IP (BYOIP). AWS anuncia Global Accelerator en la región us-west-2.
AWS CLI
Requisitos previos: Ejecuta el comando aws configure de la AWS CLI para configurar tus credenciales. Además, instala Boto3. Para obtener más información, consulta Install Boto3 (Instalar Boto3) en el sitio web de Boto3.
Para identificar inmediatamente los servicios que utilizan direcciones IPv4 públicas, sigue estos pasos desde un entorno de AWS CloudShell o Linux:
-
Crea el siguiente archivo:
touch public_ipv4_recon.py -
Ejecuta el siguiente comando para editar el archivo:
vim public_ipv4_recon.py -
Copia y pega el siguiente código en el archivo y, a continuación, guarda el archivo:
#!/usr/bin/env python3 import pprint import boto3, sys profile = boto3.Session(profile_name=sys.argv[1]) aga = profile.client('globalaccelerator', region_name='us-west-2') ec2 = boto3.client('ec2') def global_public_ipv4_lookup(aga): try: # global accelerator next_token = None while True: if next_token: resource = aga.list_accelerators( NextToken = next_token ) else: resource = aga.list_accelerators( ) print('Describing world wide Global Accelerators...') print('Note: AWS Global Accelerators are billed in us-west-2....') print(f'Number of AGA: {len(resource["Accelerators"])}') print('-'*40) for item in resource["Accelerators"]: print(f'Name: {item["Name"]}') if 'IpSets' in item.keys(): for ip in item["IpSets"][0]["IpAddresses"]: print(f'Public IPv4: {ip}') print(f'Status: {item["Status"]}') print() next_token = resource.get("NextToken") if next_token is None: break print() # custom_routing_accelerators next_token = None while True: if next_token: custom_routing = aga.list_custom_routing_accelerators( NextToken = next_token ) else: custom_routing = aga.list_custom_routing_accelerators( ) print('Describing world wide Custom Routing Accelerators...') print('Note: AWS Global Accelerators are billed in us-west-2....') print(f'Number of custom AGA: {len(custom_routing["Accelerators"])}') print('-'*40) for item in custom_routing["Accelerators"]: if 'IpSets' in item.keys(): for ip in item["IpSets"][0]["IpAddresses"]: print(f'Public IPv4: {ip}') print(f'Status: {item["Status"]}') print() next_token = custom_routing.get("NextToken") if next_token is None: break print() except Exception as err: print(f'Error found: {err}...') pass def public_ipv4_lookup(ec2): try: # vpn next_token = None while True: if next_token: vpn = ec2.describe_vpn_connections( NextToken = next_token ) else: vpn = ec2.describe_vpn_connections( ) print('Describing VPNs...') print(f'Number of Vpn connections: {len(vpn["VpnConnections"])}') print('-'*40) for item in vpn["VpnConnections"]: if 'VpnConnectionId' in item.keys(): print(f'Vpn Id: {item["VpnConnectionId"]}') for ip in item["VgwTelemetry"]: print(f'Public ipv4: {ip["OutsideIpAddress"]}') print() next_token = vpn.get("NextToken") if next_token is None: break print() # elastic ip eip = ec2.describe_addresses( ) print('Describing Elastic IPs...') print(f'Number of Elastic Ips: {len(eip["Addresses"])}') print('-'*40) for item in eip["Addresses"]: if 'AllocationId' in item.keys(): print(f'Eip Id: {item["AllocationId"]}') print(f'Public ipv4: {item["PublicIp"]}') print() print() # network interfaces next_token = None while True: if next_token: interface = ec2.describe_network_interfaces( NextToken=next_token ) else: interface = ec2.describe_network_interfaces( ) print('Describing Network Interfaces...') print(f'Number of interfaces: {len(interface["NetworkInterfaces"])}') print('Only printing Interfaces with a public IPv4 address...') print('-'*40) for item in interface["NetworkInterfaces"]: for ip in item["PrivateIpAddresses"]: if 'Association' not in ip.keys(): pass else: print(f'Interface Id: {item["NetworkInterfaceId"]}') print(f'Description: {item["Description"]}') print(f'Status: {interface["NetworkInterfaces"][0]["Status"]}') print(f'Public Ip: {ip["Association"]["PublicIp"]}\n') next_token = interface.get("NextToken") if next_token is None: break except Exception as err: print(f'Error found: {err}...') pass # Run code if len(sys.argv) < 3 or not sys.argv[2]: global_public_ipv4_lookup(aga) regions_list = ec2.describe_regions( AllRegions=False ) for region in regions_list['Regions']: if region["OptInStatus"] == 'opted-in' or 'opt-in-not-required': print(f'\n**********-[{region["RegionName"]}]-**********\n') public_ipv4_lookup( ec2=profile.client('ec2', region_name=region["RegionName"]) ) elif sys.argv[2]: global_public_ipv4_lookup(aga) public_ipv4_lookup( ec2=profile.client('ec2', region_name=sys.argv[2]) ) -
Para comprobar todas las regiones, ejecuta el siguiente comando:
python3 public_ipv4_recon.py example-cli-profileNota: Sustituye example-cli-profile por el nombre del perfil de la AWS CLI configurado o por cualquier nombre de perfil definido en el archivo .aws/credentials. Si usas Windows, sustituye python3 por python.
Alternativa:
Para comprobar una región específica, ejecuta el siguiente comando:python3 public_ipv4_recon.py example-cli-profile example-regionNota: Sustituye example-cli-profile por el nombre del perfil de la AWS CLI configurado o por cualquier nombre de perfil definido en el archivo .aws/credentials. Sustituye example-region por la región.
Si no tienes autorización para ejecutar la solicitud o la región está desactivada para tu cuenta, es posible que recibas el siguiente error:
«Error found: An error occurred (AuthFailure) when calling the <API> operation: AWS was not able to validate the provided access credentials...»
Optimización del uso de direcciones IPv4 públicas y adopción de direcciones IPv6
Para optimizar los costes, mejora tu arquitectura actual para minimizar el uso de direcciones IPv4 públicas. Se recomienda migrar a IPv6. No hay cargos para las direcciones IPv6.
- Etiquetas
- Amazon VPC
- Idioma
- Español

Contenido relevante
- preguntada hace 10 meses
- preguntada hace 2 meses
- preguntada hace 3 meses
OFICIAL DE AWSActualizada hace 5 meses
OFICIAL DE AWSActualizada hace 6 meses
OFICIAL DE AWSActualizada hace 6 meses