1. Introduction
Une interface Private Service Connect est une ressource qui permet à un réseau cloud privé virtuel (VPC) de producteur d'initier des connexions avec différentes destinations dans un réseau VPC consommateur. Les réseaux de producteurs et les réseaux de clients peuvent appartenir à différents projets et organisations.
Si un rattachement de réseau accepte une connexion depuis une interface Private Service Connect, Google Cloud attribue à l'interface une adresse IP d'un sous-réseau client spécifié par le rattachement de réseau. Les réseaux utilisateur et producteur sont connectés et peuvent communiquer à l'aide d'adresses IP internes.
Une connexion entre un rattachement de réseau et une interface Private Service Connect est semblable à la connexion entre un point de terminaison Private Service Connect et un rattachement de service, avec toutefois deux différences majeures :
- Un rattachement de réseau permet à un réseau producteur d'établir des connexions avec un réseau consommateur (sortie de service géré), tandis qu'un point de terminaison permet à un réseau consommateur d'établir des connexions avec un réseau producteur (entrée de service géré).
- Une connexion d'interface Private Service Connect est transitive. Cela signifie qu'un réseau de producteur peut communiquer avec d'autres réseaux connectés au réseau du client.
Considérations concernant l'accessibilité de l'interface PSC Vertex AI
- L'interface PSC est capable de router le trafic vers des destinations VPC ou sur site dans le bloc d'adresses RFC1918.
- L'interface PSC ciblant des blocs d'adresses non-RFC 1918 nécessite un proxy explicite déployé dans le VPC du consommateur avec une adresse RFC 1918. Dans le déploiement Vertex AI, le proxy doit être défini avec un nom de domaine complet du point de terminaison cible.
- Lorsque vous configurez votre déploiement avec une interface PSC uniquement, il conserve son accès Internet par défaut. Ce trafic sortant quitte directement le réseau locataire sécurisé et géré par Google.
Considérations concernant VPC-SC pour l'interface PSC Vertex AI
- Lorsque votre projet fait partie d'un périmètre VPC Service Controls, l'accès à Internet par défaut des locataires gérés par Google est bloqué par le périmètre pour empêcher l'exfiltration de données.
- Pour autoriser l'accès au déploiement à l'Internet public dans ce scénario, vous devez configurer explicitement un chemin de sortie sécurisé qui achemine le trafic via votre VPC.
- La méthode recommandée pour y parvenir consiste à configurer un serveur proxy à l'intérieur de votre périmètre VPC avec une adresse RFC1918 et à créer une passerelle Cloud NAT pour permettre à la VM proxy d'accéder à Internet.
Pour en savoir plus, consultez les ressources suivantes :
Déployer un agent | IA générative sur Vertex AI | Google Cloud
Configurer une interface Private Service Connect pour les ressources Vertex AI | Google Cloud
Ce que vous allez faire
Dans ce tutoriel, vous allez créer un moteur d'agent complet déployé avec une interface Private Service Connect (PSC) pour permettre la connectivité à un site public (https://api.frankfurter.app/) via une VM de proxy déployée dans le VPC du consommateur avec une adresse RFC1918. L'exemple de déploiement s'applique dans un projet VPC-SC activé ou pour les administrateurs qui ont besoin d'une sortie Internet via le réseau client au lieu du VPC locataire.
Figure 1

Vous allez créer un seul psc-network-attachment dans le VPC consommateur en utilisant l'appairage DNS pour résoudre la VM proxy du réseau consommateur dans le projet locataire hébergeant Agent Engine, ce qui permet les cas d'utilisation suivants :
Déployer Agent Engine et configurer une VM proxy pour qu'elle agisse en tant que proxy explicite, ce qui lui permet d'accéder à une URL publique https://api.frankfurter.app
Points abordés
- Créer un rattachement de réseau
- Comment un producteur peut utiliser un rattachement de réseau pour créer une interface PSC
- Établir une communication du producteur au consommateur à l'aide de l'appairage DNS
- Déployer et utiliser une VM proxy pour la sortie Internet
Prérequis
Projet Google Cloud
Autorisations IAM
- Administrateur de réseaux Compute (roles/compute.networkAdmin)
- Administrateur d'instances Compute (roles/compute.instanceAdmin)
- Administrateur de sécurité de Compute (roles/compute.securityAdmin)
- Administrateur DNS (roles/dns.admin)
- Utilisateur de tunnels sécurisés par IAP (roles/iap.tunnelResourceAccessor)
- Administrateur Logging (roles/logging.admin)
- Administrateur Notebooks (roles/notebooks.admin)
- Administrateur de projet IAM (roles/resourcemanager.projectIamAdmin)
- Administrateur de compte de service (roles/iam.serviceAccountAdmin)
- Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin)
2. Avant de commencer
Mettre à jour le projet pour qu'il soit compatible avec le tutoriel
Ce tutoriel utilise des $variables pour faciliter l'implémentation de la configuration gcloud dans Cloud Shell.
Dans Cloud Shell, procédez comme suit :
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
Activation de l'API
Dans Cloud Shell, procédez comme suit :
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"
Vérifier que les API sont activées
gcloud services list --enabled
3. Configuration du client
Créer le VPC consommateur
Ce VPC réside dans un projet client. Les ressources suivantes seront créées dans ce VPC :
- Sous-réseau du client
- Sous-réseau de rattachement de réseau
- Cloud Router (requis pour Cloud NAT)
- Cloud NAT
Dans Cloud Shell, procédez comme suit :
gcloud compute networks create consumer-vpc --project=$projectid --subnet-mode=custom
Créer les sous-réseaux consommateurs
Dans Cloud Shell, créez le sous-réseau pour la VM proxy :
gcloud compute networks subnets create rfc1918-subnet1 --project=$projectid --range=10.10.10.0/28 --network=consumer-vpc --region=us-central1
Créer le sous-réseau de rattachement de réseau Private Service Connect
Dans Cloud Shell, créez le sous-réseau pour l'association de réseau PSC :
gcloud compute networks subnets create intf-subnet --project=$projectid --range=192.168.10.0/28 --network=consumer-vpc --region=us-central1
Configuration de Cloud Router et de NAT
Dans ce tutoriel, Cloud NAT est utilisé pour fournir un accès à Internet à la VM proxy, qui ne dispose pas d'adresse IP publique. Cloud NAT permet aux VM ne disposant que d'adresses IP privées de se connecter à Internet, ce qui leur permet d'effectuer des tâches telles que l'installation de packages logiciels.
Dans Cloud Shell, créez le routeur Cloud Router.
gcloud compute routers create cloud-router-for-nat --network consumer-vpc --region us-central1
Dans Cloud Shell, créez la passerelle NAT avec la journalisation activée. Nous utiliserons la journalisation pour valider l'accès à l'adresse IP publique de l'API 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. Activer IAP
Pour permettre à IAP de se connecter à vos instances de VM, créez une règle de pare-feu qui :
- S'applique à toutes les instances de VM auxquelles vous souhaitez être accessible à l'aide d'IAP.
- Autorise le trafic entrant à partir de la plage d'adresses IP 35.235.240.0/20. Cette plage contient toutes les adresses IP qu'IAP utilise pour le transfert TCP.
Dans Cloud Shell, créez la règle de pare-feu IAP.
gcloud compute firewall-rules create ssh-iap-consumer \
--network consumer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
5. Créer des instances de VM consommateur
Dans Cloud Shell, créez l'instance de VM consommateur, proxy-vm, qui servira de proxy explicite pour Agent Engine. Nous utiliserons tinyproxy comme application pour le trafic 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. Rattachement de réseau Private Service Connect
Les rattachements de réseau sont des ressources régionales qui représentent le côté utilisateur d'une interface Private Service Connect. Vous associez un seul sous-réseau à un rattachement de réseau, et le producteur attribue des adresses IP à l'interface Private Service Connect à partir de ce sous-réseau. Le sous-réseau doit se trouver dans la même région que le rattachement de réseau. Un rattachement réseau doit se trouver dans la même région que le service producteur.