Mit Private Service Connect (PSC-E / PSC-I) können Sie den privaten eingehenden und ausgehenden Internet-Traffic einer Agent Platform-Sandbox steuern. Diese Einstellungen sorgen dafür, dass die Sandbox mit VPC Service Controls innerhalb eines Perimeters oder ohne Perimeter kompatibel ist.
Übersicht
Mit VPC Service Controls können Sie einen Dienstperimeter definieren, der Ressourcen von Google Cloud isoliert, um das Risiko einer Daten-Exfiltration zu minimieren. Die Sandbox der Gemini Enterprise Agent Platform bietet Ihren KI-Agenten eine sichere, isolierte Rechenumgebung, in der sie nicht vertrauenswürdigen Code ausführen, einen Webbrowser steuern (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: eingehender privater Traffic (PSC-E) und ausgehender Traffic (PSC-I).
Wenn Sie die Sandbox innerhalb eines Perimeters ausführen, bleibt Folgendes innerhalb Ihrer Grenzen geschützt:
- Daten, die Ihr Agent während einer Sandbox-Sitzung liest oder schreibt (Dateien auf dem Sandbox-Laufwerk, Status im Arbeitsspeicher).
- Sandbox-Snapshots, die den Laufwerks- 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) eine Sandbox VPC Service Controls-konform machen. Wenn Sie eingehenden und ausgehenden Traffic ohne VPC Service Controls-Perimeter einrichten möchten, fahren Sie mit Ausgehenden Sandbox-Traffic mit einer Private Service Connect-Schnittstelle (PSC-I) steuern fort.
Einschränkungen und Überlegungen
Beachten Sie die folgenden Einschränkungen und Sicherheitsgrenzen, wenn Sie VPC Service Controls und Private Service Connect für Sandbox-Umgebungen konfigurieren:
- Keine integrierte Zulassungsliste für Sandbox-Domains: Sandboxes und
SandboxEnvironmentTemplate-Ressourcen haben kein integriertes Feld für eine Zulassungsliste für Domains. Wenn Sieinternet_access: Trueaufegress_control_configohnenetwork_attachmentaktivieren, wird uneingeschränkter ausgehender Zugriff auf öffentliche IP-Adressen (0.0.0.0/0, ausgenommen private RFC 1918-Bereiche und der Metadatenbereich169.254.0.0/16) gewährt. Wenn Sie ausgehende Verbindungen nach Domainname (FQDN), URL oder IP-Adresse einschränken möchten, müssen Sie den ausgehenden Traffic der Sandbox über eine Private Service Connect-Schnittstelle (network_attachment) in Ihre VPC leiten und die Filterung in Ihrer VPC mit Cloud Next Generation Firewall (Cloud NGFW) oder Secure Web Proxy (Secure Web Proxy) erzwingen. - Einzelnes Nutzerprojekt für privaten eingehenden Traffic: Privater eingehender Traffic (PSC-E) kann für maximal ein Nutzerprojekt aktiviert werden. Dies muss dasselbe Nutzerprojekt sein, in dem die Sandbox ausgeführt wird.
- DNS-Auflösung und Anti-Tunneling: Wenn ausgehender Traffic in Ihre VPC überbrückt wird, wird nur die private Namensauflösung über Cloud DNS-Peering (
dns_peering_configs) unterstützt. Die öffentliche DNS-Weiterleitung ist deaktiviert, um die Exfiltration von DNS-Tunneln zu verhindern. - Cloud-Audit-Logs und Prüfung von Netzwerkbedrohungen: Cloud-Audit-Logs zeichnet Lebenszyklusaufrufe der Steuerungsebene und RPCs zur Ausführung der Datenebene (
ExecuteSandboxEnvironment,BidiExecuteSandboxEnvironmentundAuthorizeSandboxEnvironmentAccess) auf. Das Logging von Anfrage- und Antwortnutzlasten ist für Ressourcen, die durch VPC Service Controls geschützt sind, nicht verfügbar. Einzelne untergeordnete Prozesse und Netzwerk-Sockets im Container werden nicht in Cloud-Audit-Logs protokolliert. Wenn Sie ausgehende Verbindungen prüfen und Netzwerkbedrohungen erkennen möchten, aktivieren Sie VPC-Flusslogs, Cloud NGFW-Regel-Logging, Cloud DNS-Abfrage-Logging und Secure Web Proxy-Logs in Ihrer VPC. - Isolierte Identität in der Sandbox: Code in der Sandbox wird unter einer nicht privilegierten Mandantenidentität ohne IAM-Rollen (Identity and Access Management) in Ihrem Projekt ausgeführt. Er übernimmt nicht die Agentenidentität oder das Dienstkonto des übergeordneten Agenten und kann den Compute Engine-Metadatenserver (
169.254.169.254:80) nicht nach Anmeldedaten abfragen. Weitere Informationen finden Sie unter Ausführungsidentität und Grenzen für Anmeldedaten. - Perimeter-Zugriffsebenen: Der programmatische und Konsolenzugriff von außerhalb des Perimeters wird verweigert, es sei denn, der Aufrufer entspricht einer Zugriffsebene im Perimeter.
Hinweis
Bevor Sie VPC Service Controls oder Private Service Connect für Ihre Sandboxes konfigurieren, müssen Sie die folgenden Voraussetzungen erfüllen:
- Erstellen oder identifizieren Sie den VPC Service Controls-Dienstperimeter, der Ihr Projekt enthält. Damit die Sandboxen durch den VPC Service Controls-Perimeter geschützt werden, muss sich Ihr Google Cloud -Projekt im Perimeter befinden, bevor Sie die Sandboxen erstellen.
- Aktivieren Sie die Agent Platform API (
aiplatform.googleapis.com) in Ihrem Projekt. - Sie haben ein VPC-Netzwerk in der Region, in der Sie Sandboxes ausführen.
- Prüfen Sie, ob Sie die erforderlichen Rollen haben:
- Rolle Access Context Manager-Administrator 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 Google Cloud Console und bearbeiten Sie Ihren Perimeter.
- Fügen Sie unter Eingeschränkte Dienste die Agent Platform API (
aiplatform.googleapis.com) hinzu. - Achten Sie darauf, dass sich die von Ihrer Sandbox verwendeten Abhängigkeiten im selben Perimeter befinden, in der Regel Cloud Storage (
storage.googleapis.com) und Artifact Registry (artifactregistry.googleapis.com, für benutzerdefinierte Container-Images). Der Snapshot-Speicher wird automatisch für Sie verwaltet. - Wenn Sie den Zugriff für vertrauenswürdige Nutzer außerhalb des Perimeters (z. B. Ihr Unternehmensnetzwerk) wiederherstellen möchten, hängen Sie eine Zugriffsebene an den Perimeter an.
Optional: Privaten Zugriff auf Google APIs konfigurieren
Innerhalb des VPC Service Controls-Perimeters erreicht die Sandbox Google APIs privat über die eingeschränkte virtuelle IP-Adresse (VIP). Verwenden Sie die eingeschränkte VIP auch in Ihren eigenen VPC- und lokalen Netzwerken, damit Anfragen nie über das öffentliche Internet geleitet werden:
- Leiten Sie
*.googleapis.coman die eingeschränkte VIP199.36.153.4/30weiter und aktivieren Sie den privaten Google-Zugriff für die Subnetze, die Google APIs aufrufen. - Erstellen Sie private Cloud DNS-Zonen für
googleapis.com(und, wenn Sie Images abrufen,pkg.dev/gcr.io), die in die eingeschränkte VIP aufgelöst werden.
Ausgehenden Sandbox-Traffic mit einer Private Service Connect-Schnittstelle (PSC-I) steuern
Da Sandboxes keine integrierte Einstellung für die Domain-Zulassungsliste enthalten, sollten Sie eine Private Service Connect-Schnittstelle (PSC-I) verwenden, wenn Sie ausgehende Domains (FQDNs) auf die Zulassungsliste setzen, URLs filtern oder der Sandbox den Zugriff auf private Dienste ermöglichen möchten. PSC-I leitet den gesamten ausgehenden Traffic der Sandbox in Ihre VPC weiter, sodass Sie diesen Traffic mit Ihren eigenen VPC-Sicherheitskontrollen verwalten und protokollieren können, unabhängig davon, ob sich Ihr Projekt innerhalb eines VPC Service Controls-Perimeters befindet oder nicht.
Jede Ressource in diesem Schritt wird im Nutzerprojekt erstellt, zu dem die Sandbox gehört, oder im zugehörigen Hostprojekt für die gemeinsam genutzte VPC. Ausgehender 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
Anhang aus der Sandbox-Vorlage referenzieren
Legen Sie die Felder für ausgehenden Traffic in der SandboxEnvironmentTemplate fest, damit die Sandbox ausgehenden Traffic über Ihre VPC weiterleitet:
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, wenn internet_access aktiviert ist.
Wenn Sie den Pfad aus Ihrer VPC einrichten und verwalten möchten, müssen Sie entscheiden, ob Sie ausgehenden Traffic über das Internet oder nur über private Verbindungen benötigen:
- Ausgehender Internet-Traffic: Für ausgehenden Internet-Traffic ist Cloud NAT erforderlich, außerdem eine Zielsteuerung mithilfe von 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.
Ausgehenden Internet-Traffic einrichten und Ziele verwalten
Die Sandbox wird über eine interne Adresse (RFC 1918) in Ihre VPC eingebunden. Daher ist Cloud NAT erforderlich, um das Internet zu erreichen. Reservieren Sie eine statische IP-Adresse für ausgehenden Traffic, wenn Ihre Ziele eine Zulassungsliste nach Quell-IP-Adresse verwenden.
# 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 ihr 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, URL-spezifische Richtlinien bereit und leiten Sie den ausgehenden Traffic des PSC-Subnetzes darüber weiter.
Nur für ausgehenden privaten 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 dies 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
Geben Sie der Sandbox die Namensauflösung über Ihre VPC anstelle von öffentlichen Resolvern (dadurch wird auch die Exfiltration von DNS-Tunneln 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öst.
Dienst-Agent Zugriff 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), weisen Sie dem Agent Platform-Dienst-Agent von Projekt B die Rolle „Compute-Netzwerknutzer“ für Projekt A zu:
# Agent Platform service agent of the project that runs the sandbox
service-PROJECT_NUMBER@gcp-sa-aiplatform.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.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 ein Client eine Verbindung herstellen muss. Sie können diese Datenebene über einen privaten Private Service Connect-Endpunkt (PSC-E) in Ihrer VPC anstelle des öffentlichen Internets erreichen.
Zulässiges Nutzerprojekt deklarieren
Legen Sie die Konfiguration für eingehenden Traffic in der Vorlage fest, wobei das Nutzerprojekt eine Verbindung herstellen darf. Nur das Nutzerprojekt, in dem die Sandbox ausgeführt wird, kann privaten eingehenden Traffic zur Sandbox-VPC haben.
Stellen Sie von einer VPC im selben Projekt eine Verbindung zur Sandbox 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:
# The sandbox returns a service attachment to connect to
service_attachment = sandbox.connection_info.service_attachment
Reservieren Sie dann eine interne IP-Adresse und erstellen Sie eine Weiterleitungsregel (PSC-Endpunkt) in Ihrer VPC, die auf den Dienstanhang verweist:
# 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 über sie erreichbar) stellen jetzt über die private IP-Adresse des Endpunkts eine Verbindung zur Sandbox her (z. B. ein Client, der eine Verbindung über den WebSocket- oder CDP-Port der Sandbox herstellt).
Nächste Schritte
Weitere Informationen zum Konfigurieren und Sichern Ihrer Sandboxes finden Sie in den folgenden Ressourcen:
- Lesen Sie die Sandbox-Übersicht und Benutzerdefinierte Container (BYOC).
- So funktionieren Private Service Connect-Schnittstellen mit Agent Runtime
- Fehlerbehebung bei VPC Service Controls
- Eine detaillierte Anleitung für ausgehenden Traffic finden Sie im Codelab zur PSC-Schnittstelle für die Agent Engine.