Private Service Connect für den Zugriff auf Generative AI in Vertex AI von lokal aus verwenden


Lokale Hosts können Generative AI in Vertex AI entweder über das öffentliche Internet oder privat über eine Hybridnetzwerkarchitektur erreichen, die Private Service Connect (PSC) über Cloud VPN oder Cloud Interconnect verwendet. Beide Optionen bieten SSL/TLS-Verschlüsselung. Die private Option bietet jedoch eine viel bessere Leistung und wird daher für kritische Anwendungen empfohlen.

In dieser Anleitung verwenden Sie Hochverfügbarkeits-VPN (HA VPN) für den Zugriff auf generative AI auf Vertex AI sowohl öffentlich über Cloud NAT als auch privat zwischen zwei Virtual Private Cloud-Netzwerke (VPC), die als Grundlage für private Konnektivität in Multi-Cloud- und lokalen Umgebungen dienen können.

Diese Anleitung richtet sich an Unternehmensnetzwerkadministratoren, Data Scientists und Forscher, die mit Vertex AI, Virtual Private Cloud (VPC), der Google Cloud Console und Cloud Shell vertraut sind. Vertrautheit mit Generative AI auf Vertex AI ist hilfreich, aber nicht erforderlich.

Diagramm: Architektur der Verwendung von Private Service Connect für den Zugriff auf Generative AI auf Vertex AI

Lernziele

  • Erstellen Sie zwei VPC-Netzwerke, wie im vorherigen Diagramm dargestellt:
    • Das eine (onprem-vpc) steht für ein lokales Netzwerk.
    • Das andere (vertex-networking-vpc) dient dem Zugriff auf die REST API für Generative AI in Vertex AI.
  • Stellen Sie HA VPN-Gateways, Cloud VPN-Tunnel und Cloud Router bereit, um vertex-networking-vpc und onprem-vpc zu verbinden.
  • Erstellen Sie einen PSC-Endpunkt (Private Service Connect) für die Weiterleitung von Anfragen an die GenAI REST API.
  • Konfigurieren Sie ein benutzerdefiniertes Cloud Router Route Advertisement in vertex-networking-vpc, um Routen für den Private Service Connect-Endpunkt gegenüber onprem-vpc anzukündigen.
  • Erstellen Sie in onprem-vpc eine Compute Engine-VM-Instanz, die eine Clientanwendung darstellt, die Anfragen über HA VPN an die GenAI REST API sendet.

Kosten

In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.

Hinweise

  1. In the Google Cloud console, go to the project selector page.

    Go to project selector

  2. Select or create a Google Cloud project.

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Wenn Sie nicht der Projektinhaber sind, muss Ihnen der Projektinhaber die IAM-Rolle roles/resourcemanager.projectIamAdmin zuweisen. Sie benötigen diese Rolle, um sich selbst und Dienstkonten IAM-Rollen und -Berechtigungen zuzuweisen.
  5. Öffnen Sie Cloud Shell, um die in dieser Anleitung aufgeführten Befehle auszuführen. Cloud Shell ist eine interaktive Shell-Umgebung für Google Cloud, mit der Sie Projekte und Ressourcen über Ihren Webbrowser verwalten können.
  6. Legen Sie in Cloud Shell das aktuelle Projekt auf Ihre Google Cloud-Projekt-ID fest und speichern Sie dann dieselbe Projekt-ID in der Shell-Variablen projectid:
      projectid="PROJECT_ID"
      gcloud config set project ${projectid}
    Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID. Sie finden Ihre Projekt-ID gegebenenfalls in der Google Cloud Console. Weitere Informationen finden Sie unter Projekt-ID ermitteln.
  7. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/compute.instanceAdmin.v1, roles/compute.networkAdmin, roles/compute.securityAdmin, roles/dns.admin, roles/iap.tunnelResourceAccessor, roles/iam.serviceAccountCreator, roles/iam.serviceAccountUser, roles/iam.serviceAccountDeleter, roles/resourcemanager.projectIamAdmin, roles/servicedirectory.editor, roles/servicemanagement.quotaAdmin, roles/aiplatform.user

    gcloud projects add-iam-policy-binding PROJECT_ID --member="USER_IDENTIFIER" --role=ROLE
    • Replace PROJECT_ID with your project ID.
    • Replace USER_IDENTIFIER with the identifier for your user account. For example, user:myemail@example.com.

    • Replace ROLE with each individual role.
  8. Enable the DNS, IAM, Compute Engine, Service Usage und Vertex AI APIs:

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

Erstellen Sie zwei VPC-Netzwerke: vertex-networking-vpc und onprem-vpc.

In diesem Abschnitt erstellen Sie zwei VPC-Netzwerke: Eines ist das primäre Netzwerk für den Zugriff auf die generative AI von Vertex AI (auch als GenAI bezeichnet) und das andere zur Simulation des lokalen Netzwerks. eine

VPC-Netzwerke erstellen

  1. Erstellen Sie das VPC-Netzwerk für den Zugriff auf die GenAI API (vertex-networking-vpc):

    gcloud compute networks create vertex-networking-vpc --subnet-mode custom
    
  2. Erstellen Sie das VPC-Netzwerk, um das lokale Netzwerk (onprem-vpc) zu simulieren:

    gcloud compute networks create onprem-vpc --subnet-mode custom
    
  3. Erstellen Sie im Netzwerk onprem-vpc ein Subnetz mit dem Namen onprem-vpc-subnet1 mit einem primären IPv4-Bereich von 172.16.10.0/24:

    gcloud compute networks subnets create onprem-vpc-subnet1 \
       --range 172.16.10.0/24 \
       --network onprem-vpc \
       --region us-central1
    
  4. Rufen Sie in der Google Cloud Console auf der Seite VPC-Netzwerk den Tab Netzwerke im aktuellen Projekt auf.

    Zum VPC-Netzwerk

  5. Prüfen Sie in der Liste der VPC-Netzwerke, ob die beiden Netzwerke erstellt wurden: vertex-networking-vpc und onprem-vpc.

  6. Klicken Sie auf der Seite VPC-Netzwerk auf den Tab Subnetze im aktuellen Projekt.

  7. Prüfen Sie in der Liste der VPC-Subnetze, ob das Subnetz onprem-vpc-subnet1 im Netzwerk onprem-vpc erstellt wurde.

Hybridkonnektivität konfigurieren

In diesem Abschnitt erstellen Sie zwei (HA VPN)-Gateways, die miteinander verbunden sind. Eines befindet sich im VPC-Netzwerk vertex-networking-vpc. Das andere befindet sich im VPC-Netzwerk onprem-vpc. Jedes Gateway enthält einen Cloud Router und ein VPN-Tunnelpaar.

HA VPN-Gateways erstellen

  1. Erstellen Sie in Cloud Shell das HA VPN-Gateway für das VPC-Netzwerk vertex-networking-vpc:

    gcloud compute vpn-gateways create vertex-networking-vpn-gw1 \
       --network vertex-networking-vpc \
       --region us-central1
    
  2. Erstellen Sie das HA VPN-Gateway für das VPC-Netzwerk onprem-vpc:

    gcloud compute vpn-gateways create onprem-vpn-gw1 \
       --network onprem-vpc \
       --region us-central1
    
  3. Wechseln Sie in der Google Cloud Console auf der Seite VPN zum Tab Cloud VPN-Gateways.

    Zu VPN

  4. Prüfen Sie in der Liste der VPN-Gateways, ob die beiden Gateways (vertex-networking-vpn-gw1 und onprem-vpn-gw1) erstellt wurden und jedes der Gateways zwei IP-Adressen hat.

Cloud Router erstellen

  1. Erstellen Sie in Cloud Shell einen Cloud Router für das VPC-Netzwerk vertex-networking-vpc:

    gcloud compute routers create vertex-networking-vpc-router1 \
       --region us-central1\
       --network vertex-networking-vpc \
       --asn 65001
    
  2. Erstellen Sie einen Cloud Router für das VPC-Netzwerk onprem-vpc:

    gcloud compute routers create onprem-vpc-router1 \
       --region us-central1\
       --network onprem-vpc\
       --asn 65002
    

Cloud NAT-Gateway zum VPC-Netzwerk onprem-vpc hinzufügen

In diesem Schritt fügen Sie dem Cloud Router für das VPC-Netzwerk onprem-vpc ein Cloud NAT-Gateway hinzu. Ein Cloud NAT-Gateway bietet ausgehende Verbindungen für Compute Engine-VM-Instanzen, die keine externen IP-Adressen haben.

  1. Fügen Sie in Cloud Shell dem Cloud Router onprem-vpc-router1 ein Cloud NAT-Gateway hinzu:

    gcloud compute routers nats create us-central-cloudnat-onprem \
       --router=onprem-vpc-router1 \
       --auto-allocate-nat-external-ips \
       --nat-all-subnet-ip-ranges \
       --region us-central1
    
  2. Wechseln Sie in der Google Cloud Console zur Seite Cloud Routers.

    Zu "Cloud Router"

  3. Prüfen Sie in der Liste der Cloud Router, ob vertex-networking-vpc-router1 und onprem-vpc-router1 erstellt wurden. Möglicherweise müssen Sie den Browsertab der Google Cloud Console aktualisieren, um die neuen Werte zu sehen.

  4. Klicken Sie in der Liste der Cloud Router auf onprem-vpc-router1.

  5. Prüfen Sie auf der Seite Routerdetails, ob das Cloud NAT-Gateway us-central-cloudnat-onprem erstellt wurde.

VPN-Tunnel erstellen

  1. Erstellen Sie im Netzwerk vertex-networking-vpc einen VPN-Tunnel mit dem Namen vertex-networking-vpc-tunnel0:

    gcloud compute vpn-tunnels create vertex-networking-vpc-tunnel0 \
       --peer-gcp-gateway onprem-vpn-gw1 \
       --region us-central1 \
       --ike-version 2 \
       --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
       --router vertex-networking-vpc-router1 \
       --vpn-gateway vertex-networking-vpn-gw1 \
       --interface 0
    
  2. Erstellen Sie im Netzwerk vertex-networking-vpc einen VPN-Tunnel mit dem Namen vertex-networking-vpc-tunnel1:

    gcloud compute vpn-tunnels create vertex-networking-vpc-tunnel1 \
       --peer-gcp-gateway onprem-vpn-gw1 \
       --region us-central1 \
       --ike-version 2 \
       --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
       --router vertex-networking-vpc-router1 \
       --vpn-gateway vertex-networking-vpn-gw1 \
       --interface 1
    
  3. Erstellen Sie im Netzwerk onprem-vpc einen VPN-Tunnel mit dem Namen onprem-vpc-tunnel0:

    gcloud compute vpn-tunnels create onprem-vpc-tunnel0 \
       --peer-gcp-gateway vertex-networking-vpn-gw1 \
       --region us-central1\
       --ike-version 2 \
       --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
       --router onprem-vpc-router1 \
       --vpn-gateway onprem-vpn-gw1 \
       --interface 0
    
  4. Erstellen Sie im Netzwerk onprem-vpc einen VPN-Tunnel mit dem Namen onprem-vpc-tunnel1:

    gcloud compute vpn-tunnels create onprem-vpc-tunnel1 \
       --peer-gcp-gateway vertex-networking-vpn-gw1 \
       --region us-central1\
       --ike-version 2 \
       --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
       --router onprem-vpc-router1 \
       --vpn-gateway onprem-vpn-gw1 \
       --interface 1
    
  5. Rufen Sie in der Google Cloud Console die Seite VPN auf.

    Zu VPN

  6. Prüfen Sie in der Liste der VPN-Tunnel, ob die vier VPN-Tunnel erstellt wurden.

BGP-Sitzungen erstellen

Cloud Router verwendet das Border Gateway Protocol (BGP), um Routen zwischen Ihrem VPC-Netzwerk (in diesem Fall vertex-networking-vpc) und Ihrem lokalen Netzwerk (dargestellt durch onprem-vpc) auszutauschen. Auf dem Cloud Router konfigurieren Sie eine Schnittstelle und einen BGP-Peer für Ihren lokalen Router. Die Konfigurationen für Schnittstelle und BGP-Peer bilden zusammen eine BGP-Sitzung. In diesem Abschnitt erstellen Sie zwei BGP-Sitzungen für vertex-networking-vpc und zwei für onprem-vpc.

Nachdem Sie die Schnittstellen und BGP-Peers zwischen Ihren Routern konfiguriert haben, tauschen sie automatisch Routen aus.

BGP-Sitzungen für vertex-networking-vpc einrichten

  1. Erstellen Sie in Cloud Shell im Netzwerk vertex-networking-vpc eine BGP-Schnittstelle für vertex-networking-vpc-tunnel0:

    gcloud compute routers add-interface vertex-networking-vpc-router1 \
       --interface-name if-tunnel0-to-onprem \
       --ip-address 169.254.0.1 \
       --mask-length 30 \
       --vpn-tunnel vertex-networking-vpc-tunnel0 \
       --region us-central1
    
  2. Erstellen Sie im Netzwerk vertex-networking-vpc einen BGP-Peer für bgp-onprem-tunnel0:

    gcloud compute routers add-bgp-peer vertex-networking-vpc-router1 \
       --peer-name bgp-onprem-tunnel0 \
       --interface if-tunnel0-to-onprem \
       --peer-ip-address 169.254.0.2 \
       --peer-asn 65002 \
       --region us-central1
    
  3. Erstellen Sie im vertex-networking-vpc-Netzwerk eine BGP-Schnittstelle für vertex-networking-vpc-tunnel1:

    gcloud compute routers add-interface vertex-networking-vpc-router1 \
       --interface-name if-tunnel1-to-onprem \
       --ip-address 169.254.1.1 \
       --mask-length 30 \
       --vpn-tunnel vertex-networking-vpc-tunnel1 \
       --region us-central1
    
  4. Erstellen Sie im Netzwerk vertex-networking-vpc einen BGP-Peer für bgp-onprem-tunnel1:

    gcloud compute routers add-bgp-peer vertex-networking-vpc-router1 \
       --peer-name bgp-onprem-tunnel1 \
       --interface if-tunnel1-to-onprem \
       --peer-ip-address 169.254.1.2 \
       --peer-asn 65002 \
       --region us-central1
    

BGP-Sitzungen für onprem-vpc einrichten

  1. Erstellen Sie im onprem-vpc-Netzwerk eine BGP-Schnittstelle für onprem-vpc-tunnel0:

    gcloud compute routers add-interface onprem-vpc-router1 \
       --interface-name if-tunnel0-to-vertex-networking-vpc \
       --ip-address 169.254.0.2 \
       --mask-length 30 \
       --vpn-tunnel onprem-vpc-tunnel0 \
       --region us-central1
    
  2. Erstellen Sie im Netzwerk onprem-vpc einen BGP-Peer für bgp-vertex-networking-vpc-tunnel0:

    gcloud compute routers add-bgp-peer onprem-vpc-router1 \
       --peer-name bgp-vertex-networking-vpc-tunnel0 \
       --interface if-tunnel0-to-vertex-networking-vpc \
       --peer-ip-address 169.254.0.1 \
       --peer-asn 65001 \
       --region us-central1
    
  3. Erstellen Sie im onprem-vpc-Netzwerk eine BGP-Schnittstelle für onprem-vpc-tunnel1:

    gcloud compute routers add-interface onprem-vpc-router1  \
       --interface-name if-tunnel1-to-vertex-networking-vpc \
       --ip-address 169.254.1.2 \
       --mask-length 30 \
       --vpn-tunnel onprem-vpc-tunnel1 \
       --region us-central1
    
  4. Erstellen Sie im Netzwerk onprem-vpc einen BGP-Peer für bgp-vertex-networking-vpc-tunnel1:

    gcloud compute routers add-bgp-peer onprem-vpc-router1 \
       --peer-name bgp-vertex-networking-vpc-tunnel1 \
       --interface if-tunnel1-to-vertex-networking-vpc \
       --peer-ip-address 169.254.1.1 \
       --peer-asn 65001 \
       --region us-central1
    

BGP-Sitzungserstellung prüfen

  1. Rufen Sie in der Google Cloud Console die Seite VPN auf.

    Zu VPN

  2. Prüfen Sie in der Liste der VPN-Tunnel, ob sich der Wert in der Spalte BGP-Sitzungsstatus für jeden Tunnel von BGP-Sitzung konfigurieren in BGP eingerichtet gändert. Möglicherweise müssen Sie den Browsertab der Google Cloud Console aktualisieren, um die neuen Werte zu sehen.

Private Service Connect-Endpunkt (PSC) erstellen

In diesem Abschnitt erstellen Sie einen PSC-Endpunkt (Private Service Connect) für Google APIs, den VM-Instanzen im Netzwerk onprem-vpc für den Zugriff auf die GenAI API über Ihr onprem-vpc-Netzwerk verwenden.

Ein PSC-Endpunkt (Private Service Connect) ist eine interne IP-Adresse im Netzwerk onprem-vpc, auf die Clients in diesem Netzwerk direkt zugreifen können. Dieser Endpunkt wird durch die Bereitstellung einer Weiterleitungsregel erstellt, die den Netzwerkverkehr, der der IP-Adresse des PSC-Endpunkts entspricht, an ein Bundle von Google APIs weiterleitet, insbesondere dieAll-APIs Bundle.

Die IP-Adresse des PSC-Endpunkts (192.168.0.1) wird vom Cloud Router vertex-networking-vpc-router als benutzerdefiniertes Route Advertisement im onprem-vpc-Netzwerk in einem späteren Schritt beworben.

  1. Reservieren Sie eine globale interne IP-Adresse, die Sie dem Endpunkt zuweisen möchten.

    gcloud compute addresses create psc-googleapi-ip \
       --global \
       --purpose=PRIVATE_SERVICE_CONNECT \
       --addresses=192.168.0.1 \
       --network=vertex-networking-vpc
    
  2. Erstellen Sie den Endpunkt zusammen mit einer Weiterleitungsregel, die den Endpunkt mit Google APIs und Google-Diensten verbindet:

    gcloud compute forwarding-rules create pscvertex \
       --global \
       --network=vertex-networking-vpc\
       --address=psc-googleapi-ip \
       --target-google-apis-bundle=all-apis
    
  3. Listen Sie die konfigurierten PSC-Endpunkte auf und prüfen Sie, ob der pscvertex-Endpunkt erstellt wurde:

    gcloud compute forwarding-rules list  \
       --filter target="(all-apis OR vpc-sc)" --global
    
  4. Rufen Sie die Details des konfigurierten PSC-Endpunkts ab und prüfen Sie, ob die IP-Adresse 192.168.0.1 lautet:

    gcloud compute forwarding-rules describe \
       pscvertex --global
    

Benutzerdefiniertes Route Advertisement für vertex-networking-vpc erstellen

In diesem Abschnitt erstellen Sie Folgendes:Benutzerdefiniertes Route Advertisement fürvertex-networking-vpc-router1 (Der Cloud Router für vertex-networking-vpc ), um die IP-Adresse des PSC-Endpunkts gegenüber deronprem-vpc Netzwerk zu bewerben

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud Routers.

    Zu "Cloud Router"

  2. Klicken Sie in der Liste der Cloud Router auf vertex-networking-vpc-router1.

  3. Klicken Sie auf der Seite Routerdetails auf Bearbeiten.

  4. Wählen Sie im Abschnitt Beworbene Routen für Routen die Option Benutzerdefinierte Routen erstellen.

  5. Wählen Sie das Kästchen Alle für den Cloud Router sichtbaren Subnetze bewerben aus. Damit können Sie weiterhin die Subnetze bewerben, die für den Cloud Router zur Verfügung stehen. Wenn Sie diese Option aktivieren, entspricht dies dem Verhalten des Cloud Routers im Standard-Advertising-Modus.

  6. Klicken Sie auf Benutzerdefinierte Route hinzufügen.

  7. Wählen Sie unter Quelle die Option Benutzerdefinierter IP-Bereich aus.

  8. Geben Sie unter IP-Adressbereich die folgende IP-Adresse ein:

    192.168.0.1
    
  9. Geben Sie unter Beschreibung den folgenden Text ein:

    Custom route to advertise Private Service Connect endpoint IP address
    
  10. Klicken Sie auf Fertig und anschließend auf Speichern.

Prüfen, ob onprem-vpc die beworbenen Routen erkannt hat

  1. Rufen Sie in der Google Cloud Console die Seite Routen auf.

    Zur Seite „Routes“

  2. Führen Sie auf dem Tab Aktive Routen folgende Schritte aus:

    1. Wählen Sie für Netzwerk die Option onprem-vpc aus.
    2. Wählen Sie bei Region die Option us-central1 (Iowa) aus.
    3. Klicken Sie auf Ansehen.
    4. Prüfen Sie in der Liste der Routen, ob Einträge vorhanden sind, deren Namen mit onprem-vpc-router1-bgp-vertex-networking-vpc-tunnel0 und onprem-vpc-router1-bgp-vfertex-networking-vpc-tunnel1 beginnen und beide einen Ziel-IP-Bereich{/1 haben. } von 192.168.0.1/32. (192.168.0.1 ist die IP-Adresse des PSC-Endpunkts.)

      Wenn diese Einträge nicht sofort angezeigt werden, warten Sie einige Minuten und aktualisieren Sie dann den Browsertab der Google Cloud Console.

VM-Instanz im lokalen Netzwerk konfigurieren

In diesem Abschnitt erstellen Sie eine Compute Engine-VM-Instanz im VPC-Netzwerk onprem-vpc. Diese VM-Instanz simuliert einen lokalen Client, der eine Verbindung zum PSC-Endpunkt herstellt und auf die GenAI API zugreift.

Ein vom Nutzer verwaltetes Dienstkonto erstellen

In dieser Anleitung erstellen Sie ein nutzerverwaltetes Dienstkonto gemäß den Best Practices für Compute Engine und IAM.

  1. Führen Sie in Cloud Shell die folgenden Befehle aus und ersetzen Sie dabei PROJECT_ID durch Ihre Projekt-ID:

    projectid=PROJECT_ID
    gcloud config set project ${projectid}
    
  2. Erstellen Sie das Dienstkonto:

    gcloud iam service-accounts create user-managed-sa
    
  3. Weisen Sie dem Dienstkonto die IAM-Rolle Vertex AI User (roles/aiplatform.user) zu:

    gcloud projects add-iam-policy-binding $projectid \
       --member="serviceAccount:user-managed-sa@$projectid.iam.gserviceaccount.com" \
       --role="roles/aiplatform.user"
    

on-prem-client VM-Instanz erstellen

In diesem Schritt erstellen Sie die VM-Instanz, die die Private Service Connect-IP-Adresse (192.168.0.1) verwendet, um über HA VPN auf Google APIs zuzugreifen.

Damit Identity-Aware Proxy (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. In diesem Fall gibt es nur on-prem-client.
  • TCP-Traffic über Port 22 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.
  1. on-prem-client VM-Instanz erstellen Mit dem folgenden Befehl werden auch die Pakete tcpdump und dnsutils installiert, die die Dienstprogramme tcpdump und dig enthalten, die Sie später zum Validieren der API-Anfragen verwenden:

    gcloud compute instances create on-prem-client \
       --zone=us-central1-a \
       --image-family=debian-11 \
       --image-project=debian-cloud \
       --subnet=onprem-vpc-subnet1 \
       --scopes=https://www.googleapis.com/auth/cloud-platform \
       --no-address \
       --shielded-secure-boot \
       --service-account=user-managed-sa@$projectid.iam.gserviceaccount.com \
       --metadata startup-script="#! /bin/bash
          sudo apt-get update
          sudo apt-get install tcpdump dnsutils -y"
    
  2. Erstellen Sie eine IAP-Firewallregel mit dem Namen ssh-iap-on-prem-vpc:

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

Öffentlichen Internetzugriff auf Generative AI auf Vertex AI validieren

In diesem Abschnitt melden Sie sich mit dem Identity-Aware Proxy in der VM-Instanz on-prem-client an und prüfen dann die öffentliche Verbindung zu Vertex AI APIs (einschließlich GenAI) durch Ausführen des dig Befehl für die öffentliche Vertex AI-Domain (us-central1-aiplatform.googleapis.com).

  1. Führen Sie in Cloud Shell (Tab 1) die folgenden Befehle aus und ersetzen Sie dabei PROJECT_ID durch Ihre Projekt-ID:

    projectid=PROJECT_ID
    gcloud config set project ${projectid}
    
  2. Melden Sie sich mit IAP bei der VM-Instanz on-prem-client an:

    gcloud compute ssh on-prem-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
    
  3. Führen Sie den Befehl dig aus:

    dig us-central1-aiplatform.googleapis.com
    

    Die Ausgabe dig sollte in etwa so aussehen, wobei die IP-Adressen im Antwortabschnitt öffentliche IP-Adressen sind:

    ; <<>> DiG 9.16.44-Debian <<>> us-central1.aiplatfom.googleapis.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42506
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 512
    ;; QUESTION SECTION:
    ;us-central1.aiplatfom.googleapis.com. IN A
    
    ;; ANSWER SECTION:
    us-central1.aiplatfom.googleapis.com. 300 IN A  173.194.192.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  142.250.152.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  172.217.219.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  209.85.146.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  209.85.147.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  142.250.125.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  142.250.136.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  142.250.148.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  209.85.200.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  209.85.234.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  142.251.171.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  108.177.112.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  142.250.128.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  142.251.6.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  172.217.212.95
    us-central1.aiplatfom.googleapis.com. 300 IN A  74.125.124.95
    
    ;; Query time: 8 msec
    ;; SERVER: 169.254.169.254#53(169.254.169.254)
    ;; WHEN: Wed Sep 27 04:10:16 UTC 2023
    ;; MSG SIZE  rcvd: 321
    

Privaten Zugriff auf Generative AI auf Vertex AI konfigurieren und validieren

In diesem Abschnitt konfigurieren Sie den privaten Zugriff auf Generative AI auf Vertex AI, sodass Anfragen, die Sie an den öffentlichen Dienstendpunkt (us-central1-aiplatform.googleapis.com) senden, stattdessen an Ihren PSC-Endpunkt weitergeleitet werden. Der PSC-Endpunkt wiederum leitet die Anfrage weiter, um

zu Aktualisieren die Datei /etc/hosts, sodass sie auf den PSC-Endpunkt verweist.

In diesem Schritt fügen Sie der Datei /etc/hosts eine Zeile hinzu, mit der Anfragen an den öffentlichen Dienstendpunkt (us-central1-aiplatform.googleapis.com) an den PSC-Endpunkt (192.168.0.1) weitergeleitet werden.

  1. Imon-prem-client VM-Instanz (Tab 1) verwenden Sie einem Texteditor wie vim odernano um die/etc/hosts Datei zu öffnen:

    sudo vim /etc/hosts
    
  2. Fügen Sie der Datei die folgende Zeile hinzu:

    192.168.0.1 us-central1-aiplatform.googleapis.com
    

    Diese Zeile weist dem vollständig qualifizierten Domainnamen für die Vertex AI Google API (us-central1-aiplatform.googleapis.com) die IP-Adresse des PSC-Endpunkts (192.168.0.1) zu.

    Die bearbeitete Datei sollte so aussehen:

    127.0.0.1       localhost
    ::1             localhost ip6-localhost ip6-loopback
    ff02::1         ip6-allnodes
    ff02::2         ip6-allrouters
    
    192.168.0.1 us-central1-aiplatform.googleapis.com  # Added by you
    172.16.10.6 on-prem-client.us-central1-a.c.vertex-genai-400103.internal on-prem-client  # Added by Google
    169.254.169.254 metadata.google.internal  # Added by Google
    
  3. Speichern Sie die Datei so:

    • Wenn Sie vim verwenden, drücken Sie die Taste Esc. Geben Sie dann :wq ein, um die Datei zu speichern und zu beenden.
    • Wenn Sie nano verwenden, geben Sie Control+O ein und drücken Sie Enter, um die Datei zu speichern. Geben Sie dann zum Beenden Control+X ein.
  4. Pingen Sie den Vertex AI-Endpunkt so an:

    ping us-central1-aiplatform.googleapis.com
    

    Der Befehl ping sollte Folgendes zurückgeben: 192.168.0.1 ist die IP-Adresse des PSC-Endpunkts:

    PING us-central1-aiplatform.googleapis.com (192.168.0.1) 56(84) bytes of data.
    
  5. Geben Sie Control+C ein, um ping zu beenden.

  6. Führen Sie den folgenden tcpdump-Befehl aus, um die DNS-Auflösung und den IP-Datenpfad zu validieren, wenn Sie eine Onlinevorhersageanfrage an den Endpunkt senden:

     sudo tcpdump -i any port 53 -n or host 192.168.0.1
    

Private Anfrage erstellen

In diesem Schritt erstellen Sie eine Textdatei mit dem Namen request.json, die die Nutzlast für eine Beispielanfrage curl enthält, die Sie an die GenAI REST API senden. Weitere Informationen zu Beispielanfragen finden Sie unter Beispielanfrage.

  1. Lassen Sie den Befehl tcpdump in Tab 1 ausgeführt, öffnen Sie eine neue Cloud Shell-Sitzung (Tab 2), indem Sie in Cloud Shell auf Neuen Tab öffnen klicken. Shell.

  2. Führen Sie in der neuen Cloud Shell-Sitzung (Tab 2) die folgenden Befehle aus und ersetzen Sie dabei PROJECT_ID durch Ihre Projekt-ID:

    projectid=PROJECT_ID
    gcloud config set project ${projectid}
    
  3. Melden Sie sich mit IAP bei der VM-Instanz on-prem-client an:

    gcloud compute ssh on-prem-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
    
  4. Führen Sie die folgenden Befehle aus und ersetzen Sie dabei PROJECT_ID durch Ihre Projekt-ID:

    projectid=PROJECT_ID
    gcloud config set project ${projectid}
    
  5. Erstellen Sie mit einem Texteditor wie vim oder nano eine neue Datei mit dem Namen request.json, die den folgenden Text enthält:

    {
       "instances": [
          { "prompt": "Give me ten interview questions for the role of program manager."}
       ],
       "parameters": {
          "temperature": 0.2,
          "maxOutputTokens": 256,
          "topK": 40,
          "topP": 0.95
       }
    }
    
  6. Führen Sie den folgenden Befehl aus, um eine Anfrage an den PSC-Endpunkt zu senden, der die Anfrage an die GenAI API weiterleitet. Wenn der Endpunkt die Antwort empfängt, leitet er diese zurück an die VM on-prem-client:

    curl -X POST \
       -H "Authorization: Bearer $(gcloud auth print-access-token)" \
       -H "Content-Type: application/json; charset=utf-8" \
       -d @request.json \
       "https://us-central1-aiplatform.googleapis.com/v1/projects/$projectid/locations/us-central1/publishers/google/models/text-bison:predict"
    

    Die Anzeige sieht ungefähr so aus:

    {
       "predictions": [
          {
          "content": " 1. **What is your experience in managing programs?**\n2. **What are your strengths and weaknesses as a program manager?**\n3. **What is your approach to managing a program?**\n4. **How do you handle risks and challenges in a program?**\n5. **How do you communicate with stakeholders in a program?**\n6. **How do you measure the success of a program?**\n7. **What is your experience in working with cross-functional teams?**\n8. **What is your experience in managing budgets and resources?**\n9. **What is your experience in managing change in a program?**\n10. **What are your career goals as a program manager?**",
          "citationMetadata": {
             "citations": []
          },
          "safetyAttributes": {
             "categories": [
             "Finance",
             "Health"
             ],
             "blocked": false,
             "scores": [
                0.6,
                0.1
             ]
          }
          }
       ],
       "metadata": {
          "tokenMetadata": {
             "outputTokenCount": {
                "totalBillableCharacters": 505,
                "totalTokens": 153
             },
             "inputTokenCount": {
                "totalBillableCharacters": 54,
                "totalTokens": 12
             }
          }
       }
    }
    
  7. Prüfen Sie in Tab 1, ob die PSC-Endpunkt-IP-Adresse (192.168.0.1) für den Zugriff auf Vertex AI APIs von der VM-Instanz on-prem-client (Subnetz 172.16.10.0/28) verwendet wurde.

    Im Terminal tcpdump des Cloud Shell-Tabs 1 können Sie sehen, dass kein DNS-Lookup nach us-central1-aiplatform.googleapis.com erforderlich ist, da die Zeile, die Sie zur Datei /etc/hosts hinzugefügt haben, Vorrang hat und die PSC-IP-Adresse 192.168.0.1 im Datenpfad verwendet wird.

    Die tcpdump Ausgabe sollte in etwa so aussehen:

    23:48:49.938797 ens4  Out IP 172.16.10.9.38578 > 192.168.0.1.443: Flags [P.], seq 2054:2093, ack 6264, win 501, options [nop,nop,TS val 2943864305 ecr 2340789954], length 39
    23:48:49.938947 ens4  Out IP 172.16.10.9.38578 > 192.168.0.1.443: Flags [P.], seq 2093:2117, ack 6264, win 501, options [nop,nop,TS val 2943864305 ecr 2340789954], length 24
    23:48:49.939839 ens4  Out IP 172.16.10.9.38578 > 192.168.0.1.443: Flags [F.], seq 2117, ack 6264, win 501, options [nop,nop,TS val 2943864306 ecr 2340789954], length 0
    23:48:49.940292 ens4  In  IP 192.168.0.1.443 > 172.16.10.9.38578: Flags [.], ack 2117, win 272, options [nop,nop,TS val 2340789958 ecr 2943864305], length 0
    23:48:49.940437 ens4  In  IP 192.168.0.1.443 > 172.16.10.9.38578: Flags [F.], seq 6264, ack 2117, win 272, options [nop,nop,TS val 2340789958 ecr 2943864305], length 0
    23:48:49.940442 ens4  Out IP 172.16.10.9.38578 > 192.168.0.1.443: Flags [.], ack 6265, win 501, options [nop,nop,TS val 2943864307 ecr 2340789958], length 0
    23:48:49.941193 ens4  In  IP 192.168.0.1.443 > 172.16.10.9.38578: Flags [.], ack 2118, win 272, options [nop,nop,TS val 2340789959 ecr 2943864306], length 0
    

Bereinigen

Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder behalten Sie das Projekt und löschen Sie die einzelnen Ressourcen.

Sie können die einzelnen Ressourcen im Projekt löschen, indem Sie in Cloud Shell die folgenden Befehle ausführen:

   projectid=PROJECT_ID
   gcloud config set project ${projectid}
   gcloud compute firewall-rules delete ssh-iap-on-prem-vpc --quiet
   gcloud compute instances delete on-prem-client --zone=us-central1-a --quiet
   gcloud iam service-accounts delete user-managed-sa@$projectid.iam.gserviceaccount.com --quiet
   gcloud compute forwarding-rules delete pscvertex --global --quiet
   gcloud compute addresses delete psc-googleapi-ip --global --quiet
   gcloud compute vpn-tunnels delete vertex-networking-vpc-tunnel0 vertex-networking-vpc-tunnel1 onprem-vpc-tunnel0 onprem-vpc-tunnel1 --region=us-central1 --quiet
   gcloud compute routers nats delete us-central-cloudnat-onprem --router=onprem-vpc-router1 --region=us-central1 --quiet
   gcloud compute routers delete vertex-networking-vpc-router1 onprem-vpc-router1 --region=us-central1 --quiet
   gcloud compute vpn-gateways delete vertex-networking-vpn-gw1 onprem-vpn-gw1 --region=us-central1 --quiet
   gcloud compute networks subnets delete onprem-vpc-subnet1 --region=us-central1 --quiet
   gcloud compute networks delete onprem-vpc --quiet
   gcloud compute networks delete vertex-networking-vpc --quiet

Nächste Schritte