Usa el entorno flexible de App Engine en una red de VPC compartida

En el entorno flexible de App Engine, puedes especificar una red para implementar las instancias de tu servicio. En esta página, se muestra cómo configurar un proyecto para utilizar el entorno flexible de App Engine en una red de VPC compartida.

Consulta Aprovisiona una VPC compartida para obtener más información sobre cómo configurar una red de VPC compartida.

Configura el entorno flexible de App Engine con una VPC compartida

La implementación de instancias del entorno flexible de App Engine en una red de VPC compartida implica los siguientes tres pasos:

  1. Crear una regla de firewall para permitir el tráfico del entorno flexible de App Engine en la red de VPC compartida

  2. Otorgar los permisos adecuados a las cuentas de servicio en el proyecto de servicio de la VPC compartida

  3. Configurar tus servicios de App Engine para usar la red de VPC compartida

Si usas Google Cloud CLI, actualiza a la versión más reciente antes de seguir este instructivo. Para ello, ejecuta el siguiente comando:

gcloud components update

Permite el tráfico hacia la red de VPC compartida

Un administrador de una VPC compartida necesita crear una regla de firewall en el proyecto host de la VPC compartida para permitir el tráfico hacia el entorno flexible de App Engine en la red de VPC compartida. La regla de firewall permite la entrega y la verificación de estado del tráfico para las instancias de entorno flexible.

La regla de firewall debe tener las siguientes propiedades:

  • Red: nombre de la red de VPC compartida
  • Dirección del tráfico: entrada
  • Acción si hay coincidencia: permitir
  • Destinos: etiquetas de destino especificadas
  • Etiquetas de destino: aef-instance
  • Filtro de fuente: rangos de IP
  • Rangos de IP de origen: 35.191.0.0/16, 130.211.0.0/22
  • Protocolos y puertos: protocolos y puertos especificados
    • TCP: 8443, 10402

Un administrador de VPC compartida puede crear la regla de firewall mediante Google Cloud Console o Google Cloud CLI:

Console

Para crear la regla de firewall mediante la consola de Google Cloud, haz lo siguiente:

  1. Ve a la página de creación de reglas de firewall.

    Crear una regla de firewall

  2. En los campos Nombre y Descripción, proporciona un nombre y una descripción para la regla de firewall.

  3. Rellena las propiedades necesarias como se especificó anteriormente.

  4. Haz clic en Crear.

gcloud

Para crear la regla de firewall mediante Google Cloud CLI, ejecuta el siguiente 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'

Donde:

  • NETWORK_NAME es el nombre de la red de VPC compartida.
  • HOST_PROJECT_ID es el ID del proyecto de Cloud del proyecto host de la VPC compartida.

Configura los permisos

Un administrador de una VPC compartida debe otorgar a las siguientes dos cuentas de servicio la función Usuario de la red de Compute para permitir que un proyecto de servicio implemente instancias en el entorno flexible de App Engine en el red:

  • Agente de servicio de las API de Google (PROJECT_NUM@cloudservices.gserviceaccount.com)
  • Agente de servicio del entorno flexible de App Engine (service-PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com)

Console

Para configurar permisos mediante la consola de Google Cloud, haz lo siguiente:

  1. Dirígete a la página Configuración de IAM para el proyecto de servicio y toma nota del número de proyecto.

    Ir a Configuración de IAM

  2. Dirígete a la página IAM del proyecto host.

    Ir a IAM

  3. Haz clic en Agregar.

  4. En el campo Nuevos miembros, ingresa las siguientes direcciones de correo electrónico separadas por una coma. Reemplaza PROJECT_NUM por el número de proyecto que obtuviste en el paso 1.

    • PROJECT_NUM@cloudservices.gserviceaccount.com
    • service-PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com
  5. En el menú desplegable Selecciona una función, selecciona Compute Engine > Usuario de la red de Compute.

  6. Haz clic en Guardar.

gcloud

  1. Obtén el número del proyecto de servicio en el que se implementa la app de App Engine. Ejecuta el siguiente comando, pero reemplaza SERVICE_PROJECT_ID por el ID del proyecto de servicio:

    export SERVICE_PROJECT_NUM=$(gcloud projects describe SERVICE_PROJECT_ID --format="value(projectNumber)")
    
  2. Otorga la función compute.networkUser en el proyecto host al agente de servicio de las API de Google del proyecto de servicio:

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

    En el ejemplo anterior, HOST_PROJECT_ID es el ID del proyecto de Cloud del proyecto host de la VPC compartida.

  3. Otorga la función compute.networkUser en el proyecto host al agente de servicio del entorno flexible de App Engine del proyecto de servicio:

    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
    

Configura e implementa tu servicio

Una vez que hayas configurado la regla de firewall y los permisos adecuados, puedes implementar un servicio nuevo o un servicio existente del entorno flexible de App Engine en la red de VPC compartida.

  1. En el archivo app.yaml, usa el campo name de la configuración de red para especificar el nombre completamente calificado de la red de VPC compartida:

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

    En el ejemplo anterior, se ilustra lo siguiente:

    • HOST_PROJECT_ID es el ID del proyecto de Cloud del proyecto host de la VPC compartida.
    • NETWORK_NAME es el nombre de la red de VPC compartida.

    Para configurar el servicio a fin de que forme parte de una subred llamada SUBNETWORK_NAME, configura también el campo subnetwork_name:

    network:
      name: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
      subnetwork_name: SUBNETWORK_NAME
    
  2. Implementa el servicio:

    gcloud app deploy
    

Verifica tu configuración

Para verificar que tu servicio de entorno flexible de App Engine se ejecute en la red de VPC compartida, consulta la configuración de la versión en la página Versiones de App Engine en la consola de Google Cloud:

  1. Dirígete a la página Versiones de App Engine.

    Ir a Versiones de App Engine

  2. En la columna Configuración de la derecha, haz clic en la opción Ver correspondiente a la versión deseada.

  3. Verifica que el nombre de red en la configuración sea el nombre de la red de VPC compartida.