Agent Engine PSC Explicit Proxy

1. Einführung

Eine Private Service Connect-Schnittstelle ist eine Ressource, mit der das VPC-Netzwerk (Virtual Private Cloud) eines Erstellers Verbindungen zu verschiedenen Zielen in einem Nutzer-VPC-Netzwerk initiieren kann. Ersteller- und Nutzernetzwerke können sich in verschiedenen Projekten und Organisationen befinden.

Wenn ein Netzwerkanhang eine Verbindung von einer Private Service Connect-Schnittstelle akzeptiert, weist Google Cloud der Schnittstelle eine IP-Adresse aus einem vom Netzwerkanhang bestimmten Nutzersubnetz zu. Die Nutzer- und Erstellernetzwerke sind verbunden und können über interne IP-Adressen kommunizieren.

Eine Verbindung zwischen einem Netzwerkanhang und einer Private Service Connect-Schnittstelle ähnelt der Verbindung zwischen einem Private Service Connect-Endpunkt und einem Dienstanhang, weist aber zwei wichtige Unterschiede auf:

  • Mit einem Netzwerkanhang kann ein Erstellernetzwerk Verbindungen zu einem Nutzernetzwerk initiieren (verwalteter ausgehender Dienst), während ein Endpunkt es einem Nutzernetzwerk ermöglicht, Verbindungen zu einem Erstellernetzwerk zu initiieren (verwalteter Dienst).
  • Private Service Connect-Schnittstellenverbindungen sind transitiv. Dies bedeutet, dass ein Erstellernetzwerk mit anderen Netzwerken kommunizieren kann, die mit dem Nutzernetzwerk verbunden sind.

Überlegungen zur Erreichbarkeit von Vertex AI-PSC-Schnittstellen

  • Über die PSC-Schnittstelle kann Traffic an VPC- oder On-Premise-Ziele innerhalb des RFC1918-Adressblocks weitergeleitet werden.
  • Für PSC-Schnittstellen, die auf Adressblöcke außerhalb von RFC 1918 ausgerichtet sind, ist ein expliziter Proxy erforderlich, der in der VPC des Nutzers mit einer RFC 1918-Adresse bereitgestellt wird. Innerhalb der Vertex AI-Bereitstellung muss der Proxy zusammen mit einem FQDN des Zielendpunkts definiert werden.
  • Wenn Sie Ihre Bereitstellung nur mit einer PSC-Schnittstelle konfigurieren, behält sie ihren Standard-Internetzugriff bei. Dieser ausgehende Traffic wird direkt aus dem sicheren, von Google verwalteten Mandantennetzwerk geleitet.

VPC-SC-Überlegungen zur Vertex AI-PSC-Schnittstelle

  • Wenn Ihr Projekt Teil eines VPC Service Controls-Perimeters ist, wird der standardmäßige Internetzugriff der von Google verwalteten Mandanten durch den Perimeter blockiert, um Daten-Exfiltration zu verhindern.
  • Damit die Bereitstellung in diesem Szenario auf das öffentliche Internet zugreifen kann, müssen Sie explizit einen sicheren Ausgangspfad konfigurieren, über den der Traffic durch Ihre VPC geleitet wird.
  • Die empfohlene Methode hierfür ist, einen Proxyserver mit einer RFC1918-Adresse in Ihrem VPC-Perimeter einzurichten und ein Cloud NAT-Gateway zu erstellen, damit die Proxy-VM auf das Internet zugreifen kann.

Weitere Informationen finden Sie in den folgenden Ressourcen:

KI-Agent bereitstellen | Generative KI in Vertex AI | Google Cloud

Private Service Connect-Schnittstelle für Vertex AI-Ressourcen einrichten | Google Cloud

Aufgaben

In dieser Anleitung erstellen Sie eine umfassende Agent Engine, die mit einer Private Service Connect-Schnittstelle (PSC) bereitgestellt wird, um die Verbindung zu einer öffentlichen Website (https://api.frankfurter.app/) über eine Proxy-VM zu ermöglichen, die in der VPC des Nutzers mit einer RFC1918-Adresse bereitgestellt wird. Die Beispielbereitstellung ist in einem VPC-SC-aktivierten Projekt oder für Administratoren anwendbar, die Internet-Egress über das Netzwerk des Kunden anstelle der Mandanten-VPC benötigen.

Abbildung 1

f42f2db921f6d5af.png

Sie erstellen eine einzelne psc-network-attachment in der VPC des Nutzers und nutzen DNS-Peering, um die Proxy-VM des Nutzernetzwerks im Mandantenprojekt aufzulösen, in dem Agent Engine gehostet wird. Dies führt zu den folgenden Anwendungsfällen:

Agent Engine bereitstellen und eine Proxy-VM als expliziten Proxy konfigurieren, damit sie die öffentliche URL „https://api.frankfurter.app“ erreichen kann

Lerninhalte

  • Netzwerkanhang erstellen
  • So kann ein Produzent einen Netzwerkanhang verwenden, um eine PSC-Schnittstelle zu erstellen
  • Kommunikation vom Produzenten zum Nutzer über DNS-Peering einrichten
  • Proxy-VM für ausgehenden Internet-Traffic bereitstellen und verwenden

Voraussetzungen

Google Cloud-Projekt

IAM-Berechtigungen

2. Hinweis

Projekt für das Tutorial 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-NAME]
projectid=YOUR-PROJECT-NAME
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 "dns.googleapis.com"
gcloud services enable "notebooks.googleapis.com"
gcloud services enable "storage.googleapis.com"
gcloud services enable "iap.googleapis.com"

Prüfen, ob die APIs aktiviert wurden

gcloud services list --enabled

3. Einrichtung durch Nutzer

Consumer-VPC erstellen

Diese VPC befindet sich in einem Kundenprojekt. Die folgenden Ressourcen werden in dieser VPC erstellt:

  • Consumer-Subnetz
  • Subnetz für Netzwerkanhang
  • Cloud Router (erforderlich für Cloud NAT)
  • Cloud NAT

Führen Sie in Cloud Shell folgende Schritte aus:

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

Nutzer-Subnetze erstellen

Erstellen Sie in Cloud Shell das Subnetz für die Proxy-VM:

gcloud compute networks subnets create rfc1918-subnet1 --project=$projectid --range=10.10.10.0/28 --network=consumer-vpc --region=us-central1

Subnetz für den Private Service Connect-Netzwerkanhang erstellen

Erstellen Sie in Cloud Shell das Subnetz für die PSC-Netzwerkverbindung:

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

Cloud Router- und NAT-Konfiguration

In dieser Anleitung wird Cloud NAT verwendet, um der Proxy-VM, die keine öffentliche IP-Adresse hat, Internetzugriff zu ermöglichen. Cloud NAT ermöglicht es VMs mit nur privaten IP-Adressen, eine Verbindung zum Internet herzustellen, sodass sie Aufgaben wie das Installieren von Softwarepaketen ausführen können.

Erstellen Sie den Cloud Router in Cloud Shell.

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

Erstellen Sie in Cloud Shell das NAT-Gateway mit aktiviertem Logging. Wir verwenden die Protokollierung, um den Zugriff auf die öffentliche IP-Adresse für die Frankfurter API (https://api.frankfurter.app/) zu validieren.

gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-for-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1 --enable-logging --log-filter=ALL

4. IAP aktivieren

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

  • Gilt für alle VM-Instanzen, die über 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-consumer \
    --network consumer-vpc \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

5. Consumer-VM-Instanzen erstellen

Erstellen Sie in Cloud Shell die Consumer-VM-Instanz „proxy-vm“, die als expliziter Proxy für Agent Engine dient. Wir verwenden tinyproxy als Anwendung zum Weiterleiten von HTTP-Traffic.

gcloud compute instances create proxy-vm \
    --project=$projectid \
    --machine-type=e2-micro \
    --image-family debian-11 \
    --no-address \
    --can-ip-forward \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=rfc1918-subnet1 \
    --shielded-secure-boot \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump
      sudo apt-get install tinyproxy -y
      sudo apt-get install apache2 -y
      sudo service apache2 restart
      echo 'proxy server !!' | tee /var/www/html/index.html
      EOF"

6. Private Service Connect-Netzwerkanhang

Netzwerkanhänge sind regionale Ressourcen, die die Nutzerseite einer Private Service Connect-Schnittstelle darstellen. Sie verknüpfen ein einzelnes Subnetz mit einem Netzwerkanhang und der Ersteller weist der Private Service Connect-Schnittstelle IP-Adressen aus diesem Subnetz zu. Das Subnetz muss sich in derselben Region wie der Netzwerkanhang befinden. Netzwerkanhänge müssen sich in derselben Region wie deren Produzentendienst befinden.

Netzwerkanhang erstellen

Erstellen Sie den Netzwerkanhang in Cloud Shell.

gcloud compute network-attachments