Intervalos de endereço IP da AWS - AWS General Reference

Se fornecermos uma tradução da versão em inglês do guia, a versão em inglês prevalecerá caso haja qualquer conflito entre as versões. A tradução é fornecida com o uso de tradução por máquina.

Intervalos de endereço IP da AWS

O Amazon Web Services (AWS) publica seus intervalos de endereço IP atuais em formato JSON. Para visualizar os intervalos atuais, baixe o arquivo .json. Para manter o histórico, salve versões sucessivas do arquivo .json em seu sistema. Para determinar se eles foram alterados desde a última vez que você salvou o arquivo, marque a hora da publicação no arquivo atual e compare-a com a hora da publicação no último arquivo que você salvou.

Baixar

Faça download de ip-ranges.json.

Se você acessar esse arquivo programaticamente, é sua responsabilidade garantir que o aplicativo faz download do arquivo somente após a verificação bem-sucedida do certificado TLS apresentado pelo servidor.

Sintaxe

A sintaxe de ip-ranges.json é como segue.

{ "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

A hora da publicação em formato de horário epoch Unix.

Tipo: string

Exemplo: "syncToken": "1416435608"

createDate

A data e hora da publicação.

Tipo: string

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

prefixos

Os prefixos IP para os intervalos de endereços IPv4.

Tipo: matriz

ipv6_prefixes

Os prefixos IP para os intervalos de endereços IPv6.

Tipo: matriz

ip_prefix

O intervalo de endereços IPv4 públicos, na notação CIDR. Observe que a AWS pode publicar um prefixo em intervalos mais específicos. Por exemplo, o prefixo 96.127.0.0/17 no arquivo pode ser publicado como 96.127.0.0/21, 96.127.8.0/21, 96.127.32.0/19 e 96.127.64.0/18.

Tipo: string

Exemplo: "ip_prefix": "198.51.100.2/24"

ipv6_prefix

O intervalo de endereços IPv6 públicos, na notação CIDR. Observe que a AWS pode publicar um prefixo em intervalos mais específicos.

Tipo: string

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

network_border_group

O nome de um grupo de borda de rede, que é um conjunto exclusivo de zonas de disponibilidade ou de zonas locais de onde a AWS anuncia endereços IP.

Tipo: string

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

region

A Região da AWS ou GLOBAL para pontos de presença. Os intervalos CLOUDFRONT e ROUTE53 são GLOBAL.

Tipo: string

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

Exemplo: "region": "us-east-1"

serviço

O subconjunto de intervalos de endereços IP. Os endereços listados para a API_GATEWAY são apenas de saída. Especifique AMAZON para obter todos os intervalos de endereços IP (o que significa que cada subconjunto também está no subconjunto AMAZON). No entanto, alguns intervalos de endereços IP estão apenas no subconjunto AMAZON (o que significa que eles também não estão disponíveis em outro subconjunto).

Tipo: string

Valores válidos: AMAZON | AMAZON_APPFLOW | AMAZON_CONNECT | API_GATEWAY | CHIME_MEETINGS | CHIME_VOICECONNECTOR | CLOUD9 | CLOUDFRONT | CODEBUILD | DYNAMODB | EC2 | EC2_INSTANCE_CONNECT | GLOBALACCELERATOR | ROUTE53 | ROUTE53_HEALTHCHECKS | S3 | WORKSPACES_GATEWAYS

Exemplo: "service": "AMAZON"

Filtragem do arquivo JSON

Você pode fazer o download de uma ferramenta de linha de comando para ajudá-lo a filtrar as informações para apenas o que está procurando.

Windows

O AWS Tools para Windows PowerShell inclui um cmdlet, Get-AWSPublicIpAddressRange, para analisar este arquivo JSON. Os exemplos a seguir demonstram sua utilização. Para obter mais informações, consulte Consultar os intervalos de endereços IP públicos da AWS e Get-AWSPublicIpAddressRange.

exemplo 1. Obter a data de criação

PS C:\> Get-AWSPublicIpAddressRange -OutputPublicationDate Wednesday, August 22, 2018 9:22:35 PM

exemplo 2. Obter as informações de uma Região 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 ...

exemplo 3. Obter todos os endereços 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

exemplo 4. Obter todos os endereços 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 ...

exemplo 5. Obter todos os endereços IPv6

PS C:\> Get-AWSPublicIpAddressRange | where {$_.IpAddressFormat -eq "Ipv6"} | select IpPrefix IpPrefix -------- 2a05:d07c:2000::/40 2a05:d000:8000::/40 2406:dafe:2000::/40 ...

exemplo 6. Obter todos os endereços IP de um serviço 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

Os comandos de exemplo a seguir usam a ferramenta jq para analisar uma cópia local do arquivo JSON.

exemplo 1. Obter a data de criação

$ jq .createDate < ip-ranges.json "2016-02-18-17-22-15"

exemplo 2. Obter as informações de uma Região 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" }, ...

exemplo 3. Obter todos os endereços IPv4

$ jq -r '.prefixes | .[].ip_prefix' < ip-ranges.json 23.20.0.0/14 27.0.0.0/22 43.250.192.0/24 ...

exemplo 4. Obter todos os endereços IPv6

$ jq -r '.ipv6_prefixes | .[].ipv6_prefix' < ip-ranges.json 2a05:d07c:2000::/40 2a05:d000:8000::/40 2406:dafe:2000::/40 ...

exemplo 5. Obter todos os endereços IPv4 de um serviço 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 ...

exemplo 6. Obter todos os endereços IPv4 de um serviço específico em uma Região específica

$ jq -r '.prefixes[] | select(.region=="us-east-1") | select(.service=="CODEBUILD") | .ip_prefix' < ip-ranges.json 34.228.4.208/28

exemplo 7. Obter informações para determinado grupo de borda de rede

$ jq -r '.prefixes[] | select(.region=="us-west-2") | select(.network_border_group=="us-west-2-lax-1") | .ip_prefix' < ip-ranges.json us-west-2-lax-1

Como implementar o controle de saída

Para permitir que uma instância acesse apenas os serviços da AWS, crie um security group com regras que permitam o tráfego de saída para os blocos CIDR na lista AMAZON, menos os blocos CIDR que também estão na lista EC2. Endereços IP na lista EC2 podem ser atribuídos a instâncias do EC2.

Windows PowerShell

O exemplo do PowerShell a seguir mostra como obter os endereços IP que estão na lista AMAZON, mas não na lista EC2. Copie e salve o script em um arquivo nomeado 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 } }

Você pode executar esse script da seguinte maneira:

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

O exemplo a seguir mostra como obter os endereços IP que estão na lista AMAZON, mas não na lista EC2 para todas as Regiões:

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 ...

O exemplo a seguir mostra como filtrar os resultados para uma Região:

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

O exemplo do script Python a seguir mostra como obter os endereços IP que estão na lista AMAZON, mas não na lista EC2. Copie e salve o script em um arquivo nomeado 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))

Você pode executar esse script da seguinte maneira:

$ 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 ...

Notificações de intervalos de endereços IP da AWS

Sempre que houver uma alteração em intervalos de endereços IP da AWS, nós podemos enviar notificações para os assinantes do tópico AmazonIpSpaceChanged. A carga útil contém informações no seguinte formato:

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

A data e hora de criação.

As notificações podem ser entregues fora de ordem. Portanto, recomendamos que você verifique as marcas de data/hora para garantir a ordem correta.

synctoken

A hora da publicação em formato de horário epoch Unix.

md5

O valor de hash criptográfico do arquivo ip-ranges.json. Você pode usar esse valor para verificar se o arquivo baixado está corrompido.

url

A localização do arquivo ip-ranges.json.

Se deseja ser notificado sempre que houver uma alteração nos intervalos de endereços IP da AWS, você pode fazer a assinatura como segue para receber notificações usando Amazon SNS.

Para assinar as notificações de intervalo de endereço IP da AWS

  1. Abra o console do Amazon SNS em https://console.aws.amazon.com/sns/v3/home.

  2. Na barra de navegação, altere a região para Leste dos EUA (Norte da Virgínia), se necessário. Você deve selecionar esta Região porque as notificações do SNS que você está assinando foram criadas nesta Região.

  3. No painel de navegação, escolha Subscriptions.

  4. Escolha Create subscription (Criar assinatura).

  5. Na caixa de diálogo Criar assinatura, faça o seguinte:

    1. Para o ARN do tópico, copie o seguinte ARN (nome de recurso da Amazon):

      arn:aws:sns:us-east-1:806199016981:AmazonIpSpaceChanged
    2. Para o Protocolo, escolha o protocolo a ser usado (por exemplo, Email).

    3. Para o Endpoint, digite o endpoint no qual receber a notificação (por exemplo, seu endereço de e-mail).

    4. Selecione Criar assinatura.

  6. Você será contatado no endpoint especificado, pedindo que confirme sua assinatura. Por exemplo, se você tiver especificado um endereço de e-mail, receberá uma mensagem de e-mail com a linha de assunto AWS Notification - Subscription Confirmation. Siga as instruções para confirmar sua assinatura.

As notificações estão sujeitas à disponibilidade do endpoint. Portanto, você deve verificar o arquivo JSON periodicamente para garantir que tem os intervalos mais recentes. Para obter mais informações sobre a confiabilidade do Amazon SNS, consulte https://aws.amazon.com/sns/faqs/#Reliability.

Se não deseja mais receber essas notificações, use o procedimento a seguir para cancelar a assinatura.

Para cancelar a assinatura de notificações de intervalos de endereço IP da AWS

  1. Abra o console do Amazon SNS em https://console.aws.amazon.com/sns/v3/home.

  2. No painel de navegação, escolha Subscriptions.

  3. Marque a caixa de seleção da assinatura.

  4. Selecione Ações, Excluir assinaturas.

  5. Quando a confirmação for solicitada, escolha Excluir.

Para obter mais informações sobre o Amazon SNS, consulte o Guia do desenvolvedor do Amazon Simple Notification Service.

Notas de release

A tabela a seguir descreve as atualizações nos intervalos de endereços IP da AWS. Também adicionamos novos códigos de região com cada lançamento da região.

Descrição Data de lançamento
Adicionados os códigos de serviço CHIME_MEETINGS e CHIME_VOICECONNECTOR. 19 de junho de 2020
Adicionado o código de serviço AMAZON_APPFLOW. 9 de junho de 2020
Adicione suporte para o grupo de borda de rede. 7 de abril de 2020
Adicionado o código de serviço WORKSPACES_GATEWAYS. 30 de março de 2020
Adicionado o código de serviço API_GATEWAY. 26 de setembro de 2019
Adicionado o código de serviço EC2_INSTANCE_CONNECT. 26 de junho de 2019
Adicionado o código de serviço DYNAMODB. 25 de abril de 2019
Adicionado o código de serviço GLOBALACCELERATOR. 20 de dezembro de 2018
Adicionado o código de serviço AMAZON_CONNECT. 20 de junho de 2018
Adicionado o código de serviço CLOUD9. 20 de junho de 2018
Adicionado o código de serviço CODEBUILD. 19 de abril de 2018
Adicionado o código de serviço S3. 28 de fevereiro de 2017
Adicionado suporte para intervalos de endereços IPv6. 22 de agosto de 2016