Desativar endereços IP externos temporários

Nesta página, você encontrará a configuração necessária para expor um serviço do ambiente flexível do App Engine apenas no endereço IP interno.

Por padrão, os serviços do ambiente flexível recebem um endereço IP interno e um endereço IP externo temporário quando são implantados pela primeira vez. O endereço IP externo temporário permite que o serviço envie solicitações aos serviços do App Engine com domínios personalizados e recursos na Internet. Os endereços IP externos temporários geram custos.

Se o serviço não exigir um endereço IP externo, será possível impedir que o serviço envie solicitações a recursos na Internet e reduzir custos, limitando o serviço a usar apenas o endereço IP interno. Isso não impede que o serviço receba solicitações da Internet ou de serviços do App Engine com domínios personalizados porque o nome de domínio totalmente qualificado do serviço ainda é visível externamente.

Limitações

A desativação dos endereços IP externos temporários tem as seguintes limitações:

  • SSH: o comando gcloud app instances ssh não é compatível com instâncias com o modo IP definido como internal.
  • Serviços com domínios personalizados: para enviar solicitações a serviços do App Engine com domínios personalizados, você precisa configurar o Cloud NAT.
  • Recursos externos: para enviar solicitações a recursos externos, você precisa configurar o Cloud NAT.
  • Dependência do Acesso privado do Google: as instâncias com o modo IP definido como internal exigem o Acesso privado do Google na sub-rede de destino.
  • Redes legadas: redes legadas não podem usar o Acesso privado do Google e, portanto, não podem desativar os endereços IP externos temporários.

Antes de começar

Para implantar apps de ambiente flexível sem endereços IP externos, você precisa ativar o Acesso privado do Google na sub-rede de destino.

Preparar a rede VPC compartilhada

Se você usa a VPC compartilhada, siga estas etapas para preparar a rede VPC compartilhada.

  1. Verifique se você tem uma rota compatível com o Acesso privado do Google. Normalmente, a rota padrão de uma rede é compatível com o Acesso privado do Google. Para outras rotas, confirme se a rota está configurada da seguinte maneira.

    Network: SHARED_VPC_NETWORK_NAME
    Destination IP address range: 0.0.0.0/0
    Instance tags: INSTANCE_TAGS
    Next hop: DEFAULT_INTERNET_GATEWAY
    

    Substitua:

    • SHARED_VPC_NETWORK_NAME: o nome da sua rede VPC compartilhada.
    • INSTANCE_TAGS: se você não usar tags de instância, não especifique nada nesse campo. Se você usar tags de instância, inclua aef-instances na sua lista.
    • DEFAULT_INTERNET_GATEWAY: o gateway de Internet padrão.

    Para saber mais sobre rotas compatíveis com o Acesso privado do Google, consulte a documentação do Acesso privado do Google sobre opções de roteamento.

  2. Verifique se você tem uma regra de firewall compatível com o Acesso privado do Google. Configure a regra de firewall da seguinte maneira:

    Network: SHARED_VPC_NETWORK_NAME
    Destination IP address range: 0.0.0.0/0
    Destination filter: IP ranges
    Direction of traffic: Egress
    Attach on match: Allow
    Instance tags: INSTANCE_TAGS
    

    Substitua:

    • SHARED_VPC_NETWORK_NAME: o nome da sua rede VPC compartilhada.
    • INSTANCE_TAGS: se você não usar tags de instância, não especifique nada nesse campo. Se você usar tags de instância, inclua aef-instances na sua lista.

    Para saber mais sobre regras de firewall compatíveis com o Acesso privado do Google, consulte a documentação do Acesso privado do Google sobre configuração de firewall.

Configurar o serviço para usar somente o endereço IP interno

  1. Atualize a Google Cloud CLI. Isso garante que você use uma versão da CLI gcloud compatível com endereços IP particulares para apps de ambiente flexível.

    gcloud components update
    
  2. No arquivo app.yaml, adicione o campo instance_ip_mode à seção network e defina-o como internal.

    • Se o arquivo app.yaml já tiver uma seção network, adicione a seguinte linha dentro da seção network:

      instance_ip_mode: internal
      

    • Se o arquivo app.yaml não tiver uma seção network, crie a seção e especifique o modo de IP da instância adicionando as seguintes linhas:

      network:
       instance_ip_mode: internal
      

    Salve as alterações.

  3. Implante o serviço.

    gcloud beta app deploy
    
  4. Para verificar a configuração, consulte a página "Instâncias" do Console do Google Cloud.

    Acesse "Instâncias"

    Role para baixo até a tabela Instâncias (abaixo do gráfico Resumo). Na coluna IP da VM, confirme se não há endereço IP listado. A ausência de um endereço IP nessa coluna significa que sua instância não tem um endereço IP externo. Mesmo que esse campo esteja vazio, a instância ainda tem um endereço IP interno.

Enviar solicitações externas sem um endereço IP externo

Se o serviço enviar solicitações à Internet, mas você quiser limitá-lo apenas ao endereço IP interno, use o Cloud NAT para criar um gateway. Seu serviço pode enviar solicitações externas por meio do gateway do Cloud NAT sem usar os endereços IP externos temporários padrão.

  1. Siga as etapas na seção Configurar o serviço para usar somente o endereço IP interno dele.

  2. Siga as etapas para configurar o Cloud NAT.

Para saber mais sobre essa abordagem, consulte a documentação do Cloud Architecture Center em Como implantar o Cloud NAT para buscar.