1. Introduction
Tirez parti de Private Service Connect pour établir un accès privé et sécurisé aux modèles déployés à partir de Vertex AI Model Garden. Au lieu d'exposer un point de terminaison public, cette méthode vous permet de déployer votre modèle sur un point de terminaison Vertex AI privé accessible uniquement dans votre cloud privé virtuel (VPC).
Private Service Connect crée un point de terminaison avec une adresse IP interne dans votre VPC, qui se connecte directement au service Vertex AI géré par Google qui héberge votre modèle. Cela permet aux applications de votre VPC et de vos environnements sur site (via Cloud VPN ou Interconnect) d'envoyer des requêtes d'inférence à l'aide d'adresses IP privées. Tout le trafic réseau reste sur le réseau de Google, ce qui améliore la sécurité, réduit la latence et isole complètement le point de terminaison de diffusion de votre modèle de l'Internet public.

Objectifs de l'atelier
Dans ce tutoriel, vous allez télécharger Gemma 3 depuis Model Garden, hébergé dans Vertex AI Online Inference en tant que point de terminaison privé accessible via Private Service Connect. Votre configuration de bout en bout comprendra les éléments suivants :
- Modèle Model Garden : vous sélectionnerez Gemma 3 dans Vertex AI Model Garden et le déploierez sur un point de terminaison Private Service Connect.
- Private Service Connect : vous configurerez un point de terminaison client dans votre cloud privé virtuel (VPC) composé d'une adresse IP interne dans votre propre réseau.
- Connexion sécurisée à Vertex AI : le point de terminaison PSC ciblera le rattachement de service généré automatiquement par Vertex AI pour le déploiement de votre modèle privé. Cela établit une connexion privée, garantissant que le trafic entre votre VPC et le point de terminaison de diffusion du modèle ne transite pas par l'Internet public.
- Configuration du client dans votre VPC : vous configurerez un client (par exemple, une VM Compute Engine) dans votre VPC pour envoyer des requêtes d'inférence au modèle déployé à l'aide de l'adresse IP interne du point de terminaison PSC.
À la fin de cet atelier, vous disposerez d'un exemple fonctionnel d'un modèle Model Garden diffusé en mode privé, accessible uniquement depuis votre réseau VPC désigné.
Points abordés
Dans ce tutoriel, vous apprendrez à déployer un modèle à partir de Vertex AI Model Garden et à le rendre accessible de manière sécurisée depuis votre cloud privé virtuel (VPC) à l'aide de Private Service Connect (PSC). Cette méthode permet à vos applications de votre VPC (le client) de se connecter en mode privé au point de terminaison du modèle Vertex AI (le service producteur) sans transiter par l'Internet public.
Plus précisément, vous apprendrez à :
- Comprendre PSC pour Vertex AI : comment PSC permet des connexions privées et sécurisées entre le client et le producteur. Votre VPC peut accéder au modèle Model Garden déployé à l'aide d'adresses IP internes.
- Déployer un modèle avec accès privé : comment configurer un point de terminaison Vertex AI pour que votre modèle Model Garden utilise PSC, ce qui en fait un point de terminaison privé.
- Rôle du rattachement de service : lorsque vous déployez un modèle sur un point de terminaison Vertex AI privé, Google Cloud crée automatiquement un rattachement de service dans un projet locataire géré par Google. Ce rattachement de service expose le service de diffusion du modèle aux réseaux clients.
- Créer un point de terminaison PSC dans votre VPC :
- Comment obtenir l'URI unique du rattachement de service à partir des détails de votre point de terminaison Vertex AI déployé.
- Comment réserver une adresse IP interne dans le sous-réseau de votre choix dans votre VPC.
- Comment créer une règle de transfert dans votre VPC qui fait office de point de terminaison PSC, en ciblant le rattachement de service Vertex AI. Ce point de terminaison rend le modèle accessible via l'adresse IP interne réservée.
- Établir une connectivité privée : comment le point de terminaison PSC de votre VPC se connecte au rattachement de service, en reliant votre réseau au service Vertex AI de manière sécurisée.
- Envoyer des requêtes d'inférence en mode privé : comment envoyer des requêtes de prédiction à partir de ressources (telles que des VM Compute Engine) de votre VPC à l'adresse IP interne du point de terminaison PSC.
- Validation : étapes à suivre pour tester et confirmer que vous pouvez envoyer des requêtes d'inférence de votre VPC au modèle Model Garden déployé via la connexion privée.
Une fois cette procédure terminée, vous pourrez héberger des modèles à partir de Model Garden qui ne sont accessibles que depuis votre infrastructure de réseau privé.
Ce dont vous avez besoin
Projet Google Cloud
Autorisations IAM
- Administrateur AI Platform (roles/ml.Admin)
- 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 d'utilisation du service (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-ID]
projectid=[YOUR-PROJECT-ID]
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 "serviceusage.googleapis.com"
3. Déployer le modèle
Suivez les étapes ci-dessous pour déployer votre modèle à partir de Model Garden.
Dans la console Google Cloud, accédez à Model Garden, puis recherchez et sélectionnez Gemma 3.

Cliquez sur "Options de déploiement", puis sélectionnez "Vertex AI".

Dans le volet "Déployer sur Vertex AI", sélectionnez "Avancé". La région et la spécification de la machine préremplies sont sélectionnées en fonction de la capacité disponible. Vous pouvez modifier ces valeurs, bien que l'atelier de programmation soit conçu pour us-central1.

Dans le volet "Déployer sur Vertex AI", assurez-vous que l'accès au point de terminaison est configuré sur "Private Service Connect", puis sélectionnez votre projet.

Conservez toutes les valeurs par défaut pour les autres options, puis sélectionnez "Déployer" en bas de la page et vérifiez l'état du déploiement dans vos notifications.

Dans Model Garden, sélectionnez la région us-central1, qui fournit le modèle et le point de terminaison Gemma 3. Le déploiement du modèle prend environ cinq minutes.

Dans 30 minutes, le point de terminaison passera à l'état "Actif" une fois l'opération terminée.

Obtenez l'ID du point de terminaison et notez-le en le sélectionnant.

Ouvrez Cloud Shell et procédez comme suit pour obtenir l'URI du rattachement de service Private Service Connect. Cette chaîne d'URI est utilisée par le client lors du déploiement d'un point de terminaison client PSC.
Dans Cloud Shell, mettez à jour l'ID du point de terminaison, puis exécutez la commande suivante.
gcloud ai endpoints describe [Endpoint ID] --region=us-central1 | grep -i serviceAttachment:
Vous trouverez un exemple ci-dessous. :
user@cloudshell:$ gcloud ai endpoints describe 2124795225560842240 --region=us-central1 | grep -i serviceAttachment:
Using endpoint [https://us-central1-aiplatform.googleapis.com/]
serviceAttachment: projects/o9457b320a852208e-tp/regions/us-central1/serviceAttachments/gkedpm-52065579567eaf39bfe24f25f7981d
Copiez le contenu après serviceAttachment dans une variable appelée "Service_attachment". Vous en aurez besoin ultérieurement lors de la création de la connexion PSC.
user@cloudshell:$ Service_attachment=projects/o9457b320a852208e-tp/regions/us-central1/serviceAttachments/gkedpm-52065579567eaf39bfe24f25f7981d
4. Configuration du client
Créer le VPC client
Dans Cloud Shell, procédez comme suit :
gcloud compute networks create consumer-vpc --project=$projectid --subnet-mode=custom
Créer le sous-réseau de la VM cliente
Dans Cloud Shell, procédez comme suit :
gcloud compute networks subnets create consumer-vm-subnet --project=$projectid --range=192.168.1.0/24 --network=consumer-vpc --region=us-central1 --enable-private-ip-google-access
Créer le sous-réseau du point de terminaison PSC
gcloud compute networks subnets create pscendpoint-subnet --project=$projectid --range=10.10.10.0/28 --network=consumer-vpc --region=us-central1
5. 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 que vous souhaitez rendre accessibles à l'aide d'IAP ;
- autorise le trafic entrant à partir de la plage IP 35.235.240.0/20. qui 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
6. Créer des instances de VM clientes
Dans Cloud Shell, créez l'instance de VM cliente, consumer-vm.
gcloud compute instances create consumer-vm \
--project=$projectid \
--machine-type=e2-micro \
--image-family debian-11 \
--no-address \
--shielded-secure-boot \
--image-project debian-cloud \
--zone us-central1-a \
--subnet=consumer-vm-subnet
7. Points de terminaison Private Service Connect
Le client crée un point de terminaison client (règle de transfert) avec une adresse IP interne dans son VPC. Ce point de terminaison PSC cible le rattachement de service du producteur. Les clients du VPC client ou du réseau hybride peuvent envoyer du trafic à cette adresse IP interne pour atteindre le service du producteur.
Réserver une adresse IP pour le point de terminaison client.
Dans Cloud Shell, créez la règle de transfert.
gcloud compute addresses create psc-address \
--project=$projectid \
--region=us-central1 \
--subnet=pscendpoint-subnet \
--addresses=10.10.10.6
Vérifier que l'adresse IP est réservée
Dans Cloud Shell, répertoriez l'adresse IP réservée.
gcloud compute addresses list
L'adresse IP 10.10.10.6 doit être réservée.

Créez le point de terminaison client en spécifiant l'URI du rattachement de service, target-service-attachment, que vous avez capturé à l'étape précédente, dans la section Déployer le modèle.
Dans Cloud Shell, décrivez le rattachement réseau.
gcloud compute forwarding-rules create psc-consumer-ep \
--network=consumer-vpc \
--address=psc-address \
--region=us-central1 \
--target-service-attachment=$Service_attachment \
--project=$projectid
Vérifier que le rattachement de service accepte le point de terminaison
gcloud compute forwarding-rules describe psc-consumer-ep \
--project=$projectid \
--region=us-central1 \
Dans la réponse, vérifiez que l'état "ACCEPTED" s'affiche dans le champ pscConnectionStatus.

8. Tester à partir de la VM cliente
Dans Cloud Shell, procédez comme suit pour autoriser la VM cliente à accéder à l'API Vertex Model Garden.
Connectez-vous en SSH à la VM cliente.

Authentifiez-vous à nouveau à l'aide des identifiants par défaut de l'application et spécifiez les champs d'application Vertex AI.
gcloud auth application-default login
--scopes=https://www.googleapis.com/auth/cloud-platform
Utilisez le tableau ci-dessous pour générer une commande CURLl et ajustez-la en fonction de votre environnement.
Attribut | Valeur |
Protocole | HTTP |
Emplacement | us-central1 |
Point de terminaison de prédiction en ligne | 2133539641536544768 |
ID du projet | test4-473419 |
Modèle | gemma-3-12b-it |
Adresse IP du point de terminaison Private Service Connect | 10.10.10.6 |
Messages | [{"role": "user","content": "What weighs more 1 pound of feathers or rocks?"}] |
Mettez à jour et exécutez la commande curl en fonction des détails de vos environnements :
curl -k -v -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" -H "Content-Type: application/json" http://[PSC-IP]/v1/projects/[Project-ID]/locations/us-central1/endpoints/[Predictions Endpoint]/chat/completions -d '{"model": "google/gemma-3-12b-it", "messages": [{"role": "user","content": "What weighs more 1 pound of feathers or rocks?"}] }'
Exemple :
curl -k -v -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" -H "Content-Type: application/json" http://10.10.10.6/v1/projects/test4-473419/locations/us-central1/endpoints/2133539641536544768/chat/completions -d '{"model": "google/gemma-3-12b-it", "messages": [{"role": "user","content": "What weighs more 1 pound of feathers or rocks?"}] }'
RÉSULTAT FINAL : SUCCÈS !
Le résultat que vous devriez voir est une prédiction de Gemma 3 en bas de la sortie. Cela montre que vous avez pu atteindre le point de terminaison de l'API en mode privé via le point de terminaison PSC.
Connection #0 to host 10.10.10.6 left intact
{"id":"chatcmpl-9e941821-65b3-44e4-876c-37d81baf62e0","object":"chat.completion","created":1759009221,"model":"google/gemma-3-12b-it","choices":[{"index":0,"message":{"role":"assistant","reasoning_content":null,"content":"This is a classic trick question! They weigh the same. One pound is one pound, regardless of the material. 😊\n\n\n\n","tool_calls":[]},"logprobs":null,"finish_reason":"stop","stop_reason":106}],"usage":{"prompt_tokens":20,"total_tokens":46,"completion_tokens":26,"prompt_tokens_details":null},"prompt_logprobs":null
9. Effectuer un nettoyage
Dans Cloud Shell, supprimez les composants du tutoriel.
gcloud ai endpoints undeploy-model ENDPOINT_ID --deployed-model-id=DEPLOYED_MODEL_ID --region=us-central1 --quiet
gcloud ai endpoints delete $ENDPOINT_ID --project=$projectid --region=us-central1 --quiet
gcloud ai models delete $MODEL_ID --project=$projectid --region=us-central1 --quiet
gcloud compute instances delete consumer-vm --zone=us-central1-a --quiet
gcloud compute forwarding-rules delete psc-consumer-ep --region=us-central1 --project=$projectid --quiet
gcloud compute addresses delete psc-address --region=us-central1 --project=$projectid --quiet
gcloud compute networks subnets delete pscendpoint-subnet consumer-vm-subnet --region=us-central1 --quiet
gcloud compute firewall-rules delete ssh-iap-consumer --project=$projectid
gcloud compute networks delete consumer-vpc --project=$projectid --quiet
gcloud projects delete $projectid --quiet
10. Félicitations
Félicitations ! Vous avez configuré et validé l'accès privé à l'API Gemma 3 hébergée sur Vertex AI Prediction à l'aide d'un point de terminaison Private Service Connect.
Vous avez créé l'infrastructure client, y compris la réservation d'une adresse IP interne et la configuration d'un point de terminaison Private Service Connect (règle de transfert) dans votre VPC. Ce point de terminaison se connecte de manière sécurisée au service Vertex AI en ciblant le rattachement de service associé à votre modèle Gemma 3 déployé. Cette configuration permet à vos applications du VPC ou des réseaux connectés d'interagir avec l'API Gemma 3 de manière privée et sécurisée, à l'aide d'une adresse IP interne, sans que le trafic n'ait à transiter par l'Internet public.