Configurar conectores en proyectos de servicio de VPC compartida

Si tu organización usa la VPC compartida, puedes configurar conectores de acceso a la VPC sin servidor en el proyecto de servicio o en el proyecto del host. En esta guía se explica cómo configurar un conector en el proyecto de servicio.

Si necesitas configurar un conector en el proyecto host, consulta Configurar conectores en el proyecto host. Para obtener información sobre las ventajas de cada método, consulta el artículo Conexión a una red de VPC compartida.

En términos generales, debe seguir estos pasos:

  1. Añadir reglas de cortafuegos para permitir los intervalos de IP necesarios
  2. Conceder permisos
  3. Crear una subred
  4. En la página Configurar Acceso a VPC sin servidor, sigue los pasos que se indican en las siguientes secciones:

Antes de empezar

Acceso a VPC sin servidor no es compatible con el servicio de obtención de URLs. Antes de empezar, deja de usar URLFetchService.

Añadir reglas de cortafuegos para permitir intervalos de IP

Para llevar a cabo estos pasos, debes tener uno de los siguientes roles en el proyecto host:

Debes crear reglas de cortafuegos para permitir que las solicitudes de los siguientes intervalos de IPs lleguen al conector y que el conector pueda acceder a ellas:

  • Intervalos de NAT
    • 107.178.230.64/26
    • 35.199.224.0/19
  • Intervalos de comprobación del estado
    • 130.211.0.0/22
    • 35.191.0.0/16
    • 108.170.220.0/23

La infraestructura de Google subyacente a Cloud Run, las funciones de Cloud Run y el entorno estándar de App Engine usan estos intervalos. Se garantiza que todas las solicitudes procedentes de estas IPs se originan en la infraestructura de Google, lo que asegura que cada servicio, función o aplicación de Cloud Run, Cloud Run Functions y App Engine solo se comunique con el conector de VPC al que esté conectado.

Para una configuración sencilla, aplica las reglas para permitir que los servicios sin servidor de cualquier proyecto de servicio conectado a la red de VPC compartida envíen solicitudes a cualquier recurso de la red.

Para aplicar estas reglas, siga estos pasos:

  1. Ejecuta los tres comandos siguientes para definir las reglas que permitan que las solicitudes del entorno sin servidor lleguen a todos los conectores de VPC de la red:

    gcloud compute firewall-rules create serverless-to-vpc-connector \
    --allow tcp:667,udp:665-666,icmp \
    --source-ranges 107.178.230.64/26,35.199.224.0/19 \
    --direction=INGRESS \
    --target-tags vpc-connector \
    --network=VPC_NETWORK
    gcloud compute firewall-rules create vpc-connector-to-serverless \
    --allow tcp:667,udp:665-666,icmp \
    --destination-ranges 107.178.230.64/26,35.199.224.0/19 \
    --direction=EGRESS \
    --target-tags vpc-connector \
    --network=VPC_NETWORK
    gcloud compute firewall-rules create vpc-connector-health-checks \
    --allow tcp:667 \
    --source-ranges 130.211.0.0/22,35.191.0.0/16,108.170.220.0/23 \
    --direction=INGRESS \
    --target-tags vpc-connector \
    --network=VPC_NETWORK

    Donde VPC_NETWORK es la red de VPC a la que quieres conectar tu conector.

  2. Crea una regla de entrada en tu red de VPC para permitir las solicitudes de los conectores:

    gcloud compute firewall-rules create vpc-connector-requests \
    --allow tcp,udp,icmp \
    --direction=INGRESS \
    --source-tags vpc-connector \
    --network=VPC_NETWORK

    Esta regla da al conector de VPC acceso a todos los recursos de la red. Para limitar los recursos a los que puede acceder tu entorno sin servidor mediante Acceso a VPC sin servidor, especifica un destino para estas reglas de cortafuegos.

Crear reglas de cortafuegos para conectores específicos

Si sigues el procedimiento descrito en Añadir reglas de cortafuegos para permitir intervalos de IPs, las reglas de cortafuegos se aplicarán a todos los conectores, tanto a los actuales como a los que se creen en el futuro. Si no quieres que esto ocurra y, en su lugar, quieres crear reglas solo para conectores específicos, puedes acotar las reglas para que se apliquen únicamente a esos conectores.

Para limitar el ámbito de las reglas a conectores específicos, puedes usar uno de los siguientes mecanismos:

  • Etiquetas de red. Todos los conectores tienen dos etiquetas de red: vpc-connector y vpc-connector-REGION-CONNECTOR_NAME. Usa el segundo formato para limitar el ámbito de tus reglas de cortafuegos a un conector específico.
  • Intervalos de IP. Úsalo solo para las reglas de salida, ya que no funciona para las de entrada. Puedes usar el intervalo de IPs de la subred del conector para limitar el ámbito de tus reglas de cortafuegos a un solo conector de VPC.

Conceder permisos a cuentas de servicio en tus proyectos de servicio

En cada proyecto de servicio que vaya a usar conectores de VPC, un administrador de VPC compartida debe conceder el rol de usuario de red de Compute (compute.networkUser) en el proyecto host al proyecto de servicio cloudservices y a las cuentas de servicio vpcaccess.

Para conceder el rol, sigue estos pasos:

  1. Utiliza estos comandos:

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
    --role "roles/compute.networkUser" \
    --member "serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
    --role "roles/compute.networkUser" \
    --member "serviceAccount:SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com"
  2. Si la cuenta de servicio @gcp-sa-vpcaccess no existe, activa la API de acceso a VPC sin servidor en el proyecto de servicio y vuelve a intentarlo:

    gcloud services enable vpcaccess.googleapis.com

Si prefieres no conceder acceso a toda la red VPC compartida a estas cuentas de servicio y solo quieres conceder acceso a subredes específicas, puedes asignar estos roles a las cuentas de servicio solo en subredes específicas.

Crear una subred

Cuando se usa la VPC compartida, el administrador de la VPC compartida debe crear una subred para cada conector. Sigue las instrucciones de la documentación sobre cómo añadir una subred para añadir una subred /28 a la red de VPC compartida. Esta subred debe estar en la misma región que los servicios sin servidor que usarán el conector.

Pasos siguientes