Rangos de direcciones IP de AWS - Amazon Virtual Private Cloud

Rangos de direcciones IP de AWS

AWS publica sus rangos de direcciones IP actuales en formato JSON. Con esta información, puede identificar el tráfico desde AWS. También puede permitir o denegar el tráfico hacia tipos específicos de recursos de AWS o desde estos.

Para ver los rangos actuales, descargue el archivo .json. Para mantener el historial, guarde versiones sucesivas del archivo .json en el sistema. Para determinar si se han producido cambios desde la última vez que guardó el archivo, consulte la fecha y hora de publicación en el archivo actual y compárelas con la fecha y hora de publicación del último archivo que ha guardado.

Los rangos de direcciones IP que usted agrega a AWS mediante la incorporación de direcciones IP propias (BYOIP) no se incluyen en el archivo .json.

Como alternativa, algunos servicios publican sus rangos de direcciones mediante listas de prefijos administrados por AWS. Para obtener más información, consulte Listas de prefijos administradas por AWS disponibles.

Descargar

Descargue ip-ranges.json.

Si accede a este archivo mediante programación, es responsabilidad suya asegurarse de que la aplicación descargue el archivo correctamente únicamente después de haber comprobado el certificado TLS presentado por el servidor.

Sintaxis

La sintaxis de ip-ranges.json es la siguiente.

{ "syncToken": "0123456789", "createDate": "yyyy-mm-dd-hh-mm-ss", "prefixes": [ { "ip_prefix": "cidr", "region": "region", "network_border_group": "network_border_group", "service": "subset" } ], "ipv6_prefixes": [ { "ipv6_prefix": "cidr", "region": "region", "network_border_group": "network_border_group", "service": "subset" } ] }
syncToken

La fecha y hora de publicación en formato de tiempo Unix.

Tipo: String

Ejemplo: "syncToken": "1416435608"

createDate

La fecha y la hora de publicación, en formato UTC AA-MM-DD-hh-mm-ss.

Tipo: String

Ejemplo: "createDate": "2014-11-19-23-29-02"

prefixes

Prefijos IP para los rangos de direcciones IPv4.

Tipo: Array

ipv6_prefixes

Prefijos IP para los rangos de direcciones IPv6.

Tipo: matriz

ip_prefix

Rango de direcciones IPv4 públicas en notación CIDR. Tenga en cuenta que AWS puede anunciar un prefijo en rangos más específicos. Por ejemplo, el 96.127.0.0/17 del archivo se puede anunciar como 96.127.0.0/21, 96.127.8.0/21, 96.127.32.0/19 y 96.127.64.0/18.

Tipo: String

Ejemplo: "ip_prefix": "198.51.100.2/24"

ipv6_prefix

Rango de direcciones IPv6 públicas en notación CIDR. Tenga en cuenta que AWS puede anunciar un prefijo en rangos más específicos.

Tipo: String

Ejemplo: "ipv6_prefix": "2001:db8:1234::/64"

network_border_group

El nombre del grupo de bordes de red, el cual es un conjunto único de zonas de disponibilidad o zonas locales desde las que AWS anuncia las direcciones IP.

Tipo: String

Ejemplo: "network_border_group": "us-west-2-lax-1"

region

La región de AWS o GLOBAL para las ubicaciones de borde. Los rangos CLOUDFRONT y ROUTE53 son GLOBAL.

Tipo: String

Valores válidos: af-south-1 | ap-east-1 | ap-northeast-1 | ap-northeast-2 | ap-northeast-3 | ap-south-1 | ap-south-2 | ap-southeast-1 | ap-southeast-2 | ap-southeast-3 | ap-southeast-4 | ca-central-1 | cn-north-1 | cn-northwest-1 | eu-central-1 | eu-central-2 | eu-north-1 | eu-south-1 | eu-south-2 | eu-west-1 | eu-west-2 | eu-west-3 | me-central-1 | me-south-1 | sa-east-1 | us-east-1 | us-east-2 | us-gov-east-1 | us-gov-west-1 | us-west-1 | us-west-2 | GLOBAL

Ejemplo: "region": "us-east-1"

service

Subconjunto de rangos de direcciones IP. Las direcciones que aparecen enumeradas para API_GATEWAY son solo de salida. Especifique AMAZON para obtener todos los rangos de direcciones IP (lo que significa que cada subconjunto también está en el subconjunto AMAZON). Sin embargo, algunos rangos de direcciones IP solo están en el subconjunto AMAZON (lo que significa que no están disponibles también en otro subconjunto).

Tipo: String

Valores válidos: AMAZON | AMAZON_APPFLOW | AMAZON_CONNECT | API_GATEWAY | CHIME_MEETINGS | CHIME_VOICECONNECTOR | CLOUD9 | CLOUDFRONT | CLOUDFRONT_ORIGIN_FACING | CODEBUILD | DYNAMODB | EBS | EC2 | EC2_INSTANCE_CONNECT | GLOBALACCELERATOR | KINESIS_VIDEO_STREAMS | MEDIA_PACKAGE_V2 | ROUTE53 | ROUTE53_HEALTHCHECKS | ROUTE53_HEALTHCHECKS_PUBLISHING | ROUTE53_RESOLVER | S3 | WORKSPACES_GATEWAYS

Ejemplo: "service": "AMAZON"

Filtrado del archivo JSON

Puede descargar una herramienta de línea de comandos que le ayude a filtrar la información de modo que solamente se muestre la que le interesa.

Windows

AWS Tools for Windows PowerShell incluye un cmdlet, Get-AWSPublicIpAddressRange, para analizar este archivo JSON. Su uso se ilustra en los siguientes ejemplos. Para obtener más información, consulte el tema sobre consulta de rangos de direcciones IP públicas para AWS y Get-AWSPublicIpAddressRange.

ejemplo 1. Obtención de la fecha de creación
PS C:\> Get-AWSPublicIpAddressRange -OutputPublicationDate Wednesday, August 22, 2018 9:22:35 PM
ejemplo 2. Obtención de la información de una región específica
PS C:\> Get-AWSPublicIpAddressRange -Region us-east-1 IpPrefix Region NetworkBorderGroup Service -------- ------ ------- ------- 23.20.0.0/14 us-east-1 us-east-1 AMAZON 50.16.0.0/15 us-east-1 us-east-1 AMAZON 50.19.0.0/16 us-east-1 us-east-1 AMAZON ...
ejemplo 3. Obtención de todas las direcciones IP
PS C:\> (Get-AWSPublicIpAddressRange).IpPrefix 23.20.0.0/14 27.0.0.0/22 43.250.192.0/24 ... 2406:da00:ff00::/64 2600:1fff:6000::/40 2a01:578:3::/64 2600:9000::/28
ejemplo 4. Obtención de todas las direcciones IPv4
PS C:\> Get-AWSPublicIpAddressRange | where {$_.IpAddressFormat -eq "Ipv4"} | select IpPrefix IpPrefix -------- 23.20.0.0/14 27.0.0.0/22 43.250.192.0/24 ...
ejemplo 5. Obtención de todas las direcciones IPv6
PS C:\> Get-AWSPublicIpAddressRange | where {$_.IpAddressFormat -eq "Ipv6"} | select IpPrefix IpPrefix -------- 2a05:d07c:2000::/40 2a05:d000:8000::/40 2406:dafe:2000::/40 ...
ejemplo 6. Obtención de todas las direcciones IP de un servicio específico
PS C:\> Get-AWSPublicIpAddressRange -ServiceKey CODEBUILD | select IpPrefix IpPrefix -------- 52.47.73.72/29 13.55.255.216/29 52.15.247.208/29 ...

Linux

Los comandos del ejemplo siguiente usan la herramienta jq para analizar una copia local del archivo JSON.

ejemplo 1. Obtención de la fecha de creación
$ jq .createDate < ip-ranges.json "2016-02-18-17-22-15"
ejemplo 2. Obtención de la información de una región específica
$ jq '.prefixes[] | select(.region=="us-east-1")' < ip-ranges.json { "ip_prefix": "23.20.0.0/14", "region": "us-east-1", "network_border_group": "us-east-1", "service": "AMAZON" }, { "ip_prefix": "50.16.0.0/15", "region": "us-east-1", "network_border_group": "us-east-1", "service": "AMAZON" }, { "ip_prefix": "50.19.0.0/16", "region": "us-east-1", "network_border_group": "us-east-1", "service": "AMAZON" }, ...
ejemplo 3. Obtención de todas las direcciones IPv4
$ jq -r '.prefixes | .[].ip_prefix' < ip-ranges.json 23.20.0.0/14 27.0.0.0/22 43.250.192.0/24 ...
ejemplo 4. Obtención de todas las direcciones IPv6
$ jq -r '.ipv6_prefixes | .[].ipv6_prefix' < ip-ranges.json 2a05:d07c:2000::/40 2a05:d000:8000::/40 2406:dafe:2000::/40 ...
ejemplo 5. Obtención de todas las direcciones IPv4 de un servicio específico
$ jq -r '.prefixes[] | select(.service=="CODEBUILD") | .ip_prefix' < ip-ranges.json 52.47.73.72/29 13.55.255.216/29 52.15.247.208/29 ...
ejemplo 6. Obtención de todas las direcciones IPv4 de un servicio concreto en una región específica
$ jq -r '.prefixes[] | select(.region=="us-east-1") | select(.service=="CODEBUILD") | .ip_prefix' < ip-ranges.json 34.228.4.208/28
ejemplo 7. Obtener información para un grupo de bordes de red concreto
$ jq -r '.prefixes[] | select(.region=="us-west-2") | select(.network_border_group=="us-west-2-lax-1") | .ip_prefix' < ip-ranges.json 70.224.192.0/18 52.95.230.0/24 15.253.0.0/16 ...

Implementación del control de salidas

Para permitir que una instancia acceda solo a los servicios de AWS, cree grupos de seguridad con reglas que permitan el tráfico saliente a los bloques de CIDR en la lista AMAZON, menos los bloques de CIDR que también se encuentran en la lista EC2. Las direcciones IP de la lista EC2 se pueden asignar a instancias EC2.

Hay cuotas para los grupos de seguridad. Según la cantidad de rangos de direcciones IP en cada región, es posible que necesite varios grupos de seguridad por región.

Windows PowerShell

En el siguiente ejemplo de PowerShell, se muestra cómo obtener las direcciones IP que están en la lista AMAZON pero no en la lista EC2. Copie el script y guárdelo en un archivo denominado Select_address.ps1.

$amazon_addresses = Get-AWSPublicIpAddressRange -ServiceKey amazon $ec2_addresses = Get-AWSPublicIpAddressRange -ServiceKey ec2 ForEach ($address in $amazon_addresses) { if( $ec2_addresses.IpPrefix -notcontains $address.IpPrefix) { ($address).IpPrefix } }

Puede ejecutar este script de la manera siguiente:

PS C:\> .\Select_address.ps1 13.32.0.0/15 13.35.0.0/16 13.248.0.0/20 13.248.16.0/21 13.248.24.0/22 13.248.28.0/22 27.0.0.0/22 43.250.192.0/24 43.250.193.0/24 ...

jq

En el siguiente ejemplo se muestra cómo obtener las direcciones IP que están en la lista AMAZON pero no en la lista EC2 para todas las regiones:

jq -r '[.prefixes[] | select(.service=="AMAZON").ip_prefix] - [.prefixes[] | select(.service=="EC2").ip_prefix] | .[]' < ip-ranges.json 52.94.22.0/24 52.94.17.0/24 52.95.154.0/23 52.95.212.0/22 54.239.0.240/28 54.239.54.0/23 52.119.224.0/21 ...

El siguiente ejemplo muestra cómo filtrar los resultados para una región:

jq -r '[.prefixes[] | select(.region=="us-east-1" and .service=="AMAZON").ip_prefix] - [.prefixes[] | select(.region=="us-east-1" and .service=="EC2").ip_prefix] | .[]' < ip-ranges.json

Python

En el siguiente script de python se muestra cómo obtener las direcciones IP que están en la lista AMAZON pero no en la lista EC2. Copie el script y guárdelo en un archivo denominado get_ips.py.

#!/usr/bin/env python import requests ip_ranges = requests.get('https://ip-ranges.amazonaws.com/ip-ranges.json').json()['prefixes'] amazon_ips = [item['ip_prefix'] for item in ip_ranges if item["service"] == "AMAZON"] ec2_ips = [item['ip_prefix'] for item in ip_ranges if item["service"] == "EC2"] amazon_ips_less_ec2=[] for ip in amazon_ips: if ip not in ec2_ips: amazon_ips_less_ec2.append(ip) for ip in amazon_ips_less_ec2: print(str(ip))

Puede ejecutar este script de la manera siguiente:

$ python ./get_ips.py 13.32.0.0/15 13.35.0.0/16 13.248.0.0/20 13.248.16.0/21 13.248.24.0/22 13.248.28.0/22 27.0.0.0/22 43.250.192.0/24 43.250.193.0/24 ...

Notificaciones de rangos de direcciones IP de AWS

Siempre que se produce un cambio en los rangos de direcciones IP de AWS, enviamos una notificación a los suscriptores del tema AmazonIpSpaceChanged. La carga contiene información en el formato siguiente:

{ "create-time":"yyyy-mm-ddThh:mm:ss+00:00", "synctoken":"0123456789", "md5":"6a45316e8bc9463c9e926d5d37836d33", "url":"https://ip-ranges.amazonaws.com/ip-ranges.json" }
create-time

La fecha y hora de creación.

Las notificaciones se pueden entregar de forma desordenada. Por lo tanto, se recomienda comprobar el las marcas de tiempo para saber cuál es el orden correcto.

synctoken

La fecha y hora de publicación en formato de tiempo Unix.

md5

Valor hash criptográfico del archivo ip-ranges.json archivo. Puede utilizar este valor para comprobar si el archivo descargado está dañado.

url

Ubicación del archivo ip-ranges.json.

Si desea que se le notifique cuando se produzca un cambio en los rangos de direcciones IP de AWS, puede suscribirse para recibir notificaciones mediante Amazon SNS.

Para suscribirse a las notificaciones de los rangos de direcciones IP de AWS
  1. Abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v3/home.

  2. En la barra de navegación, cambie la región a EE. UU. Este (Norte de Virginia), si es necesario. Debe seleccionar esta región porque las notificaciones de SNS a las que se va a suscribir se han creado en esa región.

  3. En el panel de navegación, seleccione Subscriptions.

  4. Seleccione Create subscription.

  5. En el cuadro de diálogo Create subscription (Crear suscripción), haga lo siguiente:

    1. En Topic ARN, copie el siguiente Nombre de recurso de Amazon (ARN):

      arn:aws:sns:us-east-1:806199016981:AmazonIpSpaceChanged
    2. En Protocol, elija el protocolo que desea utilizar (por ejemplo, Email).

    3. En Endpoint, escriba el punto de enlace donde desea recibir la notificación (por ejemplo, su dirección de correo electrónico).

    4. Elija Create subscription (Crear suscripción).

  6. Nos pondremos en contacto con usted en el punto de enlace especificado y le pediremos que confirme su suscripción. Por ejemplo, si ha especificado una dirección de correo electrónico, recibirá un mensaje de correo electrónico con la línea de asunto AWS Notification - Subscription Confirmation. Siga las instrucciones para confirmar la suscripción.

Las notificaciones están sujetas a la disponibilidad del punto de enlace. Por lo tanto, es conveniente revisar el archivo JSON periódicamente para asegurarse de disponer de los últimos rangos. Para obtener más información acerca de la fiabilidad de Amazon SNS, consulte http://aws.amazon.com/sns/faqs/#Reliability.

Si ya no desea recibir estas notificaciones, utilice el siguiente procedimiento para cancelar la suscripción.

Para cancelar la suscripción a las notificaciones de los rangos de direcciones IP de AWS
  1. Abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v3/home.

  2. En el panel de navegación, seleccione Subscriptions.

  3. Seleccione la casilla de verificación de la suscripción.

  4. Elija Actions, Delete subscriptions.

  5. Cuando se le pida confirmación, elija Delete (Eliminar).

Para obtener más información sobre Amazon SNS, consulte la Guía para desarrolladores de Amazon Simple Notification Service.

Notas de la versión

En la siguiente tabla se describen las actualizaciones de la sintaxis de ip-ranges.json. También añadimos nuevos códigos de región con cada lanzamiento de región.

Descripción Fecha de lanzamiento de la nueva versión
Se ha añadido el código de servicio MEDIA_PACKAGE_V2. 9 de mayo de 2023
Se ha añadido el código de servicio CLOUDFRONT_ORIGIN_FACING. 12 de octubre de 2021
Se ha añadido el código de servicio ROUTE53_RESOLVER. 24 de junio de 2021
Se ha añadido el código de servicio EBS. 12 de mayo de 2021
Se ha añadido el código de servicio KINESIS_VIDEO_STREAMS. 19 de noviembre de 2020
Se han añadido los códigos de servicio CHIME_MEETINGS y CHIME_VOICECONNECTOR. 19 de junio de 2020
Se ha añadido el código de servicio AMAZON_APPFLOW. 9 de junio de 2020
Añadida compatibilidad con el grupo de bordes de red. 7 de abril de 2020
Se ha añadido el código de servicio WORKSPACES_GATEWAYS. 30 de marzo de 2020
Se ha añadido el código de servicio ROUTE53_HEALTHCHECK_PUBLISHING. 30 de enero de 2020
Se ha añadido el código de servicio API_GATEWAY. 26 de septiembre de 2019
Se ha añadido el código de servicio EC2_INSTANCE_CONNECT. 26 de junio de 2019
Se ha añadido el código de servicio DYNAMODB. 25 de abril de 2019
Se ha añadido el código de servicio GLOBALACCELERATOR. 20 de diciembre de 2018
Se ha añadido el código de servicio AMAZON_CONNECT. 20 de junio de 2018
Se ha añadido el código de servicio CLOUD9. 20 de junio de 2018
Se ha añadido el código de servicio CODEBUILD. 19 de abril de 2018
Se ha añadido el código de servicio S3. 28 de febrero de 2017
Se ha añadido compatibilidad con intervalos de direcciones IPv6. 22 de agosto de 2016
Versión inicial 19 de noviembre de 2014

Más información