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.
Contenido
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 rangosCLOUDFRONT
yROUTE53
sonGLOBAL
.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. EspecifiqueAMAZON
para obtener todos los rangos de direcciones IP (lo que significa que cada subconjunto también está en el subconjuntoAMAZON
). Sin embargo, algunos rangos de direcciones IP solo están en el subconjuntoAMAZON
(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
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
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
-dd
Thh
: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
Abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v3/home
. -
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.
-
En el panel de navegación, seleccione Subscriptions.
-
Seleccione Create subscription.
-
En el cuadro de diálogo Create subscription (Crear suscripción), haga lo siguiente:
-
En Topic ARN, copie el siguiente Nombre de recurso de Amazon (ARN):
arn:aws:sns:us-east-1:806199016981:AmazonIpSpaceChanged
-
En Protocol, elija el protocolo que desea utilizar (por ejemplo,
Email
). -
En Endpoint, escriba el punto de enlace donde desea recibir la notificación (por ejemplo, su dirección de correo electrónico).
-
Elija Create subscription (Crear suscripción).
-
-
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
-
Abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v3/home
. -
En el panel de navegación, seleccione Subscriptions.
-
Seleccione la casilla de verificación de la suscripción.
-
Elija Actions, Delete subscriptions.
-
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
-
AMAZON_APPFLOW
: rangos de direcciones IP -
AMAZON_CONNECT
: configuración de la red -
CLOUDFRONT
: ubicaciones y rangos de direcciones IP de servidores de periferia de CloudFront -
DYNAMODB
: rangos de direcciones IP -
EC2_INSTANCE_CONNECT
: configuración de EC2 Instance Connect -
GLOBALACCELERATOR
: ubicación y rangos de direcciones IP de servidores de periferia de Global Accelerator -
ROUTE53
: rangos de direcciones IP de servidores de Amazon Route 53 -
ROUTE53_HEALTHCHECKS
: rangos de direcciones IP de servidores de Amazon Route 53 -
ROUTE53_HEALTHCHECKS_PUBLISHING
: rangos de direcciones IP de servidores de Amazon Route 53 -
WORKSPACES_GATEWAYS
: servidores de puerta de enlace PCoIP