Como configurar o Acesso privado do Google

O Acesso privado do Google permite que instâncias de VM com endereços IP internos (privados) apenas, e não externos, acessem os endereços IP públicos das APIs e serviços do Google. O endereço IP de origem do pacote pode ser o endereço IP interno principal da interface de rede ou qualquer endereço IP de alias atribuído à interface.

O Acesso privado do Google concede acesso a serviços de terceiros hospedados no App Engine assim como a APIs e serviços do Google. Isso permite que os serviços baseados no App Engine se comuniquem com suas VMs.

O Acesso privado do Google é ativado no nível da sub-rede. Quando ativadas, as instâncias na sub-rede que têm apenas endereços IP privados podem enviar tráfego para APIs e serviços do Google por meio da rota padrão (0.0.0.0/0), com um próximo salto para o gateway de Internet padrão.

O Acesso privado do Google permite o acesso a determinados serviços do Google Cloud por meio de instâncias de VM com apenas endereços IP internos. Para ver detalhes sobre o Acesso privado do Google e outras opções de acesso privado, consulte Opções de acesso privado para serviços.

Para visualizar as APIs e os serviços qualificados que podem ser usados com o Acesso privado do Google, consulte Serviços compatíveis na visão geral do Acesso privado do Google.

Especificações

Permissões

Proprietários de projetos, editores e membros do IAM com o papel administrador de rede podem criar ou atualizar sub-redes e atribuir endereços IP.

Para saber mais informações sobre papéis, leia a documentação sobre os papéis do IAM.

Logging

O Cloud Logging captura todas as solicitações de API feitas de instâncias de VM em sub-redes que tenham o Acesso privado do Google ativado. As entradas de registro identificam a origem da solicitação de API usando o IP privado da instância.

Configure o uso diário e os relatórios de lançamento mensal para serem salvos em um intervalo do Cloud Storage. Consulte a página Como ver relatórios de uso para mais detalhes.

Requisitos

O Acesso privado do Google tem os requisitos a seguir:

  • O Acesso privado do Google não ativa nenhuma API automaticamente. É necessário ativar as APIs do Google que você precisa usar por meio da página de serviços e APIs no Console do Google Cloud separadamente.

  • O Acesso privado do Google requer uma rede VPC. Redes VPC de modo automático e personalizado são compatíveis. Redes legadas não.

  • O Acesso privado do Google se aplica somente a instâncias que têm apenas endereços IP internos. Ativar ou desativar o Acesso privado do Google não afeta as instâncias com endereços IP externos.

  • Esse acesso é ativado por sub-rede, quando ela é criada ou editada posteriormente. Quando ativado para uma sub-rede, o Acesso privado do Google se aplica a instâncias de VM novas e atuais nessa sub-rede que não têm endereços IP externos.

  • O Acesso privado do Google requer uma rota para os endereços IP públicos usados pelas APIs e serviços do Google. A rota padrão fornece esse caminho. Consulte a seção "Roteamento" para ver mais detalhes.

Resolução de DNS para APIs e serviços

A resolução de DNS para domínios associados a APIs ou serviços do Google, incluindo *.googleapis.com e gcr.io, não muda quando o Acesso privado do Google é ativado para uma sub-rede. Os registros DNS de APIs e serviços do Google sempre apontam para endereços IP externos. O pool de endereços IP externos que eles usam está sujeito a alterações, mas pode ser determinado consultando _spf.google.com e os registros TXT aos quais ele faz referência.

Por exemplo:

    dig -t TXT _spf.google.com
    

O Acesso privado do Google funciona em conjunto com uma rota apropriada para permitir que as instâncias de VM com apenas endereços IP internos alcancem os endereços IP externos das APIs e serviços do Google. O Acesso privado do Google é compatível com APIs e serviços do Google contendo IPs externos de _spf.google.com, mas não com todos os IPs externos de _spf.google.com. Por exemplo, os IPs externos para smtp.gmail.com não são compatíveis.

Domínios específicos do Acesso privado do Google e endereços IP virtuais (VIPs)

Em vez de usar o conjunto padrão de endereços IP públicos, é possível configurar o DNS para mapear *.googleapis.com para um intervalo bem-definido. Para fazer isso, insira um registro CNAME que marque *.googleapis.com como um alias para um desses domínios fornecidos pelo Google:

VIPs e domínios Serviços compatíveis Exemplo de uso
restricted.googleapis.com
199.36.153.4/30
Permite o acesso de 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. Além disso, não é compatível com aplicativos da Web ou APIs do G Suite.
Use restricted.googleapis.com para disponibilizar apenas os serviços restritos do VPC Service Controls aos hosts na rede VPC ou na rede local.
private.googleapis.com
199.36.153.8/30
Permite o acesso de API à maioria das APIs e serviços do Google, independentemente de serem compatíveis com o VPC Service Controls. Além disso, inclui acesso de API ao Google Maps, Google Ads, Google Cloud Platform e à maioria das APIs do Google que têm nomes terminados em googleapis.com. Não é compatível com aplicativos da Web do G Suite. Use private.googleapis.com quando precisar acessar serviços e APIs do Google nas seguintes circunstâncias:
  • Você não está usando o VPC Service Controls.
  • Você está usando o VPC Service Controls, mas é necessário acessar os serviços que não são compatíveis com ele.

Roteamento

Como rotear com uma rota padrão

Em uma rede VPC típica, a principal finalidade da rota padrão é fornecer acesso à Internet para instâncias com endereços IP externos.

No entanto, o Acesso privado do Google usa a rota padrão para enviar tráfego para os endereços IP externos das APIs e serviços do Google de instâncias em sub-redes onde o Acesso privado do Google está ativado. Consulte a Visão geral de rotas para informações sobre como o roteamento funciona no Google Cloud.

Se você substituiu a rota padrão por uma rota estática personalizada com um destino de 0.0.0.0/0 e com um próximo salto que não é o gateway de Internet padrão, é necessário criar um conjunto de rotas personalizadas para atender ao requisito de roteamento para o Acesso privado do Google. Por exemplo, é necessário criar rotas personalizadas nas seguintes situações:

  • Quando você tiver uma rota estática personalizada para direcionar o tráfego destinado a 0.0.0.0/0 para um túnel do Cloud VPN ou para outra instância, como uma instância NAT.
  • Quando você usar um Cloud Router para aceitar uma rota dinâmica personalizada com um destino de 0.0.0.0/0.

Roteamento avançado

É possível criar um conjunto de rotas estáticas personalizadas para enviar tráfego aos endereços IP externos das APIs e serviços do Google. É necessário que o próximo salto para cada rota nesse conjunto seja o default Internet gateway, mas o destino de cada um deles é um intervalo de endereços IP exclusivo do conjunto de intervalos usados pelas APIs e serviços do Google. Para determinar esses intervalos de IP, consulte Resolução de DNS para APIs e serviços.

Como alternativa, é possível usar os endereços IP virtuais (VIP, na sigla em inglês) restricted.googleapis.com (199.36.153.4/30) ou private.googleapis.com (199.36.153.8/30) para criar uma rota estática personalizada que não precise de monitoramento contínuo. Normalmente, esses intervalos são usados com o VPC Service Controls e não são compatíveis com todas as APIs e serviços do Google. Consulte Nomes de domínio e VIPs para mais informações. Também será necessário criar uma zona privada gerenciada do Cloud DNS para googleapis.com com um registro A para o VIP escolhido ou nome de domínio do VIP, além de um registro CNAME para *.googleapis.com para o nome de domínio escolhido. Para mais informações, consulte Como configurar o Acesso privado do Google para hosts locais.

VPC Service Controls

Se quiser usar o VPC Service Controls junto com o Acesso privado do Google, consulte Como configurar a conectividade privada na documentação do VPC Service Controls.

Como verificar uma rota padrão

Para verificar a existência de uma rota padrão para uma determinada rede, use o Console do Cloud ou a ferramenta de linha de comando gcloud:

Console

  1. Acesse a página "Rotas" no Console do Google Cloud.
    Acessar a página "Rotas"
  2. Filtre a lista de rotas para mostrar apenas as rotas da rede que você precisa inspecionar.
  3. Procure uma rota que tenha o destino 0.0.0.0/0 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]"
    

Como criar rotas obrigatórias

Se for possível usar uma rota padrão para o Acesso privado do Google e houver necessidade de recriá-la, crie uma rota estática personalizada de substituição com os seguintes destino e próximo salto:

  • Destino: 0.0.0.0/0
  • Próximo salto: gateway de Internet padrão

Se não for possível usar uma rota padrão, crie várias rotas estáticas personalizadas para atender ao requisito de roteamento do Acesso privado do Google, em que cada rota tenha os seguintes destino e próximo salto:

Regras de firewall

Além de atender aos requisitos de roteamento, é necessário que as regras de firewall na sua rede permitam o acesso de VMs às APIs do Google e aos serviços do Google Cloud.

Para instâncias que usam o Acesso privado do Google, é necessário permitir o tráfego de saída dessas instâncias para as APIs e serviços do Google. Se você tiver uma regra de firewall que negue o tráfego de saída, aplique-a seletivamente a outras instâncias que não precisem do Acesso privado do Google ou substitua essa regra criando uma de prioridade mais alta para permitir tráfego para APIs e serviços do Google. Se você optar por criar uma regra de firewall de prioridade mais alta para permitir o tráfego para o Acesso privado do Google, considere as opções a seguir:

  • Crie uma regra de firewall que permita a saída para o intervalo de endereços 0.0.0.0/0, que indica que a saída pode ir para qualquer destino. Defina tags de destino na regra de firewall para aplicar essa regra apenas a instâncias que exigem o Acesso privado do Google. Use uma tag de origem ou conta de serviço nas instâncias. Criar uma regra que se aplique apenas a destinos específicos que não tenham endereços IP externos compensa o amplo intervalo de destino. Instâncias sem endereços IP externos não podem enviar pacotes fora da rede VPC. Veja os Requisitos de acesso à Internet para saber detalhes.
  • Se você permitir o tráfego do Acesso privado do Google com a criação de várias regras de firewall a fim de permitir a saída para destinos específicos, analise e atualize periodicamente essas regras para que elas incluam todos os intervalos de endereços IP possíveis usados pelas APIs e pelos serviços do Google. Consulte a seção Resolução de DNS para APIs e serviços para determinar esses intervalos de IP.

Etapas da configuração

Por padrão, o Acesso privado do Google não está ativado. É possível ativá-lo ao criar uma sub-rede, bem como ativá-lo ou desativá-lo ao editar uma sub-rede.

Como ativar o Acesso privado do Google

Siga estas etapas para ativar o Acesso privado do Google:

Console

  1. Acesse a página Redes VPC no Console do Google Cloud.
    Acessar a página “Redes VPC"
  2. Clique no nome da rede que contém a sub-rede para que você precisa ativar o Acesso privado do Google.
  3. Para uma sub-rede atual, faça o seguinte:
    1. Clique no nome da sub-rede. A página Detalhes da sub-rede é exibida.
    2. Clique em Editar.
    3. Na seção Acesso privado do Google , selecione Ativado.
    4. Clique em Salvar.
  4. Para uma sub-rede nova, faça o seguinte:
    1. Clique em Adicionar sub-rede.
    2. Especifique o Nome e a Região da nova sub-rede.
    3. Especifique o Intervalo de endereços IP da sub-rede. Esse intervalo não pode sobrepor nenhuma sub-rede na rede VPC atual ou em qualquer rede conectada por peering de rede VPC ou VPN.
    4. Se você quiser criar um intervalo secundário para essa sub-rede, clique em Criar um intervalo de IP secundário.
    5. Selecione Ativado na seção Acesso privado do Google.
    6. Clique em Adicionar.

gcloud

Para uma sub-rede atual:

  1. Determine o nome e a região da sub-rede. Para listar as sub-redes de uma rede específica, use o seguinte comando, substituindo [NETWORK-NAME] pelo nome da rede:

        gcloud compute networks subnets list --filter=[NETWORK-NAME]
        
  2. Execute o seguinte comando para ativar o Acesso privado do Google, substituindo [SUBNET-NAME] pelo nome da sub-rede e [REGION] pela região:

        gcloud compute networks subnets update [SUBNET-NAME] \
        --region [REGION] \
        --enable-private-ip-google-access
        
  3. Execute o seguinte comando para verificar se o Acesso privado do Google está ativado:

        gcloud compute networks subnets describe [SUBNET-NAME] \
        --region [REGION] \
        --format="get(privateIpGoogleAccess)"
        

Ao criar uma nova sub-rede, adicione o parâmetro --enable-private-ip-google-access. O exemplo a seguir cria uma nova sub-rede:

    gcloud compute networks subnets create [SUBNET-NAME] \
    --region [REGION] \
    --network [NETWORK] \
    --range [IP-RANGE] \
    --enable-private-ip-google-access
    

Em que:

  • [SUBNET-NAME] é o nome da sub-rede.;
  • [NETWORK] é o nome da rede VPC que conterá a sub-rede;
  • [IP-RANGE] é o intervalo de endereços IP principal da sub-rede;
  • [REGION] é a região da sub-rede.

Como desativar o Acesso privado do Google

Siga estas etapas para desativar o Acesso privado do Google para uma sub-rede:

Console

  1. Acesse a página Redes VPC no Console do Google Cloud.
    Acessar a página "Redes VPC"
  2. Clique no nome da rede que contém a sub-rede para que você precisa desativar o Acesso privado do Google.
  3. Clique no nome de uma sub-rede atual. A página Detalhes da sub-rede é exibida.
  4. Clique em Editar.
  5. Na seção Acesso privado do Google, selecione Desativado.
  6. Clique em Salvar.

gcloud

  1. Determine o nome e a região da sub-rede. Para listar as sub-redes de uma rede específica, use o seguinte comando, substituindo [NETWORK-NAME] pelo nome da rede:

        gcloud compute networks subnets list --filter=[NETWORK-NAME]
        
  2. Execute o seguinte comando para desativar o Acesso privado do Google, substituindo [SUBNET-NAME] pelo nome da sub-rede e [REGION] pela região:

        gcloud compute networks subnets update [SUBNET-NAME] \
        --region [REGION] \
        --no-enable-private-ip-google-access
        
  3. Execute o seguinte comando para verificar se o Acesso privado do Google está ativado:

        gcloud compute networks subnets describe [SUBNET-NAME] \
        --region [REGION] \
        --format="get(privateIpGoogleAccess)"
        

Como remover endereços IP externos de instâncias

Como o Acesso privado do Google é relevante apenas para instâncias sem endereços IP externos, talvez seja necessário modificar as instâncias em execução depois de ativar o Acesso privado do Google para uma sub-rede. Para remover um endereço IP externo de uma instância, consulte Como cancelar a atribuição de um endereço IP externo estático na documentação do Compute Engine.

Para mais informações sobre endereços IP de instâncias, consulte na documentação do Compute Engine Endereços IP.

A seguir