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:
- Agrega reglas de firewall para permitir los rangos de IP obligatorios
- Otorga permisos
- Crear una subred
- En la página Configura el Acceso a VPC sin servidores, completa los pasos de las siguientes secciones:
Agrega reglas de firewall para permitir rangos de IP
Para seguir estos pasos, debes tener una de las siguientes funciones en el proyecto host:
- Función de administrador de seguridad de Compute Engine
- Función de Identity and Access Management (IAM) personalizada con el permiso
compute.firewalls.create
habilitado
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:
- Rango de NAT
35.199.224.0/19
- Rangos de verificación de estado
35.191.0.0/16
130.211.0.0/22
La infraestructura de Google subyacente a Cloud Run, Cloud Functions y el entorno estándar de App Engine usan estos rangos. 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, Cloud Functions 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:
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=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=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=35.191.0.0/16,130.211.0.0/22 \ --direction=INGRESS \ --target-tags vpc-connector \ --network=VPC_NETWORK
VPC_NETWORK
es la red de VPC a la que conectarás el conector.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 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
yvpc-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:
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"
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
- En la página Configura el Acceso a VPC sin servidores, completa los pasos de las siguientes secciones: