Vertex AI greift mit PSC privat auf Onlinevorhersageendpunkte zu

1. Einführung

Lokale Hosts können eine Onlinevorhersage nativ über das öffentliche Internet (Option 1) oder mithilfe von Cloud VPN oder Cloud Interconnect mit Private Service Connect (PSC) (Option 2) über Ihr lokales Netzwerk erreichen, die jeweils SSL/TLS-Verschlüsselung anbieten. Hybridkonnektivität zur Online-Vorhersage über Interconnect-Verbindungen ist leistungsfähiger als das Internet. Daher wird für kritische Anwendungen empfohlen, wie in Abbildung 1 dargestellt.

In dieser Anleitung erfahren Sie, wie Sie mithilfe eines Hochverfügbarkeits-VPNs (HA VPN) privat zwischen zwei VPC-Netzwerken auf Onlinevorhersagen zugreifen, die als Grundlage für Multi-Cloud- und lokale private Verbindungen dienen können.

Hinweis: Vertex Online Prediction ist ein öffentlicher Endpunkt. Daher sollten Sie den Zugriff mithilfe von VPC Service Controls (VPC-SC) einschränken, um sichere Perimeter zu erstellen, um den Zugriff auf Vertex und andere Google-APIs zuzulassen oder zu verweigern. VPC-SC wird in dieser Anleitung nicht behandelt. Weitere Informationen finden Sie unter VPC Service Controls mit Vertex AI.

24a07ba49a7bcb16.png

Aufgaben

Sie richten ein VPC-Netzwerk mit dem Namen on-prem-vpc ein, das eine lokale Umgebung darstellt. Für Ihre Bereitstellung würde die on-prem-vpc nicht vorhanden sein. Stattdessen wird ein Hybridnetzwerk zu Ihrem lokalen Rechenzentrum oder Ihrem Cloud-Anbieter verwendet.

Sie werden eine umfassende Private Service Connect-Architektur erstellen, die den öffentlichen Zugriff auf Onlinevorhersagen über Cloud NAT und den privaten Zugriff mit PSC über HA VPN wie unten beschrieben veranschaulicht.

b545c808b366341a.png

Sobald die Onlinevorhersage im Google Cloud-Projekt bereitgestellt wurde, werden die folgenden Anwendungsfälle untersucht:

Der öffentliche Zugriff auf Onlinevorhersagen umfasst Folgendes:

  • GCE-Instanz (nat-client) erstellen, die NAT für ausgehenden Internetzugriff nutzt
  • CURL zur Inferenz aus dem Modell verwenden
  • Mit TCPDUMP prüfen, ob auf Onlinevorhersagen über eine öffentliche VIP zugegriffen wird

Der private Zugriff auf Onlinevorhersagen umfasst Folgendes:

  • Modell auf einem Vertex-Endpunkt für Onlinevorhersagen im Projekt bereitstellen
  • Private Service Connect-Endpunkt (Googleapis) in Ziell-VP erstellen
  • Exportieren Sie die PSC-IP-Adresse über den Cloud Router als benutzerdefiniertes Advertising in die lokale VPC
  • GCE-Instanz (Privatclient) erstellen und Datei usw/hosts mit der PSC-Endpunkt-IP aktualisieren
  • CURL zur Inferenz aus dem Modell verwenden
  • Mit TCPDUMP prüfen, ob auf Onlinevorhersagen über die IP-Adresse des PSC-Endpunkts zugegriffen wird

Aufgaben in diesem Lab

  • Private Service Connect-Endpunkt einrichten
  • Anbieten der IP-Adresse des PSC-Endpunkts über den Cloud Router
  • So validieren Sie mit TCPDUMP den Zugriff auf die Onlinevorhersage (öffentlich und privat)

Voraussetzungen

  • Google Cloud-Projekt

IAM-Berechtigungen

Compute-Netzwerkadministrator

Service Directory-Bearbeiter

DNS-Administrator

Netzwerkadministrator

Kontingentadministrator

Notebooks-Administrator

Dienstkontonutzer

Storage-Administrator

Vertex AI-Nutzer

Dienstkontoadministrator

2. Hinweis

Projekt zur Unterstützung der Anleitung aktualisieren

In dieser Anleitung wird mithilfe von $variables die Implementierung der gcloud-Konfiguration in Cloud Shell unterstützt.

Führen Sie in Cloud Shell die folgenden Schritte aus:

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

3. Dienste aktivieren

Führen Sie in Cloud Shell die folgenden Schritte aus:

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

4. Ziell-VPC-Einrichtung

targetl-vpc erstellen

Führen Sie in Cloud Shell die folgenden Schritte aus:

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

Nutzerverwaltetes Notebook-Subnetz erstellen

Führen Sie in Cloud Shell die folgenden Schritte aus:

gcloud compute networks subnets create workbench-subnet --project=$projectid --range=172.16.10.0/28 --network=aiml-vpc --region=us-central1 --enable-private-ip-google-access

Cloud Router und NAT-Konfiguration

Cloud NAT wird in der Anleitung zum Herunterladen von Notebook-Softwarepaketen verwendet, da die nutzerverwaltete Notebookinstanz keine externe IP-Adresse hat. Cloud NAT bietet auch NAT-Funktionen für ausgehenden Traffic, was bedeutet, dass Internethosts keine Kommunikation mit einem nutzerverwalteten Notebook initiieren dürfen, was die Sicherheit erhöht.

Erstellen Sie in Cloud Shell den regionalen Cloud Router.

gcloud compute routers create cloud-router-us-central1-aiml-nat --network aiml-vpc --region us-central1

Erstellen Sie in Cloud Shell das regionale Cloud-nat-Gateway.

gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-us-central1-aiml-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1

5. Einrichtung lokaler VPCs

On-prem-vpc erstellen

Führen Sie in Cloud Shell die folgenden Schritte aus:

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

nat-subnet erstellen

Führen Sie in Cloud Shell die folgenden Schritte aus:

gcloud compute networks subnets create nat-subnet --project=$projectid --range=192.168.10.0/28 --network=on-prem-vpc --region=us-central1

private-ip-subnet erstellen

Führen Sie in Cloud Shell die folgenden Schritte aus:

gcloud compute networks subnets create private-ip-subnet --project=$projectid --range=192.168.20.0/28 --network=on-prem-vpc --region=us-central1

Cloud Router und NAT-Konfiguration

Cloud NAT wird in der Anleitung zum Herunterladen von Softwarepaketen verwendet. Cloud NAT bietet auch NAT-Funktionen für ausgehenden Traffic, was bedeutet, dass Internethosts keine Kommunikation mit Computing-Ressourcen initiieren dürfen, was die Sicherheit erhöht.

Erstellen Sie in Cloud Shell den regionalen Cloud Router.

gcloud compute routers create cloud-router-us-central1-on-prem-nat --network on-prem-vpc --region us-central1

Erstellen Sie in Cloud Shell das regionale Cloud-nat-Gateway.

gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-us-central1-on-prem-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1

6. Private Service Connect-Endpunkt erstellen

Im folgenden Abschnitt erstellen Sie einen Private Service Connect-Endpunkt (PSC), mit dem über den lokalen VPC-Server auf die Vertex API zugegriffen wird. Die PSC-IP-Adresse 100.100.10.10 wird in einem späteren Schritt vom Ziell-vpc-cloud-router-vpn als benutzerdefiniertes Router-Advertising beworben.

Von Cloud Shell

gcloud compute addresses create psc-ip \
    --global \
    --purpose=PRIVATE_SERVICE_CONNECT \
    --addresses=100.100.10.10 \
    --network=aiml-vpc

PSC-Endpunkt erstellen

Von Cloud Shell

gcloud compute forwarding-rules create pscvertex \
    --global \
    --network=aiml-vpc \
    --address=psc-ip \
    --target-google-apis-bundle=all-apis

Konfigurierte Private Service Connect-Endpunkte auflisten

Von Cloud Shell

gcloud compute forwarding-rules list  \
--filter target="(all-apis OR vpc-sc)" --global

Konfigurierte Private Service Connect-Endpunkte beschreiben

Von Cloud Shell

gcloud compute forwarding-rules describe \
    pscvertex --global

7. Hybridkonnektivität

Im folgenden Abschnitt erstellen Sie einen Cloud Router, mit dem Sie Routen zwischen Ihrer Virtual Private Cloud (VPC) und Ihrem Peer-Netzwerk mithilfe des Border Gateway Protocol (BGP) dynamisch austauschen können.

Cloud Router kann eine BGP-Sitzung über einen Cloud VPN-Tunnel einrichten, um Ihre Netzwerke zu verbinden. Er erkennt automatisch neue Subnetz-IP-Adressbereiche und kündigt sie Ihrem Peer-Netzwerk an.

In dieser Anleitung stellen Sie HA VPN zwischen aiml-vpc und on-prem-vpc bereit.

HA VPN-Gateway für aiml-vpc erstellen

Beim Erstellen eines Gateways werden automatisch zwei externe IPv4-Adressen zugewiesen, eine für jede Gateway-Schnittstelle.

Erstellen Sie in Cloud Shell das HA VPN-Gateway.

gcloud compute vpn-gateways create aiml-vpn-gw \
   --network=aiml-vpc\
   --region=us-central1

HA VPN-Gateway für on-prem-vpc erstellen

Beim Erstellen eines Gateways werden automatisch zwei externe IPv4-Adressen zugewiesen, eine für jede Gateway-Schnittstelle. Notieren Sie sich diese IP-Adressen, um sie später in den Konfigurationsschritten zu verwenden.

Erstellen Sie in Cloud Shell das HA VPN-Gateway.

gcloud compute vpn-gateways create on-prem-vpn-gw \
   --network=on-prem-vpc\
   --region=us-central1

HA VPN-Gateway-Erstellung validieren

Gehen Sie in der Console zu HYBRID-KONNEKTIVITÄT → VPN → CLOUD VPN GATEWAYS und prüfen Sie, ob die Gateway-IPs generiert werden.

66312b1b53c233d7.png

Cloud Router für targetl-vpc erstellen

Erstellen Sie in Cloud Shell den Cloud Router in us-central1.

gcloud compute routers create aiml-cr-us-central1 \
   --region=us-central1 \
   --network=aiml-vpc\
   --asn=65001

Cloud Router für „on-prem-vpc“ erstellen

Erstellen Sie in Cloud Shell den Cloud Router in us-central1.

gcloud compute routers create on-prem-cr-us-central1 \
   --region=us-central1 \
   --network=on-prem-vpc \
   --asn=65002

VPN-Tunnel für Ziell-vpc erstellen

Sie erstellen zwei VPN-Tunnel auf jedem HA VPN-Gateway.

VPN-Tunnel erstellen0

Erstellen Sie in Cloud Shell "tunnel0":

gcloud compute vpn-tunnels create aiml-vpc-tunnel0 \
    --peer-gcp-gateway on-prem-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router aiml-cr-us-central1 \
    --vpn-gateway aiml-vpn-gw \
    --interface 0

VPN-Tunnel erstellen1

Erstellen Sie in Cloud Shell "tunnel1":

gcloud compute vpn-tunnels create aiml-vpc-tunnel1 \
    --peer-gcp-gateway on-prem-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router aiml-cr-us-central1 \
    --vpn-gateway aiml-vpn-gw \
    --interface 1

VPN-Tunnel für „on-prem-vpc“ erstellen

Sie erstellen zwei VPN-Tunnel auf jedem HA VPN-Gateway.

VPN-Tunnel erstellen0

Erstellen Sie in Cloud Shell "tunnel0":

gcloud compute vpn-tunnels create on-prem-tunnel0 \
    --peer-gcp-gateway aiml-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
    --router on-prem-cr-us-central1 \
    --vpn-gateway on-prem-vpn-gw \
    --interface 0

VPN-Tunnel erstellen1

Erstellen Sie in Cloud Shell "tunnel1":

gcloud compute vpn-tunnels create on-prem-tunnel1 \
    --peer-gcp-gateway aiml-vpn-gw \
    --region us-central1 \
    --ike-version 2 \
    --shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
    --router on-prem-cr-us-central1 \
    --vpn-gateway on-prem-vpn-gw \
    --interface 1

VPN-Tunnelerstellung validieren

Gehen Sie in der Console zu HYBRID-KONNEKTIVITÄT → VPN → CLOUD VPN-TUNNELS.

e8e13ebaed09f1.png

8. BGP-Nachbarn einrichten

BGP-Sitzungen erstellen

In diesem Abschnitt konfigurieren Sie Cloud Router-Schnittstellen und BGP-Peers.

BGP-Schnittstelle und Peering für Ziell-vpc erstellen

Erstellen Sie in Cloud Shell die BGP-Schnittstelle:

gcloud compute routers add-interface aiml-cr-us-central1 \
    --interface-name if-tunnel0-to-onprem \
    --ip-address 169.254.1.1 \
    --mask-length 30 \
    --vpn-tunnel aiml-vpc-tunnel0 \
    --region us-central1

Erstellen Sie in Cloud Shell den BGP-Peer:

gcloud compute routers add-bgp-peer aiml-cr-us-central1 \
    --peer-name bgp-on-premises-tunnel0 \
    --interface if-tunnel1-to-onprem \
    --peer-ip-address 169.254.1.2 \
    --peer-asn 65002 \
    --region us-central1

Erstellen Sie in Cloud Shell die BGP-Schnittstelle:

gcloud compute routers add-interface aiml-cr-us-central1 \
    --interface-name if-tunnel1-to-onprem \
    --ip-address 169.254.2.1 \
    --mask-length 30 \
    --vpn-tunnel aiml-vpc-tunnel1 \
    --region us-central1

Erstellen Sie in Cloud Shell den BGP-Peer:

gcloud compute routers add-bgp-peer aiml-cr-us-central1 \
    --peer-name bgp-on-premises-tunnel1 \
    --interface if-tunnel2-to-onprem \
    --peer-ip-address 169.254.2.2 \
    --peer-asn 65002 \
    --region us-central1

BGP-Schnittstelle und Peering für „on-prem-vpc“ erstellen

Erstellen Sie in Cloud Shell die BGP-Schnittstelle:

gcloud compute routers add-interface on-prem-cr-us-central1 \
    --interface-name if-tunnel0-to-aiml-vpc\
    --ip-address 169.254.1.2 \
    --mask-length 30 \
    --vpn-tunnel on-prem-tunnel0 \
    --region us-central1

Erstellen Sie in Cloud Shell den BGP-Peer:

gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
    --peer-name bgp-aiml-vpc-tunnel0 \
    --interface if-tunnel1-to-aiml-vpc\
    --peer-ip-address 169.254.1.1 \
    --peer-asn 65001 \
    --region us-central1

Erstellen Sie in Cloud Shell die BGP-Schnittstelle:

gcloud compute routers add-interface on-prem-cr-us-central1 \
    --interface-name if-tunnel1-to-aiml-vpc\
    --ip-address 169.254.2.2 \
    --mask-length 30 \
    --vpn-tunnel on-prem-tunnel1 \
    --region us-central1

Erstellen Sie in Cloud Shell den BGP-Peer:

gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
    --peer-name bgp-aiml-vpc-tunnel1\
    --interface if-tunnel2-to-aiml-vpc\
    --peer-ip-address 169.254.2.1 \
    --peer-asn 65001 \
    --region us-central1

Gehen Sie zu Hybridkonnektivität → VPN, um die Details zum VPN-Tunnel aufzurufen.

cb91b4476a88acd3.png

Erkannte Ziel-vpc-Routen über HA VPN validieren

Gehen Sie in der Console zu VPC-Netzwerk → VPC-Netzwerke → Ziell-vpc→ ROUTES → REGION → US-CENTRAL1 → VIEW.

Beobachten, ob "targetl-vpc" Routen aus "on-prem-vpc nat-subnet" und "private-ip-subnet" erkannt hat

f407ed6e1a6233db.png

Prüfen, ob „on-prem-vpc“ das Workbench-Subnetz über HA-VPN gelernt hat

Gehen Sie in der Console zu VPC-Netzwerk → VPC-Netzwerke → On-prem-vpc → ROUTES → REGION → US-CENTRAL1 → VIEW.

7957e5d898a9e7e0.png

9. Benutzerdefiniertes Routen-Advertising erstellen

Die IP-Adresse des Private Service Connect-Endpunkts wird nicht automatisch vom Cloud Router Ziell-cr-us-central1 beworben, da das Subnetz nicht in der VPC konfiguriert ist.

Stattdessen müssen Sie ein benutzerdefiniertes Route Advertising vom Cloud Router Ziell-cr-us-central für die Endpunkt-IP-Adresse 100.100.10.10 erstellen, die über BGP in der lokalen Umgebung beworben wird.

Gehen Sie in der Konsole zu HYBRID-KONNEKTIVITÄT → CLOUD-ROUTER → Ziell-cr-us-central1 und wählen Sie BEARBEITEN aus.

c8fb02ed59a5b068.png

Wählen Sie im Abschnitt „Beworbene Routen“ die Option Benutzerdefinierte Routen erstellen aus und aktualisieren Sie die Felder anhand des Beispiels unten, wählen Sie FERTIG aus und klicken Sie dann auf SPEICHERN.

5996464e3aae0665.png

f799082ab2cd7e31.png

Validation

Prüfen, ob „on-prem-vpc“ die IP-Adresse des PSC-Endpunkts über HA-VPN erkannt hat

Gehen Sie in der Console zu VPC-Netzwerk → VPC-Netzwerke → On-prem-vpc → ROUTES → REGION → US-CENTRAL1 → VIEW.

1b42673e6f940bf2.png

10. Benutzerdefiniertes Routen-Advertising erstellen (on-prem-vpc)

Der Cloud Router „on-prem-vpc“ bietet standardmäßig alle Subnetze an, aber nur das Subnetz „private-ip-subnet“ wird benötigt.

Aktualisieren Sie im folgenden Abschnitt das Routen-Advertising vom Cloud Router „on-prem-cr-us-central1“.

Gehen Sie in der Console zu HYBRID-KONNEKTIVITÄT → CLOUD-ROUTER → on-prem-cr-us-central1 und wählen Sie BEARBEITEN aus.

bd96bde9550d516a.png

Wählen Sie im Abschnitt „Beworbene Routen“ die Option Benutzerdefinierte Routen erstellen aus und aktualisieren Sie die Felder anhand des Beispiels unten, wählen Sie FERTIG aus und klicken Sie dann auf SPEICHERN.

f8b61f669a9cfeef.png

Validation

Prüfen Sie, ob „targetl-vpc“ die Route „private-ip-subnet“ aus dem On-Prem-vpc erkannt hat.

Gehen Sie in der Console zu VPC-Netzwerk → VPC-Netzwerke → Ziell-vpc → ROUTES → REGION → US-CENTRAL1 → VIEW.

2b1a7a5f918e9f50.png

11. Nutzerverwaltetes Dienstkonto erstellen (GCE-Instanzen)

Um die Vertex API im Detail zu steuern, ist ein vom Nutzer verwaltetes Dienstkonto erforderlich, das auf die Instanz „nat“ und die privaten Clientinstanzen angewendet wird. Nachdem die Dienstkontoberechtigungen erstellt wurden, können sie je nach Geschäftsanforderungen geändert werden. In dieser Anleitung werden dem vom Nutzer verwalteten Dienstkonto Vertex-sa die folgenden Rollen angewendet:

Sie müssen die Service Account API , bevor Sie fortfahren.

Erstellen Sie das Dienstkonto in Cloud Shell.

gcloud iam service-accounts create gce-vertex-sa \
    --description="service account for vertex" \
    --display-name="gce-vertex-sa"

Aktualisieren Sie in Cloud Shell das Dienstkonto mit der Rolle „Compute-Instanzadministrator“

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:gce-vertex-sa@$projectid.iam.gserviceaccount.com" --role="roles/compute.instanceAdmin.v1"

Aktualisieren Sie in Cloud Shell das Dienstkonto mit der Rolle „Vertex AI User“

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

12. Nutzerverwaltetes Dienstkonto erstellen (Notebook)

Im folgenden Abschnitt erstellen Sie ein vom Nutzer verwaltetes Dienstkonto, das mit dem in der Anleitung verwendeten Vertex Workbench (Notebook) verknüpft wird.

In der Anleitung werden dem Dienstkonto die folgenden Rollen zugewiesen:

Erstellen Sie das Dienstkonto in Cloud Shell.

gcloud iam service-accounts create user-managed-notebook-sa \
    --display-name="user-managed-notebook-sa"

Aktualisieren Sie in Cloud Shell das Dienstkonto mit der Rolle „Storage Admin“.

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

Aktualisieren Sie in Cloud Shell das Dienstkonto mit der Rolle „Vertex AI User“.

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

Aktualisieren Sie in Cloud Shell das Dienstkonto mit der Rolle „Artifact Registry-Administrator“.

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

Listen Sie in Cloud Shell das Dienstkonto auf und notieren Sie sich die E-Mail-Adresse, die beim Erstellen des nutzerverwalteten Notebooks verwendet wird.

gcloud iam service-accounts list

13. Die Testinstanzen wurden erstellt.

Im folgenden Abschnitt erstellen Sie Testinstanzen, um verschiedene Methoden zum Erreichen von Vertex APIs zu validieren:

  • Die Instanz nat-client, verwendet Cloud NAT zur Auflösung von Vertex AI und greift damit über das Internet auf den Endpunkt für die Onlinevorhersage zu
  • Die Instanz private-client verwendet die Private Service Connect-IP-Adresse 100.100.10.10, um über HA-VPN auf den Endpunkt der Onlinevorhersage zuzugreifen.

Erstellen Sie in Cloud Shell die Instanz nat-client.

gcloud compute instances create nat-client \
    --zone=us-central1-a \
    --image-family=debian-11 \
    --image-project=debian-cloud \
    --subnet=nat-subnet \
    --service-account=vertex-sa@$projectid.iam.gserviceaccount.com \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --no-address \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump dnsutils -y"

Erstellen Sie in Cloud Shell die Instanz private-client.

gcloud compute instances create private-client \
    --zone=us-central1-a \
    --image-family=debian-11 \
    --image-project=debian-cloud \
    --subnet=private-ip-subnet \
    --service-account=vertex-sa@$projectid.iam.gserviceaccount.com \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --no-address \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump dnsutils -y"

Damit Identity-Aware Proxy (IAP) eine Verbindung zu Ihren VM-Instanzen herstellen kann, erstellen Sie eine Firewallregel, die:

  • Gilt für alle VM-Instanzen, die mit IAP zugänglich sein sollen.
  • Lässt eingehenden Traffic aus dem IP-Bereich 35.235.240.0/20 zu. 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-on-prem-vpc \
    --network on-prem-vpc \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

14. Nutzerverwaltetes Notebook erstellen

Notebook API

Erstellen Sie im folgenden Abschnitt ein nutzerverwaltetes Notebook, das das zuvor erstellte Dienstkonto „user-managed-notebook-sa“ enthält.

Erstellen Sie in Cloud Shell die Instanz des privaten Clients.

gcloud notebooks instances create workbench-tutorial \
      --vm-image-project=deeplearning-platform-release \
      --vm-image-family=common-cpu-notebooks \
      --machine-type=n1-standard-4 \
      --location=us-central1-a \
      --subnet-region=us-central1 \
      --subnet=workbench-subnet \
      --no-public-ip    --service-account=user-managed-notebook-sa@$projectid.iam.gserviceaccount.com

15. Modell und Onlinevorhersage bereitstellen

Verwenden Sie im folgenden Abschnitt das bereitgestellte Codelab:Vertex AI:Benutzerdefinierte Vorhersageroutinen mit Sklearn verwenden, um Daten für Vorhersagen vorzuverarbeiten und zu posten. Beginnen Sie mit Abschnitt 7,da Sie im vorherigen Schritt bereits ein Notebook erstellt haben. Kehren Sie nach der Bereitstellung des Modells zur Anleitung zurück, um mit dem nächsten Abschnitt zu beginnen.

ee68b7ba0cfd2746.png

16. Zugriff auf die Vertex API über das Internet validieren

Im folgenden Abschnitt melden Sie sich bei der Instanz „nat-client“ an und validieren die Konnektivität zu Vertex AI mithilfe von dig und tcpdump für die Domain us-central1-aiplatform.googleapis.com, die zur Auflösung von Vertex APIs verwendet wird.

Melden Sie sich mit IAP in Cloud Shell bei nat-client an, um die Konnektivität zur Vertex API zu prüfen. Führen Sie dazu eine Dig-Funktion für die Vertex-Domain us-central1-aiplatform.googleapis.com aus

gcloud compute ssh nat-client --project=$projectid --zone=us-central1-a --tunnel-through-iap

Führen Sie die dig.

dig us-central1-aiplatform.googleapis.com

Notieren Sie sich zum Beispiel die öffentlichen IP-Adressen in der DNS-Antwort.

user@nat-client:~$ dig us-central1-aiplatform.googleapis.com

; <<>> DiG 9.16.42-Debian <<>> us-central1-aiplatform.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56761
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;us-central1-aiplatform.googleapis.com. IN A

;; ANSWER SECTION:
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.111.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.250.1.95
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.121.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.250.103.95
us-central1-aiplatform.googleapis.com. 300 IN A 108.177.120.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.171.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.250.159.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.120.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.161.95
us-central1-aiplatform.googleapis.com. 300 IN A 142.251.172.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.126.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.70.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.132.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.201.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.202.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.69.95

;; Query time: 4 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Thu Jun 29 01:35:57 UTC 2023
;; MSG SIZE  rcvd: 322

Führen Sie im nat-client-Betriebssystem tcpdump aus, um die DNS-Auflösung zu validieren, wenn Sie einen curl-Befehl für die Onlinevorhersage ausführen.

 sudo tcpdump -i any port 53 -n

Beispiel:

user@nat-client:~$ sudo tcpdump -i any port 53 -n 
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes

Öffnen Sie ein neues Cloud Shell-Terminal, indem Sie auf „+“ klicken. Sobald der neue Tab geöffnet ist, aktualisieren Sie die Variable für den Projektnamen.

Aktualisieren Sie in Cloud Shell die Variable für den Projektnamen.

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

Führen Sie in Cloud Shell 2 eine SSH-Verbindung zur Instanz „nat-client“ aus.

gcloud compute ssh --zone "us-central1-a" "nat-client" --project "$projectid"

Im folgenden Abschnitt erstellen Sie mit dem sudo VI-Editor oder mit Nano eine „instances.json“-Datei und fügen den Datenstring ein, der verwendet wird, um eine Vorhersage aus dem bereitgestellten Modell zu erhalten.

Erstellen Sie im nat-client-Betriebssystem ein instances.json-Datei mit dem folgenden Datenstring:

{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

Beispiel:

user@nat-client:$ more instances.json 
{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

user@nat-client:$

Rufen Sie aus der Cloud Console Ihre Endpunkt-ID für die Onlinevorhersage ab, die in den nachfolgenden Schritten verwendet wird.

Gehen Sie zu VERTEX AI → ONLINE PROGNOSE.

237d413ccde1e95b.png

Erstellen Sie im Betriebssystem des nat-clients die folgenden Variablen:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"

Beispiel:

ENDPOINT_ID="3328226095324463104"

Führen Sie im Betriebssystem nat-client einen curl-Befehl aus, um eine Antwort vom Modell zu erhalten.

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json

Notieren Sie sich zum Beispiel die erfolgreiche Vorhersage.

user@nat-client$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json
{
  "predictions": [
    "$479.0",
    "$586.0"
  ],
  "deployedModelId": "1949163636186415104",
  "model": "projects/234086459238/locations/us-central1/models/947543727654567936",
  "modelDisplayName": "diamonds-cpr",
  "modelVersionId": "1"
}

17. Validierung – Internetzugriff auf Vertex API

Nachdem Sie die Vorhersage ausgeführt haben, werfen wir einen Blick auf die TCPDUMP-Ergebnisse (Terminal 1), die die nat-client-Instanz (192.168.10.2) angeben, die eine DNS-Abfrage an den lokalen DNS-Server 169.254.169.254 für die Vertex AI-Domain us-central1-aiplatform.googleapis.com durchführt. Das Ergebnis der DNS-Abfrage sind öffentliche virtuelle IP-Adressen (VIPS) für Vertex APIs, wie unten angegeben:

user@nat-client:~$ sudo tcpdump -i any port 53 -n
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
20:05:09.260937 ens4  Out IP 192.168.10.2.40782 > 169.254.169.254.53: 47190+ A? oauth2.googleapis.com. (39)
20:05:09.260946 ens4  Out IP 192.168.10.2.40782 > 169.254.169.254.53: 28075+ AAAA? oauth2.googleapis.com. (39)
20:05:09.263556 ens4  In  IP 169.254.169.254.53 > 192.168.10.2.40782: 28075 4/0/0 AAAA 2607:f8b0:4001:c34::5f, AAAA 2607:f8b0:4001:c54::5f, AAAA 2607:f8b0:4001:c16::5f, AAAA 2607:f8b0:4001:c17::5f (151)
20:05:09.265018 ens4  In  IP 169.254.169.254.53 > 192.168.10.2.40782: 47190 16/0/0 A 74.125.201.95, A 74.125.202.95, A 74.125.69.95, A 64.233.183.95, A 173.194.193.95, A 173.194.194.95, A 173.194.195.95, A 173.194.196.95, A 173.194.197.95, A 64.233.191.95, A 173.194.74.95, A 173.194.192.95, A 209.85.145.95, A 209.85.146.95, A 209.85.147.95, A 142.250.125.95 (295)
20:05:09.474478 ens4  Out IP 192.168.10.2.57356 > 169.254.169.254.53: 36008+ A? us-central1-aiplatform.googleapis.com. (55)
20:05:09.474488 ens4  Out IP 192.168.10.2.57356 > 169.254.169.254.53: 47020+ AAAA? us-central1-aiplatform.googleapis.com. (55)
20:05:09.477190 ens4  In  IP 169.254.169.254.53 > 192.168.10.2.57356: 36008 16/0/0 A 173.194.194.95, A 173.194.195.95, A 173.194.196.95, A 173.194.197.95, A 173.194.74.95, A 173.194.192.95, A 209.85.145.95, A 209.85.146.95, A 209.85.147.95, A 142.250.125.95, A 142.250.136.95, A 142.250.148.95, A 209.85.200.95, A 209.85.234.95, A 142.250.152.95, A 142.250.128.95 (311)
20:05:09.478607 ens4  In  IP 169.254.169.254.53 > 192.168.10.2.57356: 47020 4/0/0 AAAA 2607:f8b0:4001:c1b::5f, AAAA 2607:f8b0:4001:c0c::5f, AAAA 2607:f8b0:4001:c0e::5f, AAAA 2607:f8b0:4001:c1e::5f (167)

18. Privaten Zugriff auf Vertex APIs aktivieren

Im folgenden Abschnitt greifen Sie mit Private Service Connect über ein Hybridnetzwerk (HA VPN) auf Vertex APIs zu, um die Onlinevorhersage privat zu erreichen. In dem Beispiel aus der Anleitung aktualisieren Sie die Datei „/etc/hosts“ in der Instanz des privaten Clients.

In Ihrer lokalen Umgebung ist es sinnvoll, eine oder mehrere /etc/hosts-Maschinendatei zum Testen zu aktualisieren. In großen Umgebungen und Produktionsumgebungen sollten Sie jedoch eine neue Weiterleitungszone mit dem FQDN des PSC-Endpunkts erstellen.

Der in der Anleitung erstellte psc-Endpunkt heißt beispielsweise pscvertex. Dies entspricht pscvertex.p.googleapis.com. Wenn Sie den Endpunkt für Vertex verwenden, hängen Sie den FQDN mit dem Dienst an, z. B. us-central1-aiplatform-pscvertex.p.googleapis.com.

Zum Aktualisieren des lokalen DNS mit dem PSC-Endpunkt müssen auch die lokalen Anwendungen so refaktoriert werden, dass die FDQN aufgerufen wird, z. B. us-central1-aiplatform-pscvertex.p.googleapis.com anstelle des nativen öffentlichen Endpunkts us-central1-aiplatform.googleapis.com.

Clients, die für die Verwendung eines benutzerdefinierten Endpunkts konfiguriert werden können, können die p.googleapis.com-DNS-Namen verwenden, um Anfragen an einen Endpunkt zu senden.

Informationen zur Konfiguration für die Verwendung benutzerdefinierter Endpunkte finden Sie in der Dokumentation zu Ihrer Client- oder Clientbibliothek. Beispiel:

  • Python: Sie können api_endpoint in der Klasse der Clientoptionen im Paket "google-api-core" konfigurieren.
  • Go: Sie können WithEndpoint im Client options Package im API-Paket konfigurieren.
  • gcloud: Sie können api_endpoint_overrides konfigurieren

Öffnen Sie ein neues Cloud Shell-Terminal, indem Sie auf „+“ klicken. Sobald der neue Tab geöffnet ist, aktualisieren Sie die Variable für den Projektnamen.

Über Cloud Shell.

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

Melden Sie sich mit IAP in einer neuen Cloud Shell beim privaten Client an, um die Konnektivität zur Vertex API zu prüfen. Führen Sie dazu eine Dig-Funktion für die Vertex-Domain us-central1-aiplatform.googleapis.com aus.

Melden Sie sich über Cloud Shell bei der Instanz des privaten Client-Betriebssystems an.

gcloud compute ssh private-client --project=$projectid --zone=us-central1-a --tunnel-through-iap

Führen Sie die dig.

dig us-central1-aiplatform.googleapis.com

Notieren Sie sich zum Beispiel die öffentlichen IP-Adressen, die auf der DNS-Antwort basieren.

user@private-client:~$ dig us-central1-aiplatform.googleapis.com

; <<>> DiG 9.16.42-Debian <<>> us-central1-aiplatform.googleapis.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33311
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;us-central1-aiplatform.googleapis.com. IN A

;; ANSWER SECTION:
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.132.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.201.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.202.95
us-central1-aiplatform.googleapis.com. 300 IN A 74.125.69.95
us-central1-aiplatform.googleapis.com. 300 IN A 64.233.182.95
us-central1-aiplatform.googleapis.com. 300 IN A 64.233.183.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.193.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.194.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.195.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.196.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.197.95
us-central1-aiplatform.googleapis.com. 300 IN A 64.233.191.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.74.95
us-central1-aiplatform.googleapis.com. 300 IN A 173.194.192.95
us-central1-aiplatform.googleapis.com. 300 IN A 209.85.145.95
us-central1-aiplatform.googleapis.com. 300 IN A 209.85.146.95

;; Query time: 4 msec
;; SERVER: 169.254.169.254#53(169.254.169.254)
;; WHEN: Sun Jul 02 20:5

Aktualisieren Sie die Private-Client-Instanz /etc/hosts mit dem sudo VI Editor oder Nano, um einen Eintrag vom Vertext AI FQDN us-central1-aiplatform.googleapis.com zu erstellen, der auf den PSC-Endpunkt 100.100.10.10 verweist. Es sind keine weiteren Änderungen erforderlich.

Beispiel:

user@private-client:~$ more /etc/hosts
127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

100.100.10.10 us-central1-aiplatform.googleapis.com
192.168.20.2 private-client.c.$projectid.internal private-client  # Added by Google
169.254.169.254 metadata.google.internal  # Added by Google

Führen Sie im Betriebssystem des privaten Clients einen PING zum Vertex API-Endpunkt aus.

ping us-central1-aiplatform.googleapis.com

Beispiel: PING gibt die IP-Adresse des PSC-Endpunkts zurück, es wird jedoch keine Antwort erwartet.

user@private-client:~$ ping us-central1-aiplatform.googleapis.com
PING us-central1-aiplatform.googleapis.com (100.100.10.10) 56(84) bytes of data.

Führen Sie im Betriebssystem des privaten Clients „tcpdump“ aus, um die DNS-Auflösung und den IP-Datenpfad zum PSC-Endpunkt zu validieren, wenn Sie einen curl-Befehl für die Onlinevorhersage ausführen.

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

Öffnen Sie ein viertes Cloud Shell-Terminal, indem Sie auf „+“ klicken. Sobald der neue Tab geöffnet ist, aktualisieren Sie die Variable für den Projektnamen.

Aktualisieren Sie in Cloud Shell die Variable für den Projektnamen.

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

Führen Sie in Cloud Shell vier eine SSH-Verbindung zur Instanz des privaten Clients durch.

gcloud compute ssh --zone "us-central1-a" "private-client" --project "$projectid"

Im folgenden Abschnitt erstellen Sie mit dem sudo VI-Editor oder mit Nano eine „instances.json“-Datei und fügen den Datenstring ein, der verwendet wird, um eine Vorhersage aus dem bereitgestellten Modell zu erhalten.

Erstellen Sie im Betriebssystem des privaten Clients ein instances.json-Datei mit dem folgenden Datenstring:

{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

Beispiel:

user@private-client:$ more instances.json 
{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

user@private-client:$

Erstellen Sie im Betriebssystem des privaten Clients die folgenden Variablen:

gcloud config list project
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"

Beispiel:

ENDPOINT_ID="3328226095324463104"

Führen Sie im Private-Client-Betriebssystem in Cloud Shell vier einen curl-Befehl aus, um eine Antwort vom Modell zu erhalten.

curl -v -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json

19. Validierung – Privater Zugriff auf die Vertex API

Im Betriebssystem des privaten Clients in Cloud Shell vier wurde für den Zugriff auf die Vertex API die IP-Adresse des PSC-Endpunkts (100.100.10.10) verwendet.

user@private-client$ curl -v -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json
Note: Unnecessary use of -X or --request, POST is already inferred.
*   Trying 100.100.10.10:443...
* Connected to us-central1-aiplatform.googleapis.com (100.100.10.10) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=upload.video.google.com
*  start date: May 29 08:21:36 2023 GMT
*  expire date: Aug 21 08:21:35 2023 GMT
*  subjectAltName: host "us-central1-aiplatform.googleapis.com" matched cert's "*.googleapis.com"
*  issuer: C=US; O=Google Trust Services LLC; CN=GTS CA 1C3
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x55f2ab65c2c0)
> POST /v1/projects/$projectid/locations/us-central1/endpoints/3328226095324463104:predict HTTP/2
> Host: us-central1-aiplatform.googleapis.com
> user-agent: curl/7.74.0
> accept: */*
> authorization: Bearer ya29.a0AbVbY6NdCbIJYj0mQROeq-xYgQCw534TTtjRc1kBAEOimKCFxb3gqgD5AvhfefJatSNr33eW1YJirfQVMptFoqfjRoB-i8zEJJ_GGCVqhsVnpSOjK0hzJQSuo2YGjIiSe1o1zdo7lWmh1Px-vLe8FImieGkrQ1hqVaa6aCgYKAXgSARESFQFWKvPlUQ_FuKB2hrDJRyFDjupL1g0171
> content-type: application/json
> content-length: 154
> 
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
* We are completely uploaded and fine
< HTTP/2 200 
< content-type: application/json; charset=UTF-8
< x-vertex-ai-internal-prediction-backend: harpoon
< date: Mon, 03 Jul 2023 22:13:35 GMT
< vary: X-Origin
< vary: Referer
< vary: Origin,Accept-Encoding
< server: scaffolding on HTTPServer2
< cache-control: private
< x-xss-protection: 0
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< accept-ranges: none
< 
{
  "predictions": [
    "$479.0",
    "$586.0"
  ],
  "deployedModelId": "1949163636186415104",
  "model": "projects/234086459238/locations/us-central1/models/947543727654567936",
  "modelDisplayName": "diamonds-cpr",
  "modelVersionId": "1"
}
* Connection #0 to host us-central1-aiplatform.googleapis.com left intact

Im TCPDUMP-Terminal in Cloud Shell drei können wir überprüfen, ob ein DNS-Lookup nach us-central1-aiplatform.googleapis.com nicht beobachtet wurde, da die Datei /etc/host Vorrang hatte, aber die PSC-IP-Adresse 100.100.10.10 im Datenpfad verwendet wurde.

user@private-client:~$ sudo tcpdump -i any port 53 -n or host 100.100.10.10
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
22:13:35.507625 ens4  Out IP 192.168.20.2.37004 > 169.254.169.254.53: 58585+ A? oauth2.googleapis.com. (39)
22:13:35.507631 ens4  Out IP 192.168.20.2.37004 > 169.254.169.254.53: 15580+ AAAA? oauth2.googleapis.com. (39)
22:13:35.511796 ens4  In  IP 169.254.169.254.53 > 192.168.20.2.37004: 58585 16/0/0 A 142.251.6.95, A 108.177.112.95, A 74.125.124.95, A 172.217.212.95, A 172.217.214.95, A 172.253.114.95, A 172.253.119.95, A 108.177.111.95, A 142.250.1.95, A 108.177.121.95, A 142.250.103.95, A 108.177.120.95, A 142.251.171.95, A 142.250.159.95, A 142.251.120.95, A 142.251.161.95 (295)
22:13:35.512002 ens4  In  IP 169.254.169.254.53 > 192.168.20.2.37004: 15580 4/0/0 AAAA 2607:f8b0:4001:c2b::5f, AAAA 2607:f8b0:4001:c18::5f, AAAA 2607:f8b0:4001:c5f::5f, AAAA 2607:f8b0:4001:c58::5f (151)
22:13:35.722145 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [S], seq 1951267724, win 65320, options [mss 1420,sackOK,TS val 1371205990 ecr 0,nop,wscale 7], length 0
22:13:35.730727 ens4  In  IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [S.], seq 3198878726, ack 1951267725, win 65535, options [mss 1366,sackOK,TS val 67847676 ecr 1371205990,nop,wscale 8], length 0
22:13:35.730760 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [.], ack 1, win 511, options [nop,nop,TS val 1371205999 ecr 67847676], length 0
22:13:35.738339 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 1:518, ack 1, win 511, options [nop,nop,TS val 1371206006 ecr 67847676], length 517
22:13:35.739922 ens4  In  IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [.], ack 518, win 261, options [nop,nop,TS val 67847688 ecr 1371206006], length 0
22:13:35.740860 ens4  In  IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [.], seq 1:2709, ack 518, win 261, options [nop,nop,TS val 67847689 ecr 1371206006], length 2708
22:13:35.740863 ens4  In  IP 100.100.10.10.443 > 192.168.20.2.47304: Flags [P.], seq 2709:4699, ack 518, win 261, options [nop,nop,TS val 67847689 ecr 1371206006], length 1990
22:13:35.740874 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [.], ack 2709, win 497, options [nop,nop,TS val 1371206009 ecr 67847689], length 0
22:13:35.740886 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [.], ack 4699, win 485, options [nop,nop,TS val 1371206009 ecr 67847689], length 0
22:13:35.742709 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 518:598, ack 4699, win 501, options [nop,nop,TS val 1371206011 ecr 67847689], length 80
22:13:35.743996 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 598:644, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 46
22:13:35.744011 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 644:693, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 49
22:13:35.744082 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 693:728, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 35
22:13:35.744165 ens4  Out IP 192.168.20.2.47304 > 100.100.10.10.443: Flags [P.], seq 728:1069, ack 4699, win 501, options [nop,nop,TS val 1371206012 ecr 67847689], length 341

Sie haben die Verbindung zur Onlinevorhersage über einen öffentlichen Endpunkt über das Internet und privat mit einem Hybridnetzwerk und Private Service Connect (googleapis) validiert. Schließen Sie das Betriebssystem, wenn Sie zur Cloud Shell-Eingabeaufforderung zurückkehren.

20. Bereinigen

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

gcloud compute forwarding-rules delete pscvertex --global --quiet

gcloud compute instances delete workbench-tutorial --zone=us-central1-a --quiet 

gcloud compute addresses delete psc-ip --global --quiet

gcloud compute networks subnets delete workbench-subnet --region=us-central1 --quiet 

gcloud compute vpn-tunnels delete aiml-vpc-tunnel0 aiml-vpc-tunnel1 on-prem-tunnel0 on-prem-tunnel1 --region=us-central1 --quiet

gcloud compute vpn-gateways delete aiml-vpn-gw on-prem-vpn-gw --region=us-central1 --quiet 

gcloud compute routers delete aiml-cr-us-central1 cloud-router-us-central1-aiml-nat --region=us-central1 --quiet 

gcloud compute routers delete cloud-router-us-central1-on-prem-nat on-prem-cr-us-central1 --region=us-central1 --quiet

gcloud compute instances delete nat-client private-client --zone=us-central1-a --quiet

gcloud compute firewall-rules delete ssh-iap-on-prem-vpc --quiet

gcloud compute networks subnets delete nat-subnet  private-ip-subnet --region=us-central1 --quiet

gcloud compute networks delete on-prem-vpc --quiet

gcloud compute networks delete aiml-vpc --quiet

Vertex-Komponenten löschen

Rufen Sie Artifact Registry auf, wählen Sie das erstellte Repository und dann Löschen aus, um das Container-Image zu löschen.

616a3108bc2e48c8.png

Wenn Sie den Storage-Bucket löschen möchten, gehen Sie über das Navigationsmenü in der Cloud Console zu „Storage“, wählen Sie den Bucket aus und klicken Sie auf Löschen:

eddd1f9fdfaede8.png

Heben Sie die Bereitstellung des Modells auf dem Endpunkt auf. Gehen Sie zu Vertex AI → Onlinevorhersage → Wählen Sie „diamonds-cpr_endpoint“ → „Bereitstellung des Modells vom Endpunkt aufheben“ → „Bereitstellung aufheben“ aus

bc95f092d21d4698.png

Löschen Sie das Modell. Gehen Sie zu Vertex AI → Model Registry → Delete Model

ec4afff091e11606.png

Löschen Sie den Endpunkt der Onlinevorhersage. Gehen Sie zu VertexAI → Onlinevorhersagen → Wählen Sie „diamonds-cpr_endpoint“ → „Endpunkt löschen“ aus

7453760299bdfb9a.png

21. Glückwunsch

Herzlichen Glückwunsch! Sie haben die native Verbindung zur Onlinevorhersage über das Internet und privat mit Private Service Connect und Hybridnetzwerken konfiguriert und validiert.

Sie haben einen NAT-Client und einen Private-Client erstellt und TCPDUMP verwendet, um IP-Adressen zu validieren, über die die Vertex APIs erreicht werden. Außerdem haben Sie mehr über Private Service Connect (googleapis) erfahren und wie Sie damit lokale und Multi-Cloud-Anwendungen isolieren können, indem Sie einen PSC-Endpunkt eines Kunden nutzen.

Cosmopup findet die Anleitungen super!

e6d3675ca7c6911f.jpeg

Was liegt als Nächstes an?

Sehen Sie sich einige dieser Anleitungen an...

Weitere Informationen und Videos

Referenzdokumente