Acessar APIs em VMs com endereços IP externos
Uma instância de máquina virtual (VM, na sigla em inglês) com um endereço IP externo atribuído à interface de rede poderá se conectar a serviços e APIs do Google se os requisitos de rede descritos nesta página forem atendidos. A conexão é feita no endereço IP externo da VM, mas o tráfego fica dentro do Google Cloud e não é enviado pela Internet pública.
Requisitos de rede
Você precisa atender aos seguintes requisitos para acessar serviços e APIs do Google de uma VM com um endereço IP externo:
- É necessário ativar as APIs do Google que você precisa usar no console do Google Cloud, na página de APIs e serviços.
Para se conectar aos serviços e às APIs do Google usando o IPv6, você precisa atender a estes dois requisitos:
A VM precisa ser configurada com um intervalo de endereços IPv6 externos
/96
.O software em execução na VM precisa enviar pacotes com origens que correspondam a um dos endereços IPv6 desse intervalo.
- Dependendo da configuração escolhida, pode ser necessário atualizar entradas DNS, rotas e regras de firewall. Para mais informações, consulte o Resumo das opções de configuração.
Resumo das opções de configuração
A tabela a seguir resume as diferentes maneiras de configurar o Acesso privado do Google. Para informações mais detalhadas sobre a configuração, consulte Configuração de rede.
Opção de domínio | Configuração do DNS | Configuração de roteamento | Configuração do firewall |
---|---|---|---|
Domínios padrão | Nenhuma configuração de DNS especial é necessária. | Verifique se a rede VPC pode rotear o tráfego para os intervalos de endereços IP usados pelas APIs e pelos serviços do Google.
|
Verifique se suas regras de firewall permitem o envio da saída aos intervalos de endereços IP usados pelas APIs e pelos serviços do Google. A regra de firewall de permissão de saída padrão vai permitir esse tráfego, se não houver uma regra de prioridade mais alta que o bloqueie. |
private.googleapis.com
|
Configure registros DNS em uma zona DNS particular para enviar solicitações aos seguintes endereços IP: Para o tráfego IPv4:
Para o tráfego IPv6:
|
Verifique se a rede VPC tem rotas para os seguintes intervalos de IP: Para o tráfego IPv4:
Para o tráfego IPv6:
|
Verifique se suas regras de firewall permitem o envio da saída aos seguintes intervalos de IP: Para o tráfego IPv4:
Para o tráfego IPv6:
|
restricted.googleapis.com
|
Configure os registros DNS para enviar solicitações aos seguintes endereços IP: Para o tráfego IPv4:
Para o tráfego IPv6:
|
Verifique se a rede VPC tem rotas para os seguintes intervalos de IP: Para o tráfego IPv4:
Para o tráfego IPv6:
|
Verifique se suas regras de firewall permitem o envio da saída aos seguintes intervalos de IP: Para o tráfego IPv4:
Para o tráfego IPv6:
|
Configuração de rede
Nesta seção, descrevemos os requisitos básicos de rede que você precisa atender para que uma VM na rede VPC acesse serviços e APIs do Google.
Opções de domínio
Escolha o domínio que você quer usar para acessar as APIs e os serviços do Google.
Os endereços
IP virtuais (VIPs, na sigla em inglês) private.googleapis.com
e restricted.googleapis.com
são compatíveis apenas com protocolos HTTP por TCP (HTTP, HTTPS e HTTP/2). Todos os outros
protocolos, incluindo MQTT e ICMP, não são compatíveis.
Intervalos de domínios e endereços IP | Serviços compatíveis | Exemplo de uso |
---|---|---|
Domínios padrão. Todos os nomes de domínio para APIs e serviços do Google, exceto
Vários intervalos de endereços IP: é possível determinar um conjunto de intervalos de IP que contenha os possíveis endereços usados pelos domínios padrão consultando os endereços IP de domínios padrão. |
Permite o acesso da API à maioria das APIs e serviços do Google, sejam ou não compatíveis com o VPC Service Controls. Inclui acesso da API ao Google Maps, Google Ads e Google Cloud. Inclui aplicativos da Web do Google Workspace, como o Gmail, o Documentos Google e outros aplicativos da Web. |
Os domínios padrão são usados quando você não configura registros DNS para |
|
Permite o acesso da API à maioria das APIs e serviços do Google, sejam ou não compatíveis com o VPC Service Controls. Inclui acesso da API ao Google Maps, Google Ads, Google Cloud e à maioria das outras APIs do Google, incluindo a lista a seguir. Não é compatível com aplicativos da Web do Google Workspace, como o Gmail e o Documentos Google. Não é compatível com sites interativos. Nomes de domínio que correspondem:
|
Use Escolha
|
|
Permite o acesso da API a APIs e serviços do Google compatíveis com o VPC Service Controls. Bloqueia o acesso a APIs e serviços do Google que não são compatíveis com o VPC Service Controls. Não é compatível com APIs do Google Workspace ou aplicativos da Web do Google Workspace, como o Gmail e o Documentos Google. |
Use Escolha O domínio |
restricted.googleapis.com
, porque oferece redução de riscos adicionais para
vazamento de dados. O uso de restricted.googleapis.com
nega acesso a APIs e serviços
do Google que não são compatíveis com o VPC Service Controls. Consulte Como configurar a conectividade privada na documentação do VPC Service Controls para mais detalhes.
Suporte a IPv6 para private.googleapis.com
e restricted.googleapis.com
Os intervalos de endereços IPv6 a seguir podem ser usados para direcionar o tráfego de clientes IPv6 para APIs e serviços do Google:
private.googleapis.com
:2600:2d00:0002:2000::/64
restricted.googleapis.com
:2600:2d00:0002:1000::/64
Considere configurar os endereços IPv6 se você quiser usar o domínio private.googleapis.com
ou restricted.googleapis.com
e tiver clientes que usam endereços IPv6. Os clientes IPv6 que também têm endereços IPv4 configurados podem
acessar as APIs e serviços do Google usando os endereços IPv4. Nem todos os serviços aceitam o tráfego
de clientes IPv6.
Configuração do DNS
Para conectividade com as APIs e os serviços do Google, é possível enviar
pacotes para os endereços IP associados ao VIP private.googleapis.com
ou
restricted.googleapis.com
. Para usar um VIP, configure o DNS para que as VMs
na rede VPC alcancem serviços usando os endereços VIP
em vez dos endereços IP públicos.
As seções a seguir descrevem como usar zonas DNS para enviar pacotes aos endereços IP associados ao VIP escolhido. Siga as instruções para todos os cenários que se aplicam a você:
- Se você usar serviços com nomes de domínio
*.googleapis.com
, consulte Configurar DNS paragoogleapis.com
. Se você usa serviços que tenham outros nomes de domínio, consulte Configurar DNS para outros domínios.
Por exemplo, se você usar o Google Kubernetes Engine (GKE), também vai precisar configurar
*.gcr.io
e*.pkg.dev
. Se você usar o Cloud Run, precisará configurar*.run.app
.Se você usar buckets do Cloud Storage e enviar solicitações para um nome de domínio personalizado do Cloud Storage, consulte Configurar o DNS para nomes de domínio personalizados do Cloud Storage.
Ao configurar registros DNS para os VIPs, use apenas os endereços IP
descritos nas etapas a seguir. Não combine os endereços dos
VIPs private.googleapis.com
e restricted.googleapis.com
. Isso pode
causar falhas intermitentes porque os serviços oferecidos são diferentes
com base no destino de um pacote.
Configurar o DNS para googleapis.com
Crie uma zona e registros do DNS para googleapis.com
:
- Crie uma zona do DNS particular para
googleapis.com
. Considere criar uma zona particular do Cloud DNS para essa finalidade. Na zona
googleapis.com
, crie os seguintes registros DNS paraprivate.googleapis.com
ourestricted.googleapis.com
, dependendo do domínio que você escolheu usar.Para obter
private.googleapis.com
:Crie um registro
A
paraprivate.googleapis.com
que aponta para os seguintes endereços IP:199.36.153.8
,199.36.153.9
,199.36.153.10
e199.36.153.11
.Para se conectar a APIs usando endereços IPv6, configure também um registro
AAAA
paraprivate.googleapis.com
apontando para2600:2d00:0002:2000::
.
Para obter
restricted.googleapis.com
:Crie um registro
A
pararestricted.googleapis.com
que aponta para os seguintes endereços IP:199.36.153.4
,199.36.153.5
,199.36.153.6
e199.36.153.7
.Para se conectar a APIs usando endereços IPv6, crie também um registro
AAAA
pararestricted.googleapis.com
apontando para2600:2d00:0002:1000::
.
Para criar registros DNS particulares no Cloud DNS, consulte Adicionar um registro.
Na zona
googleapis.com
, crie um registroCNAME
para*.googleapis.com
que direcione para o domínio que você configurou:private.googleapis.com
ourestricted.googleapis.com
.
Configurar o DNS para outros domínios
Algumas APIs e serviços do Google são fornecidos usando nomes de domínio adicionais,
incluindo *.gcr.io
, *.gstatic.com
, *.pkg.dev
, pki.goog
ou *.run.app
.
Consulte a tabela de intervalos de endereços IP e
domínios em Opções de domínio para determinar se os
serviços do domínio adicional podem ser acessados usando private.googleapis.com
ou
restricted.googleapis.com
. Em seguida, para cada um dos domínios adicionais:
Crie uma zona de DNS para
DOMAIN
(por exemplo,gcr.io
). Se você estiver usando o Cloud DNS, verifique se essa zona está localizada no mesmo projeto que a zona particulargoogleapis.com
.Nesta zona de DNS, crie os seguintes registros DNS particular para
private.googleapis.com
ourestricted.googleapis.com
, dependendo do domínio que você escolheu usar.Para obter
private.googleapis.com
:Crie um registro
A
paraDOMAIN
que aponta para os seguintes endereços IP:199.36.153.8
,199.36.153.9
,199.36.153.10
e199.36.153.11
.Para se conectar a APIs usando endereços IPv6, crie também um registro
AAAA
paraDOMAIN
apontando para2600:2d00:0002:2000::
.
Para obter
restricted.googleapis.com
:Crie um registro
A
paraDOMAIN
que aponta para os seguintes endereços IP:199.36.153.4
,199.36.153.5
,199.36.153.6
e199.36.153.7
.Para se conectar a APIs usando endereços IPv6, crie também um registro
AAAA
pararestricted.googleapis.com
apontando para2600:2d00:0002:1000::
.
Na zona
DOMAIN
, crie um registroCNAME
para*.DOMAIN
que aponte paraDOMAIN
. Por exemplo, crie um registroCNAME
para*.gcr.io
que aponte paragcr.io
.
Configurar o DNS para nomes de domínio personalizados do Cloud Storage
Se você usa buckets do Cloud Storage e enviar solicitações para um
nome de domínio personalizado do Cloud Storage,
a configuração de registros DNS do nome de domínio personalizado do Cloud Storage para apontar para
os endereços IP de private.googleapis.com
ou restricted.googleapis.com
não
será suficiente para permitir o acesso aos buckets do Cloud Storage.
Para enviar solicitações a um nome de domínio personalizado do Cloud Storage, também é preciso definir explicitamente
o cabeçalho do host e o SNI de TLS da solicitação HTTP como storage.googleapis.com
. Os
endereços IP private.googleapis.com
erestricted.googleapis.com
não aceitam nomes de host personalizados do Cloud Storage em cabeçalhos de host de solicitação HTTP e SNIs de TLS.
Opções de roteamento
A rede VPC precisa ter rotas apropriadas com os próximos saltos que são o gateway de Internet padrão. O Google Cloud não é compatível com o tráfego de roteamento para APIs e serviços do Google por meio de outras instâncias de VM ou próximos saltos personalizados. Embora sejam chamados de gateway de Internet padrão, os pacotes enviados das VMs na sua rede VPC para APIs e serviços do Google permanecem na rede do Google.
Se você selecionar os domínios padrão, suas instâncias de VM se conectarão a APIs e serviços do Google usando um subconjunto de endereços IP externos do Google. Esses endereços IP são roteados publicamente, mas o caminho de uma VM em uma rede VPC para esses endereços permanece na rede do Google.
O Google não divulga rotas na Internet para nenhum dos endereços IP usados pelos domínios
private.googleapis.com
ourestricted.googleapis.com
. Consequentemente, esses domínios só podem ser acessados por VMs em uma rede VPC ou sistemas locais conectados a uma rede VPC.
Se sua rede VPC contém uma rota padrão em que próximo salto seja o gateway de Internet padrão, é possível usar essa rota para acessar os serviços e as APIs do Google sem precisar criar rotas personalizadas. Consulte Roteamento com uma rota padrão para ver detalhes.
Se você substituiu uma rota padrão (destino 0.0.0.0/0
ou ::0/0
) por uma
rota personalizada em que o próximo salto não é o gateway de Internet padrão, é possível
atender ao requisitos de roteamento das APIs e dos serviços do Google usando o roteamento
personalizado.
Se a rede VPC não tiver uma rota padrão IPv6, a conectividade IPv6 com as APIs e os serviços do Google não estará disponível. Adicione uma rota padrão do IPv6 para permitir a conectividade do IPv6.
Como rotear com uma rota padrão
Cada rede VPC contém uma rota padrão IPv4 (0.0.0.0/0
)
quando ela é criada. Se você ativar endereços IPv6 externos em uma sub-rede, uma
rota padrão IPv6 gerada pelo sistema (::/0
) será adicionada a essa rede
VPC.
As rotas padrão fornecem um caminho para os endereços IP dos seguintes destinos:
Os domínios padrão.
private.googleapis.com
:199.36.153.8/30
e2600:2d00:0002:2000::/64
.restricted.googleapis.com
:199.36.153.4/30
e2600:2d00:0002:1000::/64
.
Para verificar a configuração de uma rota padrão em uma determinada rede, siga estas instruções.
Console
No Console do Google Cloud, acesse a página Rotas.
Filtre a lista de rotas para mostrar apenas as rotas da rede que você precisa inspecionar.
Procure uma rota com o destino
0.0.0.0/0
para o tráfego IPv4 ou::/0
para o tráfego IPv6 e em que o próximo salto seja gateway de Internet padrão.
gcloud
Use o seguinte comando gcloud
, substituindo NETWORK_NAME
pelo nome da rede a ser inspecionada:
gcloud compute routes list \ --filter="default-internet-gateway NETWORK_NAME"
Se você precisar criar uma rota IPv4 padrão de substituição, consulte Como adicionar uma rota estática.
Se você precisar criar uma rota IPv6 padrão de substituição, consulte Como adicionar uma rota padrão IPv6.
Roteamento personalizado
Como alternativa a uma rota padrão, é possível usar rotas estáticas personalizadas, cada uma com um destino mais específico e cada uma usando o próximo salto de gateway de Internet padrão. O número de rotas necessárias e os respectivos endereços IP de destino dependem do domínio escolhido.
- Domínios padrão: é preciso ter rotas para os intervalos de endereços IP das APIs e dos serviços do Google.
private.googleapis.com
:199.36.153.8/30
e2600:2d00:0002:2000::/64
restricted.googleapis.com
:199.36.153.4/30
e2600:2d00:0002:1000::/64
Além disso, recomendamos que você adicione rotas para 34.126.0.0/18
e 2001:4860:8040::/42
. Para mais informações, consulte o resumo das
opções de configuração.
Para verificar a configuração de rotas personalizadas para APIs e serviços do Google em uma determinada rede, siga estas instruções.
Console
No Console do Google Cloud, acesse a página Rotas.
Use o campo de texto Filtrar tabela para filtrar a lista de rotas usando os critérios a seguir, substituindo
NETWORK_NAME
pelo nome da sua rede VPC.- Rede:
NETWORK_NAME
- Tipo do próximo salto:
default internet gateway
- Rede:
Observe a coluna Intervalo de IP de destino de cada rota. Se você escolheu os domínios padrão, verifique se há várias rotas estáticas personalizadas, uma para cada intervalo de endereços IP usado pelo domínio padrão. Se você escolheu
private.googleapis.com
ourestricted.googleapis.com
, procure o intervalo de IP desse domínio.
gcloud
Use o seguinte comando gcloud
, substituindo NETWORK_NAME
pelo nome da rede a ser inspecionada:
gcloud compute routes list \ --filter="default-internet-gateway NETWORK_NAME"
As rotas são listadas no formato de tabela, a menos que você personalize o comando com a
sinalização --format
. Procure na coluna DEST_RANGE
o destino de cada rota. Se você escolheu os domínios padrão, verifique se há várias rotas estáticas personalizadas, uma para cada intervalo de endereços IP usado pelo domínio padrão. Se você escolheu private.googleapis.com
ou restricted.googleapis.com
, procure o intervalo de IP desse domínio.
Se precisar criar rotas, consulte Como adicionar uma rota estática.
Configuração do firewall
A configuração do firewall da rede VPC precisa permitir o acesso de VMs aos endereços IP usados pelas APIs e serviços do Google. A regra allow egress
implícita atende a esse requisito.
Em algumas configurações de firewall, é preciso criar regras de permissão de saída específicas.
Por exemplo, suponha que você tenha criado uma regra de negação de saída que bloqueia o tráfego para
todos os destinos (0.0.0.0
para IPv4 ou ::/0
para IPv6). Nesse caso, é preciso
criar uma regra de firewall de permissão de saída com prioridade maior do que a regra de negação de saída
para cada intervalo de endereços IP usado pelo domínio escolhido para
serviços e APIs do Google.
- Domínios padrão: todos os intervalos de endereços IP de APIs e serviços do Google.
private.googleapis.com
:199.36.153.8/30
e2600:2d00:0002:2000::/64
restricted.googleapis.com
:199.36.153.4/30
e2600:2d00:0002:1000::/64
Além disso, recomendamos que você inclua 34.126.0.0/18
e
2001:4860:8040::/42
na regra de firewall de permissão de saída. Para mais
informações, consulte o resumo das opções de configuração.
Para criar regras de firewall, consulte Como criar regras de firewall. É possível limitar as VMs às quais as regras de firewall se aplicam ao definir o destino de cada regra de permissão de saída.
Endereços IP para domínios padrão
Nesta seção, descrevemos como criar uma lista de intervalos de IPs de domínio padrão usados por
APIs e serviços do Google, como *.googleapis.com
e *.gcr.io
. Eles são alocados de forma dinâmica e alterados com frequência. Portanto, não é possível definir intervalos de IP específicos para serviços ou APIs individuais. Para manter uma lista precisa, configure a automação para executar o script todos os
dias. Para alternativas para manter uma lista de intervalos de endereços IP, use
o private.googleapis.com VIP
ou o Private Service Connect.
O Google publica a lista completa de intervalos de IP que disponibiliza para usuários na Internet em goog.json.
O Google também publica uma lista de intervalos de endereços IP externos globais e regionais disponíveis para os recursos do Google Cloud dos clientes em cloud.json.
Os endereços IP usados pelos domínios padrão para APIs e serviços do Google se encaixam na lista de intervalos calculados removendo todos os intervalos em cloud.json
daqueles em goog.json
. Essas listas são atualizadas com frequência.
É possível usar o script Python a seguir para criar uma lista de intervalos de endereços IP que incluem aqueles usados pelos domínios padrão para APIs e serviços do Google.
Para mais informações sobre como executar esse script, consulte Como executar.