Configurar serviços particulares somente para uso interno
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
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
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.
Para saber mais sobre o Acesso privado do Google, consulte a Visão geral.
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,
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.
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
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.
gcloudcomponentsupdate
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.
Implante o serviço.
gcloudbetaappdeploy
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 externas por meio do
gateway do Cloud NAT sem usar os endereços IP externos temporários padrão.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-19 UTC."],[[["\u003cp\u003eThis guide outlines how to configure an App Engine flexible environment service to use only its internal IP address, thus preventing it from sending requests to resources on the internet and reducing costs associated with ephemeral external IP addresses.\u003c/p\u003e\n"],["\u003cp\u003eDisabling ephemeral external IP addresses requires enabling Private Google Access on the target subnetwork and has limitations, including the necessity to configure Cloud NAT for services with custom domains or those sending requests to external resources.\u003c/p\u003e\n"],["\u003cp\u003eTo prepare a Shared VPC network, it's essential to verify compatibility with Private Google Access by confirming the presence of a compatible default route and a firewall rule configured for egress traffic.\u003c/p\u003e\n"],["\u003cp\u003eConfiguring the service involves updating the Google Cloud CLI, adding the \u003ccode\u003einstance_ip_mode: internal\u003c/code\u003e line in the \u003ccode\u003enetwork\u003c/code\u003e section of the \u003ccode\u003eapp.yaml\u003c/code\u003e file, deploying the updated service, and verifying the absence of an external IP address on the Instances page in the Google Cloud console.\u003c/p\u003e\n"],["\u003cp\u003eServices limited to internal IPs needing to send requests to the internet can do so via setting up a Cloud NAT gateway, which acts as an intermediary allowing communication without the service utilizing an ephemeral external IP.\u003c/p\u003e\n"]]],[],null,["# Configure private internal-only services\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nThis page shows the required configuration for exposing an App Engine flexible environment\nservice only on its internal IP address.\n\nBy default, flexible environment services receive both an internal IP address\nand an ephemeral external IP address when they are first deployed. The\nephemeral external IP address allows your service to send requests to\nApp Engine services with custom domains, and resources on the internet.\nEphemeral external IP addresses incur [costs](/vpc/network-pricing#ipaddress).\n\nIf your service does not require an external IP address, you can prevent your\nservice from sending requests to resources on the internet and reduce costs by\nlimiting your service to using only its internal IP address. This does not\nprevent your service from receiving requests from the internet or\nApp Engine services with custom domains, because the fully qualified\ndomain name of your service is still externally visible.\n\nLimitations\n-----------\n\nDisabling ephemeral external IP addresses has the following limitations:\n\n- **Services with custom domains:** To send requests to App Engine services with custom domains you must [configure Cloud NAT](/nat/docs/set-up-manage-network-address-translation).\n- **External resources:** To send requests to external resources you must [configure Cloud NAT](/nat/docs/set-up-manage-network-address-translation).\n- **Private Google Access dependency:** Instances with IP mode set to `internal` require [Private Google Access](/vpc/docs/private-google-access#pga-supported) on the target subnetwork.\n- **Legacy networks:** [Legacy networks](/vpc/docs/legacy) cannot use Private Google Access, and thus cannot disable ephemeral external IP addresses.\n\nBefore you begin\n----------------\n\nTo deploy flexible environment apps without external IP addresses, you must\nenable Private Google Access on the target subnetwork.\n\n- To learn about Private Google Access, see the [Overview](/vpc/docs/private-google-access#pga-supported).\n- For step-by-step configuration instructions, see [Enabling Private Google Access](/vpc/docs/configure-private-google-access#enabling-pga).\n\n### Prepare your Shared VPC network\n\nIf you use Shared VPC, follow these steps to prepare your\nShared VPC network for further configuration.\n\n1. Verify that you have a route that is compatible with\n Private Google Access. Typically the\n [default route](/vpc/docs/routes#routingpacketsinternet) of a network is\n compatible with Private Google Access. For other routes, confirm that\n the route is configured as follows.\n\n ```sh\n Network: SHARED_VPC_NETWORK_NAME\n Destination IP address range: 0.0.0.0/0\n Instance tags: INSTANCE_TAGS\n Next hop: DEFAULT_INTERNET_GATEWAY\n ```\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eSHARED_VPC_NETWORK_NAME\u003c/var\u003e: The name of your Shared VPC network.\n - \u003cvar translate=\"no\"\u003eINSTANCE_TAGS\u003c/var\u003e: If you do not use any instance tags, do not specify anything in this field. If you do use instance tags, include `aef-instances` in your list of instance tags.\n - \u003cvar translate=\"no\"\u003eDEFAULT_INTERNET_GATEWAY\u003c/var\u003e: The default internet gateway.\n\n To learn more about compatible routes for Private Google Access, see\n the Private Google Access documentation on\n [routing options](/vpc/docs/configure-private-google-access#config-routing).\n2. Verify that you have a firewall rule that is compatible with\n Private Google Access. The firewall rule must be configured as\n follows.\n\n ```sh\n Network: SHARED_VPC_NETWORK_NAME\n Destination IP address range: 0.0.0.0/0\n Destination filter: IP ranges\n Direction of traffic: Egress\n Attach on match: Allow\n Instance tags: INSTANCE_TAGS\n ```\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eSHARED_VPC_NETWORK_NAME\u003c/var\u003e: The name of your Shared VPC network.\n - \u003cvar translate=\"no\"\u003eINSTANCE_TAGS\u003c/var\u003e: If you do not use any instance tags, do not specify anything in this field. If you do use instance tags, include `aef-instances` in your list of instance tags.\n\n To learn more about compatible firewall rules for\n Private Google Access, see the Private Google Access\n documentation on\n [firewall configuration](/vpc/docs/configure-private-google-access#config-firewall).\n\nConfigure your service to use only its internal IP address\n----------------------------------------------------------\n\n1. Update the Google Cloud CLI. This ensures that you are using a version of the\n gcloud CLI that supports private IP addresses for\n flexible environment apps.\n\n ```bash\n gcloud components update\n ```\n2. In your `app.yaml` file, add the `instance_ip_mode` field to the\n [`network` section](/appengine/docs/flexible/reference/app-yaml#network_settings)\n and set it to `internal`.\n\n - If your `app.yaml` file already has a `network` section, add the following\n line inside the `network` section:\n\n ```bash\n instance_ip_mode: internal\n ```\n\n \u003cbr /\u003e\n\n - If your `app.yaml` file doesn't have a `network` section, create the\n section and specify the instance IP mode by adding the following lines:\n\n ```bash\n network:\n instance_ip_mode: internal\n ```\n\n \u003cbr /\u003e\n\n Save these changes.\n3. Deploy the service.\n\n ```bash\n gcloud beta app deploy\n ```\n4. Verify configuration by checking the Instances page of the Google Cloud console.\n\n [Go to Instances](https://console.cloud.google.com/appengine/instances)\n\n Scroll down to the **Instances** table (below the **Summary** chart). In the\n **External IP** column, confirm that there is no IP address listed. The\n absence of an IP address in this column means that your instance has no\n external IP address. Even though this field is empty, your instance still has\n an internal IP address.\n\nSend external requests without an external IP address\n-----------------------------------------------------\n\nIf your service sends requests to the internet but you want to limit it to using\nonly its internal IP address, you can use [Cloud NAT](/nat/docs/overview) to\ncreate a gateway. Your service can send external requests through the\nCloud NAT gateway without using the default ephemeral external IP addresses.\n\n1. Follow the steps in the section\n [Configure your service to use only its internal IP address](#limit-to-internal).\n\n2. Follow the steps to\n [Configure Cloud NAT](/nat/docs/set-up-manage-network-address-translation).\n\nTo learn more about this approach, see the Cloud Architecture Center\ndocumentation on\n[Deploying Cloud NAT for fetching](/architecture/building-internet-connectivity-for-private-vms#deploying_cloud_nat_for_fetching)."]]