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

En el entorno flexible de App Engine, puedes especificar una red en la que desplegar las instancias de tu servicio. En esta página se explica cómo configurar tu proyecto para usar el entorno flexible de App Engine en una red de VPC compartida.

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

Configurar el entorno flexible de App Engine con VPC compartida

Para desplegar instancias del entorno flexible de App Engine en una red de VPC compartida, sigue estos tres pasos:

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

  2. Conceder los permisos adecuados a las cuentas de servicio del proyecto de servicio de VPC compartida

  3. Configurar los servicios de App Engine para que usen la red de VPC compartida

Si usas la CLI de Google Cloud, actualiza a la versión más reciente antes de seguir esta guía ejecutando el comando:

gcloud components update

Permitir el tráfico a la red de VPC compartida

Un administrador de VPC compartida debe crear una regla de cortafuegos en el proyecto host de la VPC compartida para permitir el tráfico al entorno flexible de App Engine en la red de VPC compartida. La regla de cortafuegos permite servir tráfico y comprobar el estado de las instancias del entorno flexible.

La regla de cortafuegos debe tener las siguientes propiedades:

  • Red: el nombre de la red de VPC compartida.
  • Dirección del tráfico: entrada
  • Acción tras coincidencia: permitir
  • Destinos: etiquetas de destino especificadas
  • Etiquetas de destino: aef-instance
  • Filtro de origen: intervalos de IP
  • Intervalos de IPs 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 cortafuegos mediante la Google Cloud consola o la interfaz de línea de comandos de Google Cloud:

Consola

Para crear la regla de cortafuegos con la Google Cloud consola, sigue estos pasos:

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

    Crear una regla de cortafuegos

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

  3. Rellena las propiedades necesarias tal como se ha indicado anteriormente.

  4. Haz clic en Crear.

gcloud

Para crear la regla de cortafuegos con la CLI de Google Cloud, 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 Google Cloud ID del proyecto del proyecto host de la VPC compartida.

Configurar permisos

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

  • Agente de servicios de APIs 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)

Consola

Para configurar los permisos mediante la consola Google Cloud , sigue estos pasos:

  1. Ve a la página Configuración de gestión de identidades y accesos del proyecto de servicio y anota el número de proyecto.

    Ir a Configuración de IAM

  2. Ve a la página de gestión de identidades y accesos del proyecto host.

    Ir a IAM

  3. Haz clic en Añadir.

  4. En el campo Miembros nuevos, introduce las siguientes direcciones de correo electrónico separadas por comas. Sustituye PROJECT_NUM por el número de proyecto obtenido 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 Seleccionar un rol, selecciona Compute Engine > Usuario de red de Compute.

  6. Haz clic en Guardar.

gcloud

  1. Obtén el número de proyecto del proyecto de servicio en el que se ha desplegado la aplicación de App Engine. Ejecuta el siguiente comando y sustituye SERVICE_PROJECT_ID por el ID del proyecto de servicio:

    export SERVICE_PROJECT_NUM=$(gcloud projects describe SERVICE_PROJECT_ID --format="value(projectNumber)")
    
  2. Asigna el rol compute.networkUser al agente de servicio de las APIs de Google del proyecto de servicio en el proyecto host:

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

    donde HOST_PROJECT_ID es elGoogle Cloud ID del proyecto host de la VPC compartida.

  3. Asigna el rol compute.networkUser al agente de servicio del entorno flexible de App Engine del proyecto de servicio en el proyecto 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
    

Configurar y desplegar el servicio

Una vez que hayas configurado la regla de cortafuegos y los permisos adecuados, podrás desplegar un servicio nuevo o un servicio de entorno flexible de App Engine en la red VPC compartida.

  1. En el archivo app.yaml, usa el campo network settings (configuración de red) name para especificar el nombre completo de la red de VPC compartida:

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

    donde

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

    Para configurar el servicio de forma que forme parte de una subred llamada SUBNETWORK_NAME, también debe definir el campo subnetwork_name:

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

    gcloud app deploy
    

Verificar la configuración

Para verificar que tu servicio del entorno flexible de App Engine se está ejecutando en la red VPC compartida, consulta la configuración de la versión en la página de versiones de App Engine de laGoogle Cloud consola:

  1. Ve a la página Versiones de App Engine.

    Ir a las versiones de App Engine

  2. En la columna Configuración de la derecha, haz clic en Ver en la versión que quieras.

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