TLS für sichere Onlinevorhersagen mit Vertex AI verwenden

1. Einführung

Nutzen Sie Private Service Connect (PSC), um einen hochsicheren, privaten Zugriff für Modelle zu erstellen, die aus dem Vertex AI Model Garden bereitgestellt wurden. Anstatt einen öffentlichen Endpunkt verfügbar zu machen, können Sie mit dieser Methode Ihr Modell in einem privaten Vertex AI-Endpunkt bereitstellen, auf den nur innerhalb Ihrer Virtual Private Cloud (VPC) zugegriffen werden kann.

Private Service Connect erstellt einen Endpunkt mit einer internen IP-Adresse in Ihrer VPC, der direkt mit dem von Google verwalteten Vertex AI-Dienst verbunden ist, auf dem Ihr Modell gehostet wird. So können Anwendungen in Ihrer VPC und in lokalen Umgebungen (über Cloud VPN oder Interconnect) Inferenzanfragen mit privaten IPs senden.

Wichtig ist, dass der gesamte Netzwerk-Traffic zwischen Ihrer VPC und dem privaten Vertex AI-Endpunkt im dedizierten Netzwerk von Google verbleibt und vollständig vom öffentlichen Internet isoliert ist. Außerdem wird diese private Verbindung während der Übertragung mit TLS-Verschlüsselung gesichert. Diese End-to-End-Verschlüsselung schützt Ihre Vorhersageanfragen und Modellantworten und verbessert so die Vertraulichkeit und Integrität der Daten. Die Kombination aus Netzwerkisolation über PSC und TLS-Verschlüsselung bietet eine robuste und sichere Umgebung für Ihre Onlinevorhersagen, reduziert die Latenz und stärkt Ihre Sicherheitslage erheblich.

8bdac2f2d3dd88c9.png

Was Sie erstellen

In dieser Anleitung laden Sie Gemma 3 aus Model Garden herunter, das in Vertex AI Online Inference als privater Endpunkt gehostet wird, auf den über Private Service Connect zugegriffen werden kann. Ihre End-to-End-Einrichtung umfasst Folgendes:

  1. Model Garden-Modell: Sie wählen Gemma 3 aus dem Vertex AI Model Garden aus und stellen es in einem Private Service Connect-Endpunkt bereit.
  2. Private Service Connect: Sie konfigurieren einen Nutzerendpunkt in Ihrer Virtual Private Cloud (VPC), der aus einer internen IP-Adresse in Ihrem eigenen Netzwerk besteht.
  3. Sichere Verbindung zu Vertex AI: Der PSC-Endpunkt zielt auf den Dienstanhang ab, der von Vertex AI automatisch für die private Modellbereitstellung generiert wird. Dadurch wird eine private Verbindung hergestellt, sodass der Traffic zwischen Ihrer VPC und dem Modellbereitstellungsendpunkt nicht über das öffentliche Internet geleitet wird.
  4. Clientkonfiguration in Ihrer VPC: Sie richten einen Client (z.B. eine Compute Engine-VM) in Ihrer VPC ein, um Inferenzanfragen mit der internen IP-Adresse des PSC-Endpunkts an das bereitgestellte Modell zu senden.
  5. TLS-Verschlüsselung prüfen: Von der Client-VM in Ihrer VPC aus stellen Sie mit Standardtools ( openssl s_client) eine Verbindung zur internen IP-Adresse des PSC-Endpunkts her. In diesem Schritt können Sie prüfen, ob der Kommunikationskanal zum Vertex AI-Dienst tatsächlich mit TLS verschlüsselt ist. Dazu untersuchen Sie die Handshake-Details und das präsentierte Serverzertifikat.

Am Ende haben Sie ein funktionierendes Beispiel für ein Model Garden-Modell, das privat bereitgestellt wird und nur über Ihr angegebenes VPC-Netzwerk zugänglich ist.

Lerninhalte

In dieser Anleitung erfahren Sie, wie Sie ein Modell aus dem Vertex AI Model Garden bereitstellen und es über Private Service Connect (PSC) sicher von Ihrer Virtual Private Cloud (VPC) aus zugänglich machen. Mit dieser Methode können Ihre Anwendungen in Ihrer VPC (der Nutzer) privat eine Verbindung zum Vertex AI-Modellendpunkt (dem Dienstersteller) herstellen, ohne das öffentliche Internet zu durchlaufen.

Im Einzelnen lernen Sie Folgendes:

  1. PSC für Vertex AI: Wie PSC private und sichere Verbindungen zwischen Nutzern und Erstellern ermöglicht. Ihre VPC kann über interne IP-Adressen auf das bereitgestellte Model Garden-Modell zugreifen.
  2. Modell mit privatem Zugriff bereitstellen: So konfigurieren Sie einen Vertex AI-Endpunkt für Ihr Model Garden-Modell, um PSC zu verwenden und es zu einem privaten Endpunkt zu machen.
  3. Rolle des Dienstanhangs: Wenn Sie ein Modell in einem privaten Vertex AI-Endpunkt bereitstellen, erstellt Google Cloud automatisch einen Dienstanhang in einem von Google verwalteten Mandantenprojekt. Dieser Dienstanhang macht den Dienst zur Bereitstellung des Modells für Nutzernetzwerke verfügbar.
  4. PSC-Endpunkt in Ihrer VPC erstellen:
  • So rufen Sie den eindeutigen URI des Dienstanhangs aus den Details Ihres bereitgestellten Vertex AI-Endpunkts ab.
  • So reservieren Sie eine interne IP-Adresse in Ihrem ausgewählten Subnetz in Ihrer VPC.
  • So erstellen Sie eine Weiterleitungsregel in Ihrer VPC, die als PSC-Endpunkt fungiert und auf den Vertex AI-Dienstanhang abzielt. Über diesen Endpunkt ist das Modell über die reservierte interne IP-Adresse zugänglich.
  1. Private Konnektivität einrichten: Wie der PSC-Endpunkt in Ihrer VPC eine Verbindung zum Dienstanhang herstellt und Ihr Netzwerk sicher mit dem Vertex AI-Dienst verbindet.
  2. Inferenzanfragen privat senden: So senden Sie Vorhersageanfragen von Ressourcen (z. B. Compute Engine-VMs) in Ihrer VPC an die interne IP-Adresse des PSC-Endpunkts.
  3. Validierung: Schritte zum Testen und Bestätigen, dass Sie Inferenzanfragen über die private Verbindung erfolgreich von Ihrer VPC an das bereitgestellte Model Garden-Modell senden können.
  4. TLS-Verschlüsselung prüfen:So verwenden Sie Tools von Ihrem VPC-Client (z.B. einer Compute Engine-VM) aus, um über TLS eine Verbindung zur internen IP-Adresse des PSC-Endpunkts herzustellen.

So können Sie Modelle aus Model Garden hosten, die nur über Ihre private Netzwerkinfrastruktur erreichbar sind.

Voraussetzungen

Google Cloud-Projekt

IAM-Berechtigungen

2. Hinweis

Projekt für die Anleitung aktualisieren

In dieser Anleitung werden $variables verwendet, um die Implementierung der gcloud-Konfiguration in Cloud Shell zu erleichtern.

Führen Sie in Cloud Shell folgende Schritte aus:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
projectid=[YOUR-PROJECT-ID]
echo $projectid

API-Aktivierung

Führen Sie in Cloud Shell folgende Schritte aus:

gcloud services enable "compute.googleapis.com"
gcloud services enable "aiplatform.googleapis.com"
gcloud services enable "serviceusage.googleapis.com"
gcloud services enable dns.googleapis.com

3. Modell bereitstellen

Folgen Sie der Anleitung unten, um Ihr Modell aus Model Garden bereitzustellen.

Rufen Sie in der Google Cloud Console Model Garden auf und suchen Sie nach Gemma 3.

47c724030a846b25.png

Klicken Sie auf „Modell bereitstellen“ und wählen Sie „Vertex AI“ aus.

a9a9f4aef7e52356.png

Wählen Sie unten im Bereich „Bereitstellungseinstellungen“ die Option „Einstellungen bearbeiten“ aus.

d5b449d2893ddf2f.png

Achten Sie im Bereich „In Vertex AI bereitstellen“ darauf, dass der Endpunktzugriff als „Private Service Connect“ konfiguriert ist, und wählen Sie dann Ihr Projekt aus.

c679aa90c3638e31.png

Übernehmen Sie für alle anderen Optionen die Standardeinstellungen und wählen Sie unten „Bereitstellen“ aus. Prüfen Sie in Ihren Benachrichtigungen den Bereitstellungsstatus.

d5eab71cbb43e2fe.png

Wählen Sie in Model Garden die Region „us-central1“ aus, in der das Modell und der Endpunkt von Gemma 3 bereitgestellt werden. Die Modellbereitstellung dauert etwa 5 Minuten.

fce9d5c9152255f1.png

Nach Abschluss der Bereitstellung ändert sich der Status des Endpunkts nach 30 Minuten in „Aktiv“.

d6cc741415213e1a.png

Rufen Sie die Endpunkt-ID ab und notieren Sie sie, indem Sie den Endpunkt auswählen.

87d1756fa534619d.png

Wählen Sie den Endpunkt aus, um die Endpunkt-ID abzurufen und die Variable zu aktualisieren. Im gezeigten Beispiel ist die ID „1934769929467199488“.

Führen Sie in Cloud Shell folgende Schritte aus:

endpointID=<Enter_Your_Endpoint_ID>
region=us-central1

Führen Sie die folgenden Schritte aus, um den URI des Dienstanhangs für Private Service Connect abzurufen. Dieser URI-String wird vom Nutzer verwendet, wenn er einen PSC-Nutzerendpunkt bereitstellt.

Verwenden Sie in Cloud Shell die Variable für die Endpunkt-ID/Region und führen Sie dann den folgenden Befehl aus:

gcloud ai endpoints describe $endpointID --region=$region  | grep -i serviceAttachment:

Ein Beispiel dafür sehen Sie unten:

user@cloudshell:$ gcloud ai endpoints describe 1934769929467199488 --region=us-central1 | grep -i serviceAttachment:

Using endpoint [https://us-central1-aiplatform.googleapis.com/]
    serviceAttachment: projects/o9457b320a852208e-tp/regions/us-central1/serviceAttachments/gkedpm-52065579567eaf39bfe24f25f7981d

Kopieren Sie den Inhalt nach „serviceAttachment“ in eine Variable mit dem Namen „Service_attachment“. Sie benötigen sie später, wenn Sie die PSC-Verbindung erstellen.

user@cloudshell:$ Service_attachment=<Enter_Your_ServiceAttachment>

4. Nutzerkonfiguration

Nutzer-VPC erstellen

Führen Sie in Cloud Shell folgende Schritte aus:

gcloud compute networks create consumer-vpc --project=$projectid --subnet-mode=custom

Subnetz für die Nutzer-VM erstellen

Führen Sie in Cloud Shell folgende Schritte aus:

gcloud compute networks subnets create consumer-vm-subnet --project=$projectid --range=192.168.1.0/24 --network=consumer-vpc --region=$region --enable-private-ip-google-access

Subnetz für den PSC-Endpunkt erstellen. Führen Sie dazu in Cloud Shell folgende Schritte aus:****

gcloud compute networks subnets create pscendpoint-subnet --project=$projectid --range=10.10.10.0/28 --network=consumer-vpc --region=$region

5. IAP aktivieren

Damit IAP eine Verbindung zu Ihren VM-Instanzen herstellen kann, erstellen Sie eine Firewallregel, die:

  • für alle VM-Instanzen gilt, die über IAP zugänglich sein sollen.
  • eingehenden Traffic aus dem IP-Bereich „35.235.240.0/20“ zulässt. Dieser Bereich enthält alle IP-Adressen, die IAP für die TCP-Weiterleitung verwendet.

Erstellen Sie in Cloud Shell die IAP-Firewallregel.

gcloud compute firewall-rules create ssh-iap-consumer \
    --network consumer-vpc \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

6. VM-Instanzen für den Nutzer erstellen

Erstellen Sie in Cloud Shell die VM-Instanz für den Nutzer, „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. Private Service Connect-Endpunkte

Der Nutzer erstellt einen Nutzerendpunkt (Weiterleitungsregel) mit einer internen IP-Adresse in seiner VPC. Dieser PSC-Endpunkt zielt auf den Dienstanhang des Erstellers ab. Clients in der VPC oder im Hybridnetzwerk des Nutzers können Traffic an diese interne IP-Adresse senden, um den Dienst des Erstellers zu erreichen.

Reservieren Sie eine IP-Adresse für den Nutzerendpunkt.

Erstellen Sie in Cloud Shell die Weiterleitungsregel.

gcloud compute addresses create psc-address \
    --project=$projectid \
    --region=$region \
    --subnet=pscendpoint-subnet \
    --addresses=10.10.10.6

Prüfen Sie, ob die IP-Adresse reserviert ist.

Listen Sie in Cloud Shell die reservierte IP-Adresse auf.

gcloud compute addresses list 

Die IP-Adresse „10.10.10.6“ sollte reserviert sein.

3029e97ddc9c192d.png

Erstellen Sie den Nutzerendpunkt, indem Sie den URI des Dienstanhangs „target-service-attachment“ angeben, den Sie im vorherigen Schritt im Abschnitt „Modell bereitstellen“ erfasst haben.

Beschreiben Sie in Cloud Shell den Netzwerk-Anhang.

 gcloud compute forwarding-rules create psc-consumer-ep \
    --network=consumer-vpc \
    --address=psc-address \
    --region=$region \
    --target-service-attachment=$Service_attachment \
    --project=$projectid

Prüfen Sie, ob der Dienstanhang den Endpunkt akzeptiert.

Führen Sie in Cloud Shell folgende Schritte aus:

gcloud compute forwarding-rules describe psc-consumer-ep \
    --project=$projectid \
    --region=$region

Prüfen Sie in der Antwort, ob für das Feld „pscConnectionStatus“ der Status „ACCEPTED“ angezeigt wird.

e1debc2bdb6a1a44.png

8. Verbindung zum Vertex AI-HTTPS-Endpunkt über TLS einrichten

Erstellen Sie eine private DNS-Zone, damit Sie Online Inference ohne Angabe einer IP-Adresse nutzen können.

Führen Sie in Cloud Shell folgende Schritte aus:

DNS_NAME_SUFFIX="prediction.p.vertexai.goog."  

gcloud dns managed-zones create vertex \
--project=$projectid \
--dns-name=$DNS_NAME_SUFFIX \
--networks=consumer-vpc \
--visibility=private \
--description="A DNS zone for Vertex AI endpoints using Private Service Connect."

Erstellen Sie einen A-Eintrag, um die Domain der PSC-IP-Adresse zuzuordnen.

Führen Sie in Cloud Shell folgende Schritte aus:

gcloud dns record-sets create "*.prediction.p.vertexai.goog." \
  --zone=vertex \
  --type=A \
  --ttl=300 \
  --rrdatas="10.10.10.6"

Erstellen Sie eine Cloud Router-Instanz als Voraussetzung für eine NAT-Instanz.

Führen Sie in Cloud Shell folgende Schritte aus:

gcloud compute routers create consumer-cr \
--region=$region --network=consumer-vpc \
--asn=65001 

Erstellen Sie eine Cloud NAT-Instanz, mit der Sie die Pakete „openssl“ und „dnsutils“ herunterladen können.

Führen Sie in Cloud Shell folgende Schritte aus:

gcloud compute routers nats create consumer-nat-gw \
  --router=consumer-cr \
  --region=$region \
  --nat-all-subnet-ip-ranges \
  --auto-allocate-nat-external-ips 

Stellen Sie eine SSH-Verbindung (Konsole) zur Nutzer-VM her. Führen Sie in Cloud Shell folgende Schritte aus:

gcloud compute ssh --zone "us-central1-a" "consumer-vm" --tunnel-through-iap --project "$projectid"

Aktualisieren Sie die folgenden Pakete, installieren Sie „open-ssl“ und installieren Sie DNS-Dienstprogramme.

Führen Sie in Cloud Shell folgende Schritte aus:

sudo apt update 
sudo apt install openssl
sudo apt-get install -y dnsutils

Sie benötigen die Projektnummer im nächsten Schritt. Führen Sie den folgenden Befehl in Cloud Shell aus, um Ihre Projektnummer abzurufen und in einer Variablen zu speichern:

Führen Sie in Cloud Shell folgende Schritte aus:

gcloud projects describe $projectid --format="value(projectNumber)"
Example Output: 549538389202
projectNumber=549538389202

In den nächsten Schritten müssen Sie einige weitere Variablen definieren. Definieren Sie diese Variablen(ENDPOINT_ID, REGION, VERTEX_AI_PROJECT_ID), indem Sie sie zuerst aus Cloud Shell erfassen und dann dieselben Variablen in der VM erstellen.

Führen Sie in Cloud Shell folgende Schritte aus:

echo $projectNumber
echo $projectid 
echo $region
echo $endpointID

Beispielausgabe:

549538389202
test4-473419
Us-central1
1934769929467199s

Fügen Sie diese Variablen in Ihrer Nutzer-VM hinzu. Beispiel:

projectNumber=1934769929467199488  
projectid=test4-473419
region=us-central1
endpointID=1934769929467199488

Laden Sie das Vertex AI-Zertifikat herunter, indem Sie den folgenden Befehl in Ihrem Home-Verzeichnis in Ihrer VM ausführen. Mit diesem Befehl wird eine Datei mit dem Namen vertex_certificate.crt erstellt.

sudo openssl s_client -showcerts -connect $endpointID-$region-$projectNumber.prediction.p.vertexai.goog:443 </dev/null | openssl x509 -outform pem -out vertex_certificate.crt

Output should look like below, error is expected.

2f2899141dde1af2.png

Verschieben Sie das Zertifikat in den System-Truststore.

sudo mv vertex_certificate.crt /usr/local/share/ca-certificates

Aktualisieren Sie den Zertifikatsmanager.

sudo update-ca-certificates

Nach der Aktualisierung sollte es so aussehen:

user@linux-vm:~$ sudo update-ca-certificates

Updating certificates in /etc/ssl/certs...

1 added, 0 removed; done.

Running hooks in /etc/ca-certificates/update.d...

Done.

9. Abschließender Test von der Nutzer-VM aus

Authentifizieren Sie sich auf der Nutzer-VM noch einmal mit den Standardanmeldedaten für Anwendungen und geben Sie die Vertex AI-Bereiche an:

gcloud auth application-default login
--scopes=https://www.googleapis.com/auth/cloud-platform 

Führen Sie auf der Nutzer-VM den folgenden curl-Befehl aus, um die Vorhersage für Ihr Gemini-Modell mit der Eingabeaufforderung „What weighs more 1 pound of feathers or rocks?“ zu testen.

curl -v -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)"   -H "Content-Type: application/json" https://$endpointID-$region-$projectNumber.prediction.p.vertexai.goog/v1/projects/$projectid/locations/$region/endpoints/$endpointID/chat/completions   -d '{"model": "google/gemma-3-12b-it", "messages": [{"role": "user","content": "What weighs more 1 pound of feathers or rocks?"}] }'

ABSCHLIESSENDES ERGEBNIS – ERFOLG!!!

Im unteren Teil der Ausgabe sollte die Vorhersage von Gemma 3 angezeigt werden. Das zeigt, dass Sie den API-Endpunkt privat über den PSC-Endpunkt erreichen konnten.

 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

10. Bereinigen

Löschen Sie in Cloud Shell die Komponenten der Anleitung.

Get Deployed Model ID first with this command, you will need it to delete the Endpoint ID:

gcloud ai endpoints describe $endpointID \
  --region=$region \
  --project=$projectid \
  --format="table[no-heading](deployedModels.id)"

Example Output: 7389140900875599872

Put it in a Variable:

deployedModelID=7389140900875599872

Run following Commands:

gcloud ai endpoints undeploy-model $endpointID --deployed-model-id=$deployedModelID --region=$region --quiet

gcloud ai endpoints delete $endpointID --project=$projectid --region=$region --quiet

Run Following command to get $MODEL_ID to delete Model:

gcloud ai models list --project=$projectid --region=$region

Example Output:

Using endpoint [https://us-central1-aiplatform.googleapis.com/]
MODEL_ID: gemma-3-12b-it-1768409471942
DISPLAY_NAME: gemma-3-12b-it-1768409471942

Put MODEL_ID value in a variable:

MODEL_ID=gemma-3-12b-it-1768409471942

Run the follow command to delete Model:

gcloud ai models delete $MODEL_ID --project=$projectid --region=$region --quiet

Clean up rest of the lab:
gcloud compute instances delete consumer-vm --zone=us-central1-a --quiet

gcloud compute forwarding-rules delete psc-consumer-ep --region=$region --project=$projectid --quiet

gcloud compute addresses delete psc-address --region=$region --project=$projectid --quiet

gcloud compute networks subnets delete pscendpoint-subnet consumer-vm-subnet --region=$region --quiet

gcloud compute firewall-rules delete ssh-iap-consumer --project=$projectid

gcloud compute routers delete consumer-cr --region=$region

gcloud compute networks delete consumer-vpc --project=$projectid --quiet

11. Glückwunsch

Glückwunsch! Sie haben den privaten Zugriff auf die Gemma 3 API, die in Vertex AI Prediction gehostet wird, erfolgreich konfiguriert und validiert. Dazu haben Sie einen Private Service Connect-Endpunkt mit einem selbstsignierten Zertifikat verwendet, das Sie von Vertex AI erhalten und im Truststore der VMs bereitgestellt haben.

Sie haben die Nutzerinfrastruktur erstellt, einschließlich der Reservierung einer internen IP-Adresse, der Konfiguration eines Private Service Connect-Endpunkts (einer Weiterleitungsregel) in Ihrer VPC und eines privaten DNS, der dem selbstsignierten Zertifikat *prediction.p.vertexai.goog entspricht. Dieser Endpunkt stellt eine sichere Verbindung zum Vertex AI-Dienst her, indem er auf den Dienstanhang abzielt, der mit Ihrem bereitgestellten Gemma 3-Modell verknüpft ist.

Diese Einrichtung sorgt dafür, dass Ihre Anwendungen in der VPC oder in verbundenen Netzwerken privat über eine interne IP-Adresse mit Zertifikaten mit der Gemma 3 API interagieren können. Der gesamte Traffic verbleibt im Google-Netzwerk und durchläuft niemals das öffentliche Internet.

Nächste Schritte

Weitere Informationen und Videos

Referenzdokumente