Configura conectores en proyectos de servicio de VPC compartida

Si tu organización usa una VPC compartida, puedes configurar conectores de Acceso a VPC sin servidores en el proyecto de servicio o en el proyecto host. En esta guía, se muestra cómo configurar un conector en el proyecto de servicio.

Si necesitas configurar un conector en el proyecto host, consulta Configura conectores en el proyecto host. Para obtener más información sobre las ventajas de cada método, consulta Conéctate a una red de VPC compartida.

En un nivel alto, debes seguir estos pasos:

  1. Agrega reglas de firewall para permitir los rangos de IP obligatorios
  2. Otorga permisos
  3. Crear una subred
  4. En la página Configura el Acceso a VPC sin servidores, completa los pasos de las siguientes secciones:

Antes de comenzar

El Acceso a VPC sin servidores no es compatible con el servicio de recuperación de URL. Antes de comenzar, inhabilita la configuración predeterminada de la recuperación de URLs y, luego, interrumpe el uso explícito de la biblioteca urlfetch.

Agrega reglas de firewall para permitir rangos de IP

Para seguir estos pasos, debes tener una de las siguientes funciones en el proyecto host:

Debes crear reglas de firewall para permitir que las solicitudes de los siguientes rangos de IP lleguen al conector y que el conector pueda llegar a estas:

  • Rangos de NAT
    • 107.178.230.64/26
    • 35.199.224.0/19
  • Rangos de verificación de estado
    • 130.211.0.0/22
    • 35.191.0.0/16
    • 108.170.220.0/23

Estos rangos son usados por la infraestructura de Google subyacente a Cloud Run, Cloud Functions, y el entorno estándar de App Engine. Se garantiza que todas las solicitudes de estas IP se originen en la infraestructura de Google, lo que garantiza que cada servicio, función o app de Cloud Run, funciones de Cloud Run y App Engine solo se comunique con el conector de VPC con el que tienen una conexión.

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

Para aplicar estas reglas, sigue estos pasos:

  1. Ejecuta los tres comandos siguientes para establecer las reglas a fin de permitir que las solicitudes del entorno sin servidores 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

    VPC_NETWORK es la red de VPC a la que conectarás el conector.

  2. Crea una regla de entrada en la 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 otorga al conector de VPC acceso a cada recurso de la red. A fin de limitar los recursos a los que el entorno sin servidores puede acceder con el Acceso a VPC sin servidores, especifica un destino para estas reglas de firewall.

Crea reglas de firewall para conectores específicos

Seguir el procedimiento en Agregar reglas de firewall para permitir rangos de IP da como resultado reglas de firewall que se aplican a todos los conectores, tanto los actuales como los que se creen en el futuro. Si no quieres esto, pero deseas crear reglas solo para conectores específicos, puedes definir el alcance de las reglas para que se apliquen solo a esos conectores.

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

  • Etiquetas de red. Cada conector tiene dos etiquetas de red: vpc-connector y vpc-connector-REGION-CONNECTOR_NAME. Usa este último formato para limitar el alcance de las reglas de firewall a un conector específico.
  • Rangos de IP. Usa esto solo para las reglas de salida, porque no funciona con Ingress. Puedes usar el rango de IP de la subred del conector para limitar el alcance de las reglas de firewall a un solo conector de VPC.

Otorga permisos a cuentas de servicio en tus proyectos de servicio

Para cada proyecto de servicio que usará conectores de VPC, un administrador de VPC compartida debe otorgar la función de usuario de la red de Compute (compute.networkUser) en el proyecto host al proyecto de servicio de las cuentas de servicio cloudservices y vpcaccess.

Para otorgar la función, haz lo siguiente:

  1. Usa los siguientes 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 servidores en el proyecto de servicio y vuelve a intentarlo:

    gcloud services enable vpcaccess.googleapis.com

Si prefieres no otorgar a estas cuentas de servicio acceso a toda la red de VPC compartida y prefieres otorgar acceso a subredes específicas, puedes otorgar estas funciones a estas cuentas de servicio solo en subredes específicas.

Crear una subred

Cuando usas la VPC compartida, el administrador de VPC compartida debe crear una subred para cada conector. Puedes seguir la documentación sobre cómo agregar una subred para agregar una subred /28 a la red de VPC compartida. Esta subred debe estar en la misma región que los servicios sin servidores que usarán el conector.

Próximos pasos