Mit VPC Service Controls können Sie das Risiko der Daten-Exfiltration aus Vertex AI reduzieren. Verwenden Sie VPC Service Controls, um einen Dienstperimeter zu erstellen, der die von Ihnen angegebenen Ressourcen und Daten schützt. Wenn Sie beispielsweise VPC Service Controls zum Schutz von Vertex AI verwenden, können die folgenden Artefakte Ihren Dienstperimeter nicht verlassen:
- Trainingsdaten für ein AutoML- oder benutzerdefiniertes Modell
- Von Ihnen erstellte Modelle
- Modelle, nach denen Sie mit Neural Architecture Search gesucht haben
- Anfragen für Onlineinferenzen
- Ergebnisse einer Batchinferenzanfrage
- Gemini-Modelle
Zugriff auf Google APIs steuern
Die Vertex AI APIs, wie in Auf Vertex AI von On-Premise- und Multicloud-Umgebungen aus zugreifen beschrieben, umfassen eine Reihe von Zugriffsoptionen, darunter öffentliches Internet, Private Service Connect für Google APIs und privater Google-Zugriff.
Öffentlicher Zugriff
Standardmäßig sind diese öffentlichen APIs über das Internet erreichbar. Für die Verwendung sind jedoch IAM-Berechtigungen erforderlich. Funktionen wie Private Service Connect für Google APIs und der privater Google-Zugriff ermöglichen zwar die private Kommunikation über hybride Netzwerkarchitekturen, sie verhindern jedoch nicht, dass Vertex AI APIs über das öffentliche Internet zugänglich sind.
Um eine detaillierte Kontrolle über den API-Zugriff zu erhalten und die Gefährdung durch das öffentliche Internet explizit einzuschränken, ist die Implementierung von VPC Service Controls unerlässlich. Wenn Sie einen VPC Service Controls-Perimeter (VPC-SC) einrichten und die Vertex AI API in die geschützten Dienste aufnehmen, wird der gesamte öffentliche Internetzugriff auf Ihre Vertex AI-Instanz automatisch blockiert. Daher wird Nutzern, die versuchen, programmatisch oder über die Google Google Cloud Console auf Vertex AI-Dienste zuzugreifen, der Zugriff verweigert, sofern sie nicht auf einer Zulassungsliste stehen.
Wenn Sie den Zugriff für autorisierte Quellen außerhalb des Perimeters wiederherstellen möchten (z. B. für Nutzer in Ihren Büros), finden Sie unter Zugriff auf öffentliche Endpunkte auf geschützte Ressourcen von außerhalb eines VPC Service Controls-Perimeters zulassen eine Anleitung zur Bereitstellung.
Privater Zugriff
Organisationen, die den öffentlichen Zugriff auf Google APIs auf privaten Zugriff beschränken müssen, können VPC Service Controls in Kombination mit Private Service Connect für Google APIs (VPC Service Controls-Bundle) oder dem privater Google-Zugriff verwenden. Bei der Bereitstellung über hybride Netzwerke und innerhalb von Google Cloudermöglichen beide Optionen den privaten Zugriff auf Google-APIs von lokalen Umgebungen aus. Private Service Connect für Google APIs bietet jedoch auch die Möglichkeit, eine benutzerdefinierte IP-Adresse und einen benutzerdefinierten DNS-Endpunktnamen zu definieren.
Als Best Practice sollten Sie die eingeschränkte virtuelle IP (VIP) mit Private Service Connect für Google APIs oder mit dem privater Google-Zugriff verwenden, um eine private Netzwerkroute für Anfragen an Google Cloud -Dienste bereitzustellen, ohne die Anfragen im Internet verfügbar zu machen. Die eingeschränkte VIP unterstützt alle APIs, die VPC Service Controls schützen kann und die für lokale und VPC-Netzwerke berücksichtigt werden müssen. Nachfolgend sehen Sie einige Beispiele:
- Multicloud-Zugriff auf geschützte Ressourcen über einen privaten Endpunkt außerhalb eines VPC Service Controls-Perimeters zulassen
- Informationen zur Verwendung eines kundenspezifischen PSC-Google APIs-Endpunkts (VPC-Netzwerkbeispiel)
- Beispiel für ein lokales Netzwerk
API-Zugriff über privaten Dienstzugriff steuern
Für die folgenden Vertex AI-APIs, die mit Zugriff auf private Dienste bereitgestellt werden, ist eine zusätzliche Netzwerkkonfiguration erforderlich, wenn sie in einer Umgebung implementiert werden, die mit VPC Service Controls geschützt ist:
- Vektorsuche (Indexabfrage)
- Benutzerdefiniertes Training (Datenebene)
- Vertex AI Pipelines
- Private Endpunkte für Onlinevorhersagen
Vertex AI Pipelines ist beispielsweise ein von Google verwalteter (Ersteller-)Dienst, der in einem Projekt und VPC-Netzwerk mit einem einzelnen Mandanten bereitgestellt wird und die Möglichkeit bietet, unterstützte Dienste basierend auf den Anforderungen des Nutzers zu skalieren. Die Kommunikation zwischen dem Ersteller- und dem Nutzernetzwerk wird über VPC Network Peering hergestellt. Ausgehender Internettraffic wird jedoch über das Erstellernetzwerk geleitet.
Im Produzentennetzwerk gibt es eine Standardroute, die neben dem uneingeschränkten Zugriff auf Google APIs auch den Internet-Egress ermöglicht. Wenn Sie das Dienstersteller-Netzwerk aktualisieren, um die eingeschränkte VIP zu unterstützen, müssen Sie VPC Service Controls für Peerings aktivieren. Dadurch werden die folgenden Aktionen für alle unterstützten Dienste ausgeführt, die in Ihrem Service Networking-Dienstersteller-Netzwerk bereitgestellt werden:
- Entfernt die IPv4-Standardroute (Ziel
0.0.0.0/0
, nächster Hop „Standard-Internetgateway“). - Erstellt von Cloud DNS verwaltete private Zonen und autorisiert diese Zonen für das VPC-Netzwerk des Dienstanbieters. Die Zonen umfassen
googleapis.com
,pkg.dev
,gcr.io
und andere erforderliche Domains oder Hostnamen für Google APIs und Google-Dienste, die mit VPC Service Controls kompatibel sind. - Wenn Sie Daten in den Zonen aufzeichnen, werden alle Hostnamen in
199.36.153.4
,199.36.153.5
,199.36.153.6
und199.36.153.7
aufgelöst.
Eine alternative Methode zum Entfernen der Standardroute aus dem Producer-Netzwerk, ohne die vorhandenen von Google verwalteten Dienste zu beeinträchtigen, ist die Verwendung von HA VPN über Cloud Interconnect. Diese Methode umfasst die folgenden Schritte:
- Stellen Sie zusätzlich ein VPC-Netzwerk für Dienste mit HA VPN für das Nutzer-VPC-Netzwerk bereit.
- Stellen Sie von Google verwaltete Dienste im VPC-Netzwerk für Dienste bereit.
- Aktivieren Sie VPC Service Controls für Peerings.
- Bieten Sie das Subnetz für den privaten Dienstzugriff als benutzerdefinierte Routenankündigung vom Cloud Router an, wenn für die verwalteten Dienste eine lokale Erreichbarkeit erforderlich ist.
- Aktualisieren Sie das VPC-Netzwerk-Peering für Service Networking mit der Option Benutzerdefinierte Routen exportieren.
Unterstützung von VPC Service Controls für Abstimmungspipelin es für generative KI
Unterstützung von VPC Service Controls wird in der Abstimmungspipeline der folgenden Modelle bereitgestellt:
text-bison for PaLM 2
BERT
T5
- Die
textembedding-gecko
-Modellfamilie.
VPC Service Controls mit Vertex AI Pipelines verwenden
Der Dienstperimeter blockiert den Zugriff von Vertex AI auf APIs und Dienste von Drittanbietern im Internet. Wenn Sie Google Cloud -Pipeline-Komponenten verwenden oder eigene benutzerdefinierte Pipeline-Komponenten erstellen, die mit Vertex AI Pipelines verwendet werden sollen, können Sie keine PyPI-Abhängigkeiten aus der öffentlichen Python Package Index (PyPI)-Registrierung installieren. Stattdessen müssen Sie einen der folgenden Schritte ausführen:
Benutzerdefinierte Container verwenden
Als Best Practice für Produktionssoftware sollten Komponentenautoren containerisierte Python-Komponenten verwenden und die Abhängigkeiten in ihr Container-Image einbauen, damit während eines Pipeline-Laufs keine Live-Installation erforderlich ist. Eine Möglichkeit, dies zu tun, ist die folgende:
- Erstellen Sie ein eigenes Container-Image mit dem vorinstallierten Kubeflow Pipelines SDK und anderen Paketen. Sie können beispielsweise
us-docker.pkg.dev/vertex-ai/training/tf-cpu.2-17:latest
als Basisebene Ihres Images verwenden und eine zusätzliche Ebene hinzufügen, um die Pakete während der Containererstellung zu installieren. Aktualisieren Sie den Code für die Komponentendefinition, um den Pfad
base_image
und das Flaginstall_kfp_package
aufFalse
festzulegen. Dieses Flag weist den KFP-Compiler an, keinen „pip install kfp“-Befehl in die Container-Befehlszeile einzufügen, da das Kubeflow Pipelines SDK-Paket bereits im Image installiert ist. Beispiel:@component( base_image='gcr.io/deeplearning-platform-release/tf-cpu.2-17', install_kfp_package=False, ) def my_component(...): ...
Pakete aus einem Artifact Registry-Repository installieren
Alternativ können Sie ein Artifact Registry-Repository in Ihrem Projekt erstellen, Python-Pakete darin speichern und Ihre Vertex AI-Umgebung so konfigurieren, dass sie daraus installiert wird, wie in diesem Abschnitt beschrieben. Weitere Informationen finden Sie unter Python-Pakete verwalten.
Rollen und Berechtigungen konfigurieren
- Das Dienstkonto für Ihre Vertex AI-Umgebung muss die Rolle
iam.serviceAccountUser
haben. - Wenn Sie benutzerdefinierte PyPI-Pakete aus einem Repository im Netzwerk Ihres Projekts installieren und dieses Repository keine öffentliche IP-Adresse hat:
- Weisen Sie dem Dienstkonto der Umgebung Berechtigungen für den Zugriff auf dieses Repository zu.
- Prüfen Sie, ob die Verbindung zu diesem Repository in Ihrem Projekt konfiguriert ist.
Repository erstellen
- Erstellen Sie in Ihrem Projekt ein Artifact Registry-Repository im VPC-Modus.
- Speichern Sie die erforderlichen Python-Pakete im Repository.
Vertex AI-Umgebung für die Installation aus dem Repository konfigurieren
Wenn Sie benutzerdefinierte PyPI-Pakete aus einem oder mehreren Artifact Registry-Repositories installieren möchten, rufen Sie @dsl.component
mit einem ähnlichen Befehl wie dem folgenden auf:
@dsl.component(packages_to_install=["tensorflow"],
pip_index_urls=['http://myprivaterepo.com/simple', 'http://pypi.org/simple'],)
def hello_world(text: str) -> str:
import my_package
import tensorflow
return my_package.hello_world(text)
VPC Service Controls mit PSC-Schnittstelle verwenden
Für die folgenden Vertex AI-APIs, die mit der Schnittstelle für private Dienste bereitgestellt werden, ist eine zusätzliche Netzwerkkonfiguration erforderlich, wenn sie in einer Umgebung implementiert werden, die mit VPC Service Controls geschützt ist:
- Benutzerdefiniertes Training (Datenebene)
- Vertex AI Pipelines
- Private Online-Inferenzendpunkte
- Vertex AI Agent Engine
Ob der Dienst von Vertex AI-Anbietern auf das öffentliche Internet zugreifen kann, hängt von der Sicherheitskonfiguration Ihres Projekts ab, insbesondere davon, ob Sie VPC Service Controls verwenden:
Ohne VPC Service Controls: Der von Google verwaltete Mandant, auf dem Vertex AI gehostet wird, behält seinen Standard-Internetzugriff. Dieser ausgehende Traffic wird direkt aus der sicheren, von Google verwalteten Umgebung geleitet, in der Ihr Producer-Dienst ausgeführt wird. Die Ausnahme von diesem Verhalten ist die Vertex AI Agent Engine, die keinen Internet-Egress bietet. Stattdessen müssen Sie eine Proxy-VM mit einer RFC 1918-Adresse für den Internet-Egress bereitstellen.
Mit VPC Service Controls: Wenn Ihr Projekt in einem VPC Service Controls-Perimeter (VPC-SC) eingeschlossen ist, wird der standardmäßige Internetzugriff der von Google verwalteten Umgebung, in der Vertex AI gehostet wird, blockiert. Diese Einschränkung ist eine Sicherheitsmaßnahme, die dazu dient, Daten-Exfiltration zu verhindern. Damit Vertex AI in diesem Szenario auf das öffentliche Internet zugreifen kann, müssen Sie explizit einen sicheren Pfad für ausgehenden Traffic konfigurieren, der den Traffic über Ihr VPC-Netzwerk weiterleitet.
Die empfohlene Methode umfasst Folgendes:
- Bereitstellung eines Proxyservers innerhalb des VPC-Perimeters in einem RFC 1918-Subnetz.
- Erstellen eines Cloud NAT-Gateways, damit die Proxy-VM das Internet erreichen kann.
- Definieren Sie den Proxyserver (IP-Adresse oder FQDN) in Ihrer Laufzeitumgebung.
Für diese Aufgabe gibt es keinen vorgeschriebenen oder bevorzugten Netzwerkproxy. Sie können jede geeignete Lösung verwenden. Beispiele sind Squid-Proxy, HAProxy, Envoy und TinyProxy.
Dienstperimeter erstellen
Eine Übersicht zum Erstellen eines Dienstperimeters finden Sie unter Dienstperimeter erstellen in der Dokumentation zu VPC Service Controls.
Eingeschränkte Dienste Ihrem Perimeter hinzufügen
Beim Einrichten eines Dienstperimeters empfehlen wir, alle eingeschränkten Dienste als Sicherheits-Best Practice einzubeziehen. Dieser umfassende Ansatz trägt dazu bei, potenzielle Sicherheitslücken und unbefugten Zugriff zu minimieren. Es kann jedoch Szenarien geben, in denen Ihre Organisation spezifische Anforderungen hat, die auf den Schutz von Vertex AI und den damit verbundenen APIs ausgerichtet sind. In solchen Fällen haben Sie die Möglichkeit, nur die spezifischen Vertex AI-APIs auszuwählen und einzubinden, die für Ihre Abläufe erforderlich sind.
Die folgenden Vertex AI-APIs können Sie in Ihren Dienstperimeter einbinden:
- Die Vertex AI API unterstützt die folgenden Dienste und Funktionen:
- Batchinferenz
- Datasets
- Vertex AI Feature Store (Bigtable-Onlinebereitstellung)
- Vertex AI Feature Store (optimierte Onlinebereitstellung)
- Generative AI in Vertex AI (Gemini)
- Vertex AI Model Registry
- Onlineinferenz
- Vektorsuche (Indexerstellung)
- Vektorsuche (Indexabfrage)
- Benutzerdefiniertes Training (Steuerungsebene)
- Benutzerdefiniertes Training (Datenebene)
- Vertex AI Pipelines
- Private Online-Inferenzendpunkte
- Colab Enterprise
- Vertex AI Agent Engine
- Die Notebooks API unterstützt den folgenden Dienst:
- Vertex AI Workbench
Beschränkungen
Die folgenden Einschränkungen gelten bei der Verwendung von VPC Service Controls:
- Zum Hinzufügen von Daten-Labels müssen Sie die IP-Adressen der Labelersteller einer Zugriffsebene hinzufügen.
- Bei Google Cloud Pipeline Components starten die Komponenten Container, die ihr Basis-Image auf alle Anforderungen prüfen.
Das KFP-Paket sowie alle im Argument
packages_to_install
aufgeführten Pakete sind die Anforderungen für einen Container. Wenn angegebene Anforderungen noch nicht im Basis-Image vorhanden sind (entweder bereitgestellt oder benutzerdefiniert), versucht die Komponente, sie aus dem Python Package Index (PyPI) herunterzuladen. Da der Dienstperimeter den Zugriff von Vertex AI auf APIs und Dienste von Drittanbietern im Internet blockiert, schlägt der Download mitConnection to pypi.org timed out
fehl. Informationen dazu, wie Sie diesen Fehler vermeiden können, finden Sie unter VPC Service Controls mit Vertex AI Pipelines verwenden. - Wenn Sie VPC Service Controls mit benutzerdefinierten Kerneln in Vertex AI Workbench verwenden, müssen Sie stattdessen DNS-Peering so konfigurieren, dass Anfragen für
*.notebooks.googleusercontent.com
an das Subnetz 199.36.153.8/30 (private.googleapis.com
) anstelle von 199.36.153.4/30 (restricted.googleapis.com
) gesendet werden. - Wenn Sie VPC Service Controls mit Vertex AI Inference verwenden, müssen Endpunkte erstellt werden, nachdem das Projekt dem Dienstperimeter hinzugefügt wurde. Wenn ein Endpunkt in einem Projekt erstellt wird, das nicht Teil eines Dienstperimeters ist, und dieses Projekt später einem Dienstperimeter hinzugefügt wird, schlägt der Versuch, ein Modell für diesen Endpunkt bereitzustellen, fehl. Wenn der Endpunkt ein gemeinsamer öffentlicher Endpunkt ist, schlägt auch das Senden einer Anfrage an den Endpunkt fehl. Ebenso schlägt der Versuch fehl, ein Modell auf einem Endpunkt bereitzustellen, wenn der Endpunkt in einem Projekt erstellt wurde, das Teil eines Dienstperimeters war, und das Projekt anschließend entfernt wird.
- Wenn Sie VPC Service Controls mit Vertex AI Agent Engine verwenden, muss das Projekt Teil eines Dienstperimeters sein, bevor Sie den Agent bereitstellen. Wenn ein Agent bereitgestellt wird, bevor das Projekt einem Perimeter hinzugefügt wird, ist der Agent nicht durch VPC Service Controls geschützt und hat weiterhin Zugriff auf das öffentliche Internet.
Nächste Schritte
- Video zu VPC Service Controls: Cloud-Projekte in einer freigegebenen VPC segmentieren
- Video zum Verwenden des Probelaufmodus in VPC Service Controls
- Video zu VPC Service Controls: Unterstützung privater IP-Adressen für die Erstellung detaillierter Zugriffssteuerungen
- VPC Service Controls
- Weitere Informationen zu erforderlichen Rollen für VPC Service Controls
- Fehlerbehebung bei VPC Service Controls-Problemen
- Proxy-VM bereitstellen, um über die VPC des Kunden auf das Internet zuzugreifen