1. Introducción
Una interfaz de Private Service Connect es un recurso que permite que una red de nube privada virtual (VPC) de productor inicie conexiones a varios destinos en una red de VPC de consumidor. Las redes de productores y consumidores pueden estar en diferentes proyectos y organizaciones.
Si un adjunto de red acepta una conexión desde una interfaz de Private Service Connect, Google Cloud asigna a la interfaz una dirección IP de una subred de consumidor que especifica el adjunto de red. Las redes del consumidor y del productor están conectadas y pueden comunicarse mediante direcciones IP internas.
Una conexión entre un adjunto de red y una interfaz de Private Service Connect es similar a la conexión entre un extremo de Private Service Connect y un adjunto de servicio, pero tiene dos diferencias clave:
- Un adjunto de red permite que una red de productor inicie conexiones a una red de consumidor (salida de servicio administrado), mientras que un extremo permite que una red de consumidor inicie conexiones a una red de productor (entrada de servicio administrado).
- Una conexión de la interfaz de Private Service Connect es transitiva. Esto significa que una red del productor puede comunicarse con otras redes que están conectadas a la red del consumidor.
Consideraciones sobre la accesibilidad de la interfaz de PSC de Vertex AI
- PSC-Interface puede enrutar el tráfico a destinos basados en la VPC o en las instalaciones dentro del bloque de direcciones RFC1918.
- La PSC-Interface que segmenta bloques de direcciones que no son RFC-1918 requiere un proxy explícito implementado en la VPC del consumidor con una dirección RFC-1918. Dentro de la implementación de Vertex AI, el proxy se debe definir junto con un FQDN del extremo de destino.
- Cuando configuras tu implementación solo con una interfaz de PSC, esta conserva su acceso predeterminado a Internet. Este tráfico de salida sale directamente de la red de usuarios segura y administrada por Google.
Consideraciones sobre la interfaz de PSC de Vertex AI y el VPC-SC
- Cuando tu proyecto forma parte de un perímetro de Controles del servicio de VPC, el perímetro bloquea el acceso predeterminado a Internet de los arrendatarios administrados por Google para evitar el robo de datos.
- Para permitir que la implementación acceda a Internet pública en esta situación, debes configurar de forma explícita una ruta de salida segura que enrute el tráfico a través de tu VPC.
- La forma recomendada de lograr esto es configurar un servidor proxy dentro del perímetro de tu VPC con una dirección RFC1918 y crear una puerta de enlace de Cloud NAT para permitir que la VM proxy acceda a Internet.
Para obtener más información, consulta los siguientes recursos:
Implementa un agente | IA generativa en Vertex AI | Google Cloud
Configura una interfaz de Private Service Connect para los recursos de Vertex AI | Google Cloud
Qué compilarás
En este instructivo, compilarás un Agent Engine integral implementado con una interfaz de Private Service Connect (PSC) para permitir la conectividad a un sitio público (https://api.frankfurter.app/) a través de una VM de proxy implementada en la VPC del consumidor con una dirección RFC1918. La implementación de ejemplo se aplica en un proyecto habilitado para VPC-SC o para administradores que requieren salida a Internet a través de la red de los clientes en lugar de la VPC del arrendatario.
Figura 1

Crearás un solo psc-network-attachment en la VPC del consumidor aprovechando el intercambio de tráfico de DNS para resolver la VM proxy de la red del consumidor en el proyecto del inquilino que aloja Agent Engine, lo que generará los siguientes casos de uso:
Implementa Agent Engine y configura una VM de proxy para que actúe como proxy explícito, lo que le permitirá acceder a una URL pública https://api.frankfurter.app
Qué aprenderás
- Cómo crear un adjunto de red
- Cómo un productor puede usar un adjunto de red para crear una interfaz de PSC
- Cómo establecer la comunicación del productor al consumidor con el intercambio de tráfico de DNS
- Cómo implementar y usar una VM de proxy para la salida a Internet
Requisitos
Proyecto de Google Cloud
Permisos de IAM
- Administrador de red de Compute (roles/compute.networkAdmin)
- Administrador de instancias de Compute (roles/compute.instanceAdmin)
- Administrador de seguridad de Compute (roles/compute.securityAdmin)
- Administrador de DNS (roles/dns.admin)
- Usuario de túnel protegido con IAP (roles/iap.tunnelResourceAccessor)
- Administrador de Logging (roles/logging.admin)
- Administrador de Notebooks (roles/notebooks.admin)
- Administrador de IAM de proyecto (roles/resourcemanager.projectIamAdmin)
- Administrador de cuenta de servicio (roles/iam.serviceAccountAdmin)
- Administrador de Service Usage (roles/serviceusage.serviceUsageAdmin)
2. Antes de comenzar
Actualiza el proyecto para que admita el instructivo
En este instructivo, se usan variables para facilitar la implementación de la configuración de gcloud en Cloud Shell.
Dentro de Cloud Shell, haz lo siguiente:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
Habilitación de la API
Dentro de Cloud Shell, haz lo siguiente:
gcloud services enable "compute.googleapis.com"
gcloud services enable "aiplatform.googleapis.com"
gcloud services enable "dns.googleapis.com"
gcloud services enable "notebooks.googleapis.com"
gcloud services enable "storage.googleapis.com"
gcloud services enable "iap.googleapis.com"
Verifica que las APIs se hayan habilitado correctamente
gcloud services list --enabled
3. Configuración del consumidor
Crea la VPC del consumidor
Esta VPC reside en un proyecto del cliente. Se crearán los siguientes recursos en esta VPC
- Subred del consumidor
- Subred de adjunto de red
- Cloud Router (obligatorio para Cloud NAT)
- Cloud NAT
Dentro de Cloud Shell, haz lo siguiente:
gcloud compute networks create consumer-vpc --project=$projectid --subnet-mode=custom
Crea las subredes de consumidor
Dentro de Cloud Shell, crea la subred para la VM del proxy:
gcloud compute networks subnets create rfc1918-subnet1 --project=$projectid --range=10.10.10.0/28 --network=consumer-vpc --region=us-central1
Crea la subred del adjunto de red de Private Service Connect
Dentro de Cloud Shell, crea la subred para la vinculación de red de PSC:
gcloud compute networks subnets create intf-subnet --project=$projectid --range=192.168.10.0/28 --network=consumer-vpc --region=us-central1
Configuración de Cloud Router y NAT
En este instructivo, se usa Cloud NAT para proporcionar acceso a Internet a la VM de proxy, que no tiene una dirección IP pública. Cloud NAT permite que las VMs que solo tienen direcciones IP privadas se conecten a Internet, lo que les permite realizar tareas como instalar paquetes de software.
Dentro de Cloud Shell, crea el Cloud Router.
gcloud compute routers create cloud-router-for-nat --network consumer-vpc --region us-central1
Dentro de Cloud Shell, crea la puerta de enlace de NAT con el registro habilitado. Usaremos el registro para validar el acceso a la IP pública de la API de Frankfurter (https://api.frankfurter.app/).
gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-for-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1 --enable-logging --log-filter=ALL
4. Habilitar IAP
Para permitir que IAP se conecte a tus instancias de VM, crea una regla de firewall que cumpla con lo siguiente:
- Se aplica a todas las instancias de VM a las que deseas acceder mediante IAP.
- Permite el tráfico de entrada desde el rango de IP 35.235.240.0/20. Este rango contiene todas las direcciones IP que IAP usa para el reenvío de TCP.
Dentro de Cloud Shell, crea la regla de firewall de IAP.
gcloud compute firewall-rules create ssh-iap-consumer \
--network consumer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
5. Crea instancias de VM de consumidor
En Cloud Shell, crea la instancia de VM del consumidor, proxy-vm, que actuará como proxy explícito para Agent Engine. Usaremos tinyproxy como la aplicación para el tráfico HTTP de proxy.
gcloud compute instances create proxy-vm \
--project=$projectid \
--machine-type=e2-micro \
--image-family debian-11 \
--no-address \
--can-ip-forward \
--image-project debian-cloud \
--zone us-central1-a \
--subnet=rfc1918-subnet1 \
--shielded-secure-boot \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install tcpdump
sudo apt-get install tinyproxy -y
sudo apt-get install apache2 -y
sudo service apache2 restart
echo 'proxy server !!' | tee /var/www/html/index.html
EOF"
6. Adjunto de red de Private Service Connect
Los adjuntos de red son recursos regionales que representan el lado del consumidor de una interfaz de Private Service Connect. Debes asociar una sola subred con un adjunto de red y el productor asigna IPs a la interfaz de Private Service Connect desde esa subred. La subred debe estar en la misma región que el adjunto de red. Un adjunto de red debe estar en la misma región que el servicio del productor.
Crea el adjunto de red
Dentro de Cloud Shell, crea la conexión de red.
gcloud compute network-attachments create psc-network-attachment \
--region=us-central1