Como usar o ambiente flexível do App Engine em uma rede VPC compartilhada

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 Como provisionar uma VPC compartilhada.

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:

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

  2. Conceder permissões apropriadas às contas de serviço presentes no projeto de serviço da VPC compartilhada.

  3. Configurar seus serviços do App Engine para usar a rede VPC compartilhada.

Se você usa a ferramenta de linha de comando gcloud, 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 ferramenta de linha de comando gcloud:

Console

Para criar a regra de firewall usando o Console do Cloud:

  1. Acesse a página de criação de regra de firewall.

    Criar uma regra de firewall

  2. Nos campos Nome e Descrição, forneça 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 usando a ferramenta de linha de comando gcloud, 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 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 do ambiente flexível do App Engine na 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 Cloud:

  1. Acesse a página "Configurações" do IAM referente ao projeto do serviço e anote o número do projeto.

    Acessar as configurações do IAM

  2. Acesse a página "IAM" relativa ao projeto host.

    Acessar IAM

  3. Clique em Adicionar.

  4. 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
  5. Na lista suspensa Selecionar um papel, selecione Compute Engine > Usuário da rede do Compute.

  6. Clique em Salvar.

gcloud

  1. 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)")
    
  2. 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 Cloud referente ao projeto host da VPC compartilhada.

  3. 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.

  1. No arquivo app.yaml, use o campo configurações de rede name 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 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 campo subnetwork_name:

    network:
      name: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
      subnetwork_name: SUBNETWORK_NAME
    
  2. 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 Cloud:

  1. Acesse a página "Versões" do App Engine.

    Acessar a página "Versões" do App Engine

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

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