Configure serviços privados apenas para utilização interna

Esta página mostra a configuração necessária para expor um serviço do ambiente flexível do App Engine apenas no respetivo endereço IP interno.

Por predefinição, os serviços do ambiente flexível recebem um endereço IP interno e um endereço IP externo efémero quando são implementados pela primeira vez. O endereço IP externo efémero permite que o seu serviço envie pedidos para serviços do App Engine com domínios personalizados e recursos na Internet. Os endereços IP externos efémeros incorrem em custos.

Se o seu serviço não exigir um endereço IP externo, pode impedir que o serviço envie pedidos a recursos na Internet e reduzir os custos limitando o serviço à utilização apenas do respetivo endereço IP interno. Isto não impede o seu serviço de receber pedidos da Internet ou dos serviços do App Engine com domínios personalizados, porque o nome do domínio totalmente qualificado do seu serviço continua visível externamente.

Limitações

A desativação de endereços IP externos efémeros tem as seguintes limitações:

  • Serviços com domínios personalizados: para enviar pedidos a serviços do App Engine com domínios personalizados, tem de configurar o Cloud NAT.
  • Recursos externos: para enviar pedidos a recursos externos, tem de configurar o Cloud NAT.
  • Dependência do acesso privado à Google: as instâncias com o modo IP definido como internal requerem acesso privado à Google na sub-rede de destino.
  • Redes antigas: as redes antigas não podem usar o acesso privado à Google e, por isso, não podem desativar os endereços IP externos efémeros.

Antes de começar

Para implementar apps do ambiente flexível sem endereços IP externos, tem de ativar o acesso privado à Google na sub-rede de destino.

Prepare a sua rede de VPC partilhada

Se usar a VPC partilhada, siga estes passos para preparar a sua rede de VPC partilhada para configuração adicional.

  1. Confirme que tem uma rota compatível com o acesso privado do Google. Normalmente, a rota predefinida de uma rede é compatível com o acesso privado à Google. Para outras rotas, confirme que a rota está configurada da seguinte forma.

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

    Substitua o seguinte:

    • SHARED_VPC_NETWORK_NAME: o nome da sua rede de VPC partilhada.
    • INSTANCE_TAGS: se não usar etiquetas de instância, não especifique nada neste campo. Se usar etiquetas de instância, inclua aef-instances na sua lista de etiquetas de instância.
    • DEFAULT_INTERNET_GATEWAY: o gateway da Internet predefinido.

    Para saber mais sobre as rotas compatíveis para o acesso privado à Google, consulte a documentação do acesso privado à Google sobre as opções de encaminhamento.

  2. Verifique se tem uma regra de firewall compatível com o acesso privado do Google. A regra de firewall tem de ser configurada da seguinte forma.

    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 o seguinte:

    • SHARED_VPC_NETWORK_NAME: o nome da sua rede de VPC partilhada.
    • INSTANCE_TAGS: se não usar etiquetas de instância, não especifique nada neste campo. Se usar etiquetas de instância, inclua aef-instances na sua lista de etiquetas de instância.

    Para saber mais acerca das regras de firewall compatíveis com o acesso privado à Google, consulte a documentação do acesso privado à Google sobre a configuração da firewall.

Configure o seu serviço para usar apenas o respetivo endereço IP interno

  1. Atualize a CLI Google Cloud. Isto garante que está a usar uma versão da CLI gcloud que suporta endereços IP privados para apps do ambiente flexível.

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

    • Se o seu ficheiro app.yaml já tiver uma secção network, adicione a seguinte linha à secção network:

      instance_ip_mode: internal

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

      network:
       instance_ip_mode: internal

    Guarde estas alterações.

  3. Implemente o serviço.

    gcloud beta app deploy
  4. Valide a configuração verificando a página Instâncias da Google Cloud consola.

    Aceda a Instâncias

    Desloque a página para baixo até à tabela Instâncias (abaixo do gráfico Resumo). Na coluna IP externo, confirme que não existe nenhum endereço IP indicado. A ausência de um endereço IP nesta coluna significa que a sua instância não tem um endereço IP externo. Embora este campo esteja vazio, a sua instância continua a ter um endereço IP interno.

Envie pedidos externos sem um endereço IP externo

Se o seu serviço enviar pedidos para a Internet, mas quiser limitá-lo à utilização apenas do respetivo endereço IP interno, pode usar o Cloud NAT para criar um gateway. O seu serviço pode enviar pedidos externos através do gateway Cloud NAT sem usar os endereços IP externos efémeros predefinidos.

  1. Siga os passos na secção Configure o seu serviço para usar apenas o respetivo endereço IP interno.

  2. Siga os passos para configurar o Cloud NAT.

Para saber mais sobre esta abordagem, consulte a documentação do Cloud Architecture Center sobre a implementação do Cloud NAT para obtenção.