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:
- 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
internalexigem 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.
- Para saber mais sobre o Acesso privado do Google, consulte a Visão geral.
- Para instruções passo a passo de configuração, consulte Como ativar o Acesso privado do Google.
Preparar a rede VPC compartilhada
Se você usa a VPC compartilhada, siga estas etapas para preparar a rede VPC compartilhada.
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, incluaaef-instancesna 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.
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, incluaaef-instancesna 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
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
No arquivo
app.yaml, adicione o campoinstance_ip_modeà seçãonetworke defina-o comointernal.Se o arquivo
app.yamljá tiver uma seçãonetwork, adicione a seguinte linha dentro da seçãonetwork:instance_ip_mode: internalSe o arquivo
app.yamlnão tiver uma seçãonetwork, 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.
Implante o serviço.
gcloud beta app deploy
Para verificar a configuração, consulte a página "Instâncias" do console do Google Cloud .
Role para baixo até a tabela Instâncias (abaixo do gráfico Resumo). Na coluna IP externo, 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 de saída pelo gateway do Cloud NAT usando endereços IP externo estáticos reservados em vez de endereços IP externo temporários padrão.
Configure o serviço para usar instance_ip_mode: internal com o Cloud NAT e endereços IP externo estáticos dedicados nas seguintes situações:
- Você se conecta a um banco de dados ou API externa que exige uma lista de permissões de endereço IP ou uma regra de firewall.
- Você se conecta a endpoints externos sensíveis à reputação, como gateways de pagamento, bancos de dados hospedados ou APIs de parceiros protegidas por firewalls de aplicativos da Web (WAFs) de terceiros. O tráfego anterior ou ruidoso em pools de endereços IP temporários compartilhados pode degradar a reputação do IP e fazer com que WAFs externos bloqueiem ou limitem suas solicitações com erros
HTTP 403ou tempos limite de conexão. - Você executa verificações de rede autorizadas, enumeração de portas, impressão digital de host, sondagem de vulnerabilidades, extração de dados da Web ou cargas de trabalho de teste de carga.
Para rotear solicitações de saída da Internet pelo Cloud NAT:
Siga as etapas na seção Configurar o serviço para usar somente o endereço IP interno dele.
Siga as etapas para configurar o Cloud NAT e atribuir endereços IP externo estáticos reservados ao gateway.
Se o serviço for escalonado para muitas instâncias ou abrir muitas conexões simultâneas, como durante a verificação de rede autorizada, atribua vários endereços IP estáticos ao Cloud NAT. Também é possível aumentar o número mínimo de portas por instância ou ativar a alocação dinâmica de portas para evitar o esgotamento de portas. Saiba mais sobre como os gateways do Cloud NAT usam endereços IP e portas.
Para saber mais sobre essa abordagem, consulte a documentação do Cloud Architecture Center em Como implantar o Cloud NAT para buscar.