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:
Conceder los permisos adecuados a las cuentas de servicio del proyecto de servicio de VPC compartida
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:
Ve a la página de creación de reglas de cortafuegos.
En los campos Nombre y Descripción, proporciona un nombre y una descripción para la regla de cortafuegos.
Rellena las propiedades necesarias tal como se ha indicado anteriormente.
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:
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.
Ve a la página de gestión de identidades y accesos del proyecto host.
Haz clic en Añadir.
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
En el menú desplegable Seleccionar un rol, selecciona Compute Engine > Usuario de red de Compute.
Haz clic en Guardar.
gcloud
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)")
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.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.
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 camposubnetwork_name
:network: name: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME subnetwork_name: SUBNETWORK_NAME
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:
Ve a la página Versiones de App Engine.
En la columna Configuración de la derecha, haz clic en Ver en la versión que quieras.
Verifica que el nombre de la red en la configuración sea el nombre de la red VPC compartida.