Mit Private Service Connect (PSC-E / PSC-I) können Sie den privaten eingehenden Traffic und den ausgehenden Internet-Traffic einer Agent Platform-Sandbox steuern. Mit diesen Steuerelementen entspricht die Sandbox VPC Service Controls innerhalb oder außerhalb eines Perimeters.
Übersicht
Mit VPC Service Controls können Sie einen Dienstperimeter definieren, der Cloud de Confiance by S3NS Ressourcen isoliert, um das Risiko einer Daten-Exfiltration zu minimieren. Die Gemini Enterprise Agent Platform-Sandbox bietet Ihren Agenten eine sichere, isolierte Compute-Umgebung, in der sie nicht vertrauenswürdigen Code ausführen, einen Webbrowser verwenden (Computernutzung) oder ein benutzerdefiniertes Container-Image ausführen können. Die Sandbox stellt eine interaktive Datenebene bereit und führt ausgehende Aufrufe aus. Daher wird sie mit zwei Private Service Connect-Steuerelementen verwaltet: privater eingehender Traffic (PSC-E) und Steuerung des ausgehenden Traffics (PSC-I).
Wenn Sie die Sandbox innerhalb eines Perimeters ausführen, bleiben die folgenden Elemente innerhalb Ihrer Grenzen geschützt:
- Daten, die Ihr Agent während einer Sandbox-Sitzung liest oder schreibt (Dateien auf dem Sandbox-Laufwerk, In-Memory-Status).
- Sandbox Snapshots, die den Laufwerk- und In-Memory-Status erfassen und automatisch in einem Cloud Storage-Bucket gespeichert werden.
- Anfragen und Antworten, die mit der Sandbox-Datenebene ausgetauscht werden (z. B. Befehle zur Computernutzung und Screenshots).
- Benutzerdefinierte Container-Images, die aus Artifact Registry abgerufen werden.
- Aufrufe, die die Sandbox an Google APIs richtet (z. B. Cloud Storage oder Agent Platform).
Sie können die Steuerung des eingehenden und ausgehenden Traffics auch ohne VPC Service Controls-Perimeter einrichten, da PSC-E (privater eingehender Traffic) und PSC-I (ausgehender Traffic) die Sandbox VPC Service Controls-konform machen. Wenn Sie den eingehenden und ausgehenden Traffic ohne VPC Service Controls-Perimeter einrichten möchten, springen Sie zu Ausgehenden Traffic der Sandbox mit einer Private Service Connect-Schnittstelle (PSC-I) steuern.
Einschränkungen und Überlegungen
- Der private eingehende Traffic kann nur für ein Nutzerprojekt aktiviert werden. Es muss sich um dasselbe Nutzerprojekt handeln, in dem die Sandbox ausgeführt wird.
- Es wird nur die private Auflösung über DNS-Peering unterstützt. Die öffentliche DNS-Weiterleitung ist deaktiviert, um Tunneling zu verhindern.
- Die Protokollierung von Anfragen und Antworten ist für Ressourcen, die durch VPC Service Controls geschützt sind, nicht verfügbar.
- Der programmgesteuerte und Konsolenzugriff von außerhalb des Perimeters wird verweigert, es sei denn, der Aufrufer befindet sich auf einer Zugriffsebene.
Hinweis
- Erstellen oder identifizieren Sie den VPC Service Controls Dienstperimeter, der Ihr Projekt enthält. Damit die Sandboxes durch den VPC Service Controls-Perimeter geschützt werden können, muss sich Ihr Cloud de Confiance by S3NS Projekt im Perimeter befinden, bevor Sie die Sandboxes erstellen.
- Aktivieren Sie die Agent Platform API (
aiplatform.googleapis.com) in Ihrem Projekt. - Sie benötigen ein VPC-Netzwerk in der Region, in der Sie Sandboxes ausführen.
- Prüfen Sie, ob Sie die erforderlichen Rollen haben:
- Access Context Manager-Administratorrolle für den Perimeter
- Compute-Netzwerkadministrator (
roles/compute.networkAdmin) in dem Projekt, zu dem der Netzwerkanhang gehört.
Agent Platform Ihrem Dienstperimeter hinzufügen
Fügen Sie die Agent Platform API der Liste der eingeschränkten Dienste in Ihrem VPC Service Controls-Perimeter hinzu. Dadurch wird die Agent Platform (einschließlich der Sandbox-Steuerungsebene) geschützt und der öffentliche Internetzugriff auf die API blockiert, es sei denn, der Aufrufer befindet sich auf einer Zugriffsebene.
- Öffnen Sie VPC Service Controls in der Cloud de Confiance Console und bearbeiten Sie Ihren Perimeter.
- Fügen Sie unter Eingeschränkte Dienste die Vertex AI API (
aiplatform.googleapis.com) hinzu. - Achten Sie darauf, dass sich die Abhängigkeiten, die Ihre Sandbox verwendet, im selben Perimeter befinden. In der Regel sind das Cloud Storage (
storage.googleapis.com) und Artifact Registry (artifactregistry.googleapis.comfür benutzerdefinierte Container-Images). Die Speicherung von Snapshots wird automatisch für Sie übernommen. - Wenn Sie vertrauenswürdigen Nutzern außerhalb des Perimeters (z. B. in Ihrem Unternehmensnetzwerk) wieder Zugriff gewähren möchten, fügen Sie dem Perimeter eine Zugriffsebene hinzu.
Optional: Privaten Zugriff auf Google APIs konfigurieren
Innerhalb des VPC Service Controls-Perimeters greift die Sandbox privat über die eingeschränkte virtuelle IP-Adresse (VIP) auf Google APIs zu. Verwenden Sie die eingeschränkte VIP auch in Ihren eigenen VPC- und lokalen Netzwerken, damit Anfragen niemals das öffentliche Internet durchlaufen.
- Leiten Sie
*.googleapis.coman die eingeschränkte VIP199.36.153.4/30weiter und aktivieren Sie den privaten Google-Zugriff in den Subnetzen, die Google APIs aufrufen. - Erstellen Sie private Cloud DNS-Zonen für
googleapis.comund, wenn Sie Images abrufen, fürpkg.dev/gcr.io, die in die eingeschränkte VIP aufgelöst werden.
Ausgehenden Traffic der Sandbox mit einer Private Service Connect-Schnittstelle (PSC-I) steuern
Damit die Sandbox das Internet oder private Dienste erreichen kann, überbrücken Sie den ausgehenden Traffic in Ihre VPC mit einer Private Service Connect-Schnittstelle und steuern Sie diesen Traffic dann mit Ihren eigenen Steuerelementen für ausgehenden Traffic.
Alle Ressourcen in diesem Schritt werden im Nutzerprojekt, zu dem die Sandbox gehört, oder im Hostprojekt der freigegebene VPC erstellt. Der ausgehende Traffic wird an das einzelne VPC-Netzwerk und den Netzwerkanhang weitergeleitet, die Sie in der Vorlage festgelegt haben.
Netzwerkanhang erstellen
Erstellen Sie den Netzwerkanhang für die Sandbox:
# A dedicated subnet for the PSC interface (minimum /28)
gcloud compute networks subnets create sandbox-psc-subnet \
--network=YOUR_VPC \
--range=10.0.0.0/28 \
--region=REGION
# The network attachment the sandbox connects into
gcloud compute networks network-attachments create sandbox-egress-na \
--region=REGION \
--connection-preference=ACCEPT_AUTOMATIC \
--subnets=sandbox-psc-subnet
Auf den Anhang in der Sandbox-Vorlage verweisen
Legen Sie die Felder für ausgehenden Traffic in der SandboxEnvironmentTemplate fest, damit der ausgehende Traffic der Sandbox über Ihre VPC weitergeleitet wird:
from vertexai import Client
client = Client(project="PROJECT_ID", location="REGION",
http_options={"api_version": "v1beta1"})
templates = client.agent_engines.sandboxes.templates
op = templates.create(
name=agent_instance_name,
display_name="cu-vpcsc-template",
config={
"custom_container_environment": {
"custom_container_spec": {"image_uri": "IMAGE_URI"},
"ports": [{"port": 8080, "protocol": "TCP"}],
},
"egress_control_config": {
"internet_access": True, # Enables outbound access from the sandbox. With VPC-SC, that traffic is bridged into your VPC.
"customer_vpc_network":
"projects/PROJECT_ID/global/networks/YOUR_VPC", # The VPC network in your project that egress is bridged into. Checked by VPC-SC at creation time.
"network_attachment":
"projects/PROJECT_ID/regions/REGION/networkAttachments/sandbox-egress-na", # The network attachment that accepts the sandbox's PSC interface.
},
},
)
Die PSC-Schnittstelle erstellt den privaten Pfad zu Ihrer VPC und die Plattform leitet den ausgehenden Traffic der Sandbox automatisch dorthin weiter, wenn internet_access aktiviert ist.
Wenn Sie den Pfad aus Ihrer VPC heraus einrichten und steuern möchten, entscheiden Sie, ob Sie ausgehenden Traffic zum Internet oder nur privaten ausgehenden Traffic benötigen:
- Ausgehender Internet-Traffic: Für ausgehenden Internet-Traffic ist Cloud NAT erforderlich, außerdem die Zielsteuerung mit Cloud Next Generation Firewall-Regeln (Cloud NGFW) oder Secure Web Proxy.
- **Nur privater ausgehender Traffic** (Dienste in Ihrer VPC oder lokal erreichen, kein Internet): Cloud NAT ist nicht erforderlich. Sie benötigen nur Routen, eine Firewallregel und DNS-Peering.
Für ausgehenden Internet-Traffic einrichten und Ziele steuern
Die Sandbox greift über eine interne Adresse (RFC 1918) auf Ihre VPC zu. Daher ist Cloud NAT erforderlich, um das Internet zu erreichen. Reservieren Sie eine statische IP-Adresse für ausgehenden Traffic, wenn Ihre Zulassungsliste für Ziele nach Quell-IP-Adresse erfolgt.
# Reserve a static egress IP (optional, for destination-side allow-listing)
gcloud compute addresses create sandbox-egress-ip --region=REGION
# Cloud Router + NAT for the region, scoped to the PSC subnet
gcloud compute routers create sandbox-egress-router \
--network=YOUR_VPC --region=REGION
gcloud compute routers nats create sandbox-egress-nat \
--router=sandbox-egress-router --region=REGION \
--nat-external-ip-pool=sandbox-egress-ip \
--nat-custom-subnet-ip-ranges=sandbox-psc-subnet
Wenn Sie einschränken möchten, welche Ziele die Sandbox erreichen kann, während der Traffic Ihre VPC durchläuft, wählen Sie die gewünschte Steuerungsebene aus:
Cloud NGFW (Netzwerkebene): Eine globale Netzwerk-Firewallrichtlinie mit Zulassungsregeln (FQDN-Objekte werden unterstützt) und einer Standardablehnung für alles andere:
gcloud compute network-firewall-policies create sandbox-egress-policy --global # Allow only the destinations your agent needs (by FQDN) gcloud compute network-firewall-policies rules create 1000 \ --firewall-policy=sandbox-egress-policy --global-firewall-policy \ --direction=EGRESS --action=allow --layer4-configs=tcp:443 \ --dest-fqdns=api.partner.example.com # Default-deny the rest of egress gcloud compute network-firewall-policies rules create 65000 \ --firewall-policy=sandbox-egress-policy --global-firewall-policy \ --direction=EGRESS --action=deny --layer4-configs=all \ --dest-ip-ranges=0.0.0.0/0 gcloud compute network-firewall-policies associations create \ --firewall-policy=sandbox-egress-policy --global-firewall-policy \ --network=YOUR_VPCSecure Web Proxy (Anwendung/L7): Stellen Sie Secure Web Proxy als Prüfpunkt für ausgehenden Traffic in Ihrer VPC für TLS-fähige Richtlinien pro URL bereit und leiten Sie den ausgehenden Traffic des PSC-Subnetzes darüber weiter.
Für nur privaten ausgehenden Traffic einrichten
Wenn die Sandbox nur private Dienste in Ihrer VPC oder lokal benötigt, muss Ihre VPC eine Route zum Ziel haben. Lassen Sie den Zugriff mit einer Firewallregel für ausgehenden Traffic aus dem PSC-Subnetz (10.0.0.0/28) zu und lösen Sie den Dienstnamen über DNS-Peering auf.
DNS-Peering einrichten
Lassen Sie die Sandbox die Namensauflösung über Ihre VPC anstelle von öffentlichen Resolvern durchführen. Dadurch wird auch die Exfiltration über DNS-Tunnel blockiert. Erstellen Sie in Ihrer VPC eine private Cloud DNS-Zone mit den Einträgen, die die Sandbox benötigt, und konfigurieren Sie dann DNS-Peering, damit die Sandbox Namen aus dieser Zone auflösen kann.
Zugriff des Dienst-Agents gewähren (freigegebene VPC)
Wenn sich der Netzwerkanhang in einem anderen Projekt (Projekt A) als dem Projekt befindet, in dem die Sandbox ausgeführt wird (Projekt B), gewähren Sie dem Agent Platform-Dienst-Agent von Projekt B die Rolle Compute-Netzwerknutzer für Projekt A.
# Agent Platform service agent of the project that runs the sandbox
service-PROJECT_NUMBER@gcp-sa-aiplatform.s3ns-system.iam.gserviceaccount.com
# On the project that owns the network attachment
gcloud projects add-iam-policy-binding NETWORK_PROJECT_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-aiplatform.s3ns-system.iam.gserviceaccount.com" \
--role="roles/compute.networkUser"
Ersetzen Sie Folgendes:
PROJECT_NUMBER: die Projektnummer des Projekts, in dem die Sandbox ausgeführt wird.NETWORK_PROJECT_ID: die ID des Projekts, zu dem der Netzwerkanhang gehört.
Privaten eingehenden Traffic mit Private Service Connect (PSC-E) aktivieren
Interaktive Arbeitslasten stellen eine Datenebene bereit, mit der sich ein Client verbinden muss. Greifen Sie über einen privaten Private Service Connect-Endpunkt (PSC-E) in Ihrer VPC auf diese Datenebene zu, anstatt über das öffentliche Internet.
Zulässiges Nutzerprojekt deklarieren
Legen Sie die Konfiguration für eingehenden Traffic in der Vorlage mit dem Nutzerprojekt fest, das eine Verbindung herstellen darf. Nur dasselbe Nutzerprojekt, in dem die Sandbox ausgeführt wird, kann privaten eingehenden Traffic zur Sandbox-VPC haben.
So stellen Sie eine Verbindung zur Sandbox von einer VPC in diesem Projekt her:
config = {
# ...custom_container_environment, egress_control_config...
"ingress_control_config": {
"private_service_connect_config": {
# Must be the same project the sandbox runs in.
"enable_private_service_connect": True,
}
},
}
PSC-Endpunkt in Ihrer VPC erstellen
Nachdem die Sandbox erstellt wurde, lesen Sie den Dienstanhang aus den Verbindungsinformationen und legen Sie ihn mit einer Weiterleitungsregel (PSC-Endpunkt) in Ihrer VPC fest:
# The sandbox returns a service attachment to connect to
service_attachment = sandbox.connection_info.service_attachment
# Reserve an internal IP and create the PSC endpoint
gcloud compute addresses create sandbox-ingress-ip \
--region=REGION --subnet=YOUR_SUBNET
gcloud compute forwarding-rules create sandbox-ingress-ep \
--region=REGION \
--network=YOUR_VPC \
--address=sandbox-ingress-ip \
--target-service-attachment=SERVICE_ATTACHMENT_URI
Clients in der VPC dieses Projekts (oder die über sie erreichbar sind) stellen jetzt über die private IP-Adresse des Endpunkts eine Verbindung zur Sandbox her (z. B. ein Client, der über den WebSocket- oder CDP-Port der Sandbox eine Verbindung herstellt).
Nächste Schritte
- Lesen Sie die Übersicht über Sandboxes und Benutzerdefinierte Container (BYOC).
- Informationen zur Verwendung von Private Service Connect-Schnittstellen mit der Agent Runtime.
- Informationen zur Fehlerbehebung bei VPC Service Controls.
- Eine vollständige Anleitung für ausgehenden Traffic finden Sie im Codelab zur Agent Engine-PSC-Schnittstelle.