Usar o ambiente flexível do App Engine numa rede VPC partilhada

No ambiente flexível do App Engine, pode especificar uma rede na qual implementar as instâncias do seu serviço. Esta página mostra como configurar o seu projeto para usar o ambiente flexível do App Engine numa rede de VPC partilhada.

Consulte o artigo Aprovisionar VPC partilhada para mais informações sobre a configuração de uma rede VPC partilhada.

Configurar o ambiente flexível do App Engine com a VPC partilhada

A implementação de instâncias do ambiente flexível do App Engine numa rede de VPC partilhada envolve três passos:

  1. Crie uma regra de firewall para permitir o tráfego do ambiente flexível do App Engine na rede de VPC partilhada

  2. Conceda as autorizações adequadas às contas de serviço no projeto de serviço de VPC partilhada

  3. Configure os seus serviços do App Engine para usar a rede da VPC partilhada

Se usar a CLI do Google Cloud, atualize para a versão mais recente antes de seguir este guia executando o comando:

gcloud components update

Permitir tráfego para a rede VPC partilhada

Um administrador da VPC partilhada tem de criar uma regra de firewall no projeto anfitrião da VPC partilhada para permitir o tráfego para o ambiente flexível do App Engine na rede VPC partilhada. A regra de firewall permite a publicação e o tráfego de verificação de estado para instâncias do ambiente flexível.

A regra de firewall tem de ter as seguintes propriedades:

  • Rede: o nome da rede VPC partilhada
  • Sentido do tráfego: entrada
  • Ação na correspondência: permitir
  • Objetivos: etiquetas de objetivo especificadas
  • Etiquetas de segmentação: 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 da VPC partilhada pode criar a regra de firewall através da Google Cloud consola ou da Google Cloud CLI:

Consola

Para criar a regra de firewall através da Google Cloud consola:

  1. Aceda à página de criação de regras de firewall.

    Crie uma regra de firewall

  2. Nos campos Nome e Descrição, indique um nome e uma descrição para a regra de firewall.

  3. Preencha as propriedades necessárias, conforme especificado acima.

  4. Clique em Criar.

gcloud

Para criar a regra de firewall com 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'

where:

  • NETWORK_NAME é o nome da rede VPC partilhada.
  • HOST_PROJECT_ID é o Google Cloud ID do projeto do projeto anfitrião da VPC partilhada.

Configurar autorizações

Um administrador da VPC partilhada tem de conceder às seguintes duas contas de serviço a função de utilizador da rede de computação para permitir que um projeto de serviço implemente instâncias no ambiente flexível do App Engine na rede:

  • Agente do serviço das APIs Google (PROJECT_NUM@cloudservices.gserviceaccount.com)
  • Agente do serviço do ambiente flexível do App Engine (service-PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com)

Consola

Para configurar autorizações através da Google Cloud consola:

  1. Aceda à página de definições do IAM para o projeto de serviço e tome nota do número do projeto.

    Aceda às definições do IAM

  2. Aceda à página do IAM para o projeto anfitrião.

    Aceda ao IAM

  3. Clique em Adicionar.

  4. No campo Novos membros, introduza os seguintes endereços de email separados por uma vírgula. Substitua PROJECT_NUM pelo número do projeto obtido no passo 1.

    • PROJECT_NUM@cloudservices.gserviceaccount.com
    • service-PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com
  5. No menu pendente Selecionar uma função, selecione Compute Engine > Utilizador da rede de computação.

  6. Clique em Guardar.

gcloud

  1. Obtenha o número do projeto do projeto de serviço onde a app do App Engine está implementada. Execute o seguinte comando, substituindo SERVICE_PROJECT_ID pelo ID do projeto do projeto de serviço:

    export SERVICE_PROJECT_NUM=$(gcloud projects describe SERVICE_PROJECT_ID --format="value(projectNumber)")
    
  2. Conceda ao agente do serviço das APIs Google do projeto de serviço a função compute.networkUser no projeto anfitrião:

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
    --member=serviceAccount:$SERVICE_PROJECT_NUM@cloudservices.gserviceaccount.com \
    --role=roles/compute.networkUser
    

    onde HOST_PROJECT_ID é o Google Cloud ID do projeto anfitrião da VPC partilhada.

  3. Conceda ao agente de serviço do ambiente flexível do App Engine do projeto de serviço a função compute.networkUser no projeto anfitrião:

    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
    

Configurar e implementar o seu serviço

Depois de configurar a regra de firewall e as autorizações adequadas, pode implementar um novo serviço ou um serviço do ambiente flexível do App Engine existente na rede VPC partilhada.

  1. No ficheiro app.yaml, use o campo network settings name para especificar o nome totalmente qualificado da rede VPC partilhada:

    network:
      name: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
    

    onde

    • HOST_PROJECT_ID é o Google Cloud ID do projeto do projeto anfitrião da VPC partilhada.
    • NETWORK_NAME é o nome da rede de VPC partilhada.

    Para configurar o serviço de modo a fazer parte de uma sub-rede denominada SUBNETWORK_NAME, defina também o campo subnetwork_name:

    network:
      name: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
      subnetwork_name: SUBNETWORK_NAME
    
  2. Implemente o serviço:

    gcloud app deploy
    

Validar a configuração

Para verificar se o serviço do ambiente flexível do App Engine está a ser executado na rede VPC partilhada, veja a configuração da versão na página de versões do App Engine naGoogle Cloud consola:

  1. Aceda à página Versões do App Engine.

    Aceda às versões do App Engine

  2. Na coluna Configuração à direita, clique em Ver para a versão pretendida.

  3. Verifique se o nome da rede na configuração é o nome da rede de VPC partilhada.