No ambiente flexível do App Engine, é possível especificar uma rede em que as instâncias de seu serviço serão implantadas. Nesta página, você aprende a configurar seu projeto para usar o ambiente flexível do App Engine em uma rede VPC compartilhada.
Para mais informações sobre como configurar uma rede VPC compartilhada, consulte esta página.
Como configurar o ambiente flexível do App Engine com uma VPC compartilhada
A implantação de instâncias do ambiente flexível do App Engine em uma rede VPC compartilhada envolve três etapas:
Se você usar a Google Cloud CLI, atualize para a versão mais recente antes de seguir este guia executando o comando:
gcloud components update
Como permitir tráfego para a rede VPC compartilhada
Para permitir o tráfego para o ambiente flexível do App Engine na rede VPC compartilhada, um administrador dessa rede precisa criar uma regra de firewall no projeto host da VPC. A regra de firewall permite veicular o tráfego para instâncias do ambiente flexível, além de verificar a integridade dele.
A regra de firewall precisa ter as seguintes propriedades:
- Rede: o nome da rede VPC compartilhada
- Direção do tráfego: entrada
- Ação na correspondência: permitir
- Destinos: tags de destino especificadas
- Tags de meta:
aef-instance
- Filtro de origem: intervalos de IP
- Intervalos de IPs de origem:
35.191.0.0/16
,130.211.0.0/22
- Protocolos e portas: protocolos e portas especificados
- TCP: 8443, 10402
Um administrador de VPC compartilhada pode criar a regra de firewall usando o console do Google Cloud ou a Google Cloud CLI:
Console
Para criar a regra de firewall usando o console do Google Cloud:
Acesse a página de criação de regra de firewall.
Nos campos Nome e Descrição, forneça um nome e uma descrição para a regra de firewall.
Preencha as propriedades necessárias conforme especificado acima.
Clique em Criar.
gcloud
Para criar a regra de firewall usando a Google Cloud CLI, execute o seguinte comando:
gcloud compute firewall-rules create NETWORK_NAME-flex-firewall \ --project HOST_PROJECT_ID \ --network NETWORK_NAME \ --allow tcp:10402,tcp:8443 \ --target-tags aef-instance \ --source-ranges 35.191.0.0/16,130.211.0.0/22 \ --description 'Allows traffic to App Engine flexible environment'
em que:
NETWORK_NAME
é o nome da rede VPC compartilhada;HOST_PROJECT_ID
é o ID do projeto do Google Cloud referente ao projeto host da VPC compartilhada.
Como configurar permissões
Um administrador de VPC compartilhada precisa conceder às duas contas de serviço a seguir o papel de usuário da rede do Compute para permitir que um projeto de serviço implante instâncias no ambiente flexível do App Engine para a rede:
- Agente de serviço do Google APIs
(
PROJECT_NUM@cloudservices.gserviceaccount.com
) - Agente de serviço do ambiente flexível do App Engine
(
service-PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com
)
Console
Para configurar permissões usando o console do Google Cloud:
Acesse a página "Configurações" do IAM referente ao projeto do serviço e anote o número do projeto.
Acesse a página "IAM" relativa ao projeto host.
Clique em Adicionar.
No campo Novos membros, insira os endereços de e-mail a seguir separados por vírgula. Substitua
PROJECT_NUM
pelo número do projeto anotado na etapa 1.PROJECT_NUM@cloudservices.gserviceaccount.com
service-PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com
Na lista suspensa Selecionar um papel, selecione Compute Engine > Usuário da rede do Compute.
Clique em Salvar.
gcloud
Consiga o número do projeto de serviço em que o aplicativo do App Engine está implantado. Execute o seguinte comando, substituindo
SERVICE_PROJECT_ID
pelo ID do projeto de serviço:export SERVICE_PROJECT_NUM=$(gcloud projects describe SERVICE_PROJECT_ID --format="value(projectNumber)")
Conceda ao agente de serviço de APIs do Google do projeto de serviço o papel
compute.networkUser
no projeto de host:gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=serviceAccount:$SERVICE_PROJECT_NUM@cloudservices.gserviceaccount.com \ --role=roles/compute.networkUser
em que
HOST_PROJECT_ID
é o ID do projeto do Google Cloud referente ao projeto host da VPC compartilhada.Conceda ao Agente de serviço do ambiente flexível do App Engine do projeto de serviço o papel
compute.networkUser
no projeto host:gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=serviceAccount:service-$SERVICE_PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com \ --role=roles/compute.networkUser
Como configurar e implantar seu serviço
Depois de configurar a regra de firewall e as permissões adequadas, implante um serviço novo ou atual no ambiente flexível do App Engine na rede VPC compartilhada.
No arquivo
app.yaml
, use o campo configurações de redename
para especificar o nome completo da rede do Shared VPC:network: name: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
onde
HOST_PROJECT_ID
é o ID do projeto do Google Cloud referente ao projeto host da VPC compartilhada.NETWORK_NAME
é o nome da rede VPC compartilhada.
Para configurar o serviço para fazer parte de uma sub-rede denominada
SUBNETWORK_NAME
, defina também o camposubnetwork_name
:network: name: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME subnetwork_name: SUBNETWORK_NAME
Implante o serviço:
gcloud app deploy
Como verificar a configuração
Para verificar se o serviço de ambiente flexível do App Engine está em execução na rede VPC compartilhada, veja a configuração da versão na página de versões do App Engine no console do Google Cloud:
Acesse a página "Versões" do App Engine.
Na coluna Configuração, à direita, clique em Ver para a versão desejada.
Verifique se o nome da rede na configuração é o nome da rede VPC compartilhada.