VPC Service Controls mit Vertex AI

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 unter Zugriff auf Vertex AI von lokalen und Multicloud-Umgebungen, beschrieben, umfassen eine Reihe von Zugriffsoptionen, darunter das öffentliche 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 privater Google-Zugriff erleichtern zwar die private Kommunikation über hybride Netzwerkarchitekturen, beseitigen aber nicht die öffentliche Internetzugänglichkeit für Vertex AI APIs.

Um den API-Zugriff detailliert zu steuern und die öffentliche Internetnutzung 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 Cloud Console auf Vertex AI-Dienste zuzugreifen, der Zugriff verweigert, es sei denn, sie sind in einer Zulassungsliste enthalten.

Informationen zum Wiederherstellen des Zugriffs für autorisierte Quellen außerhalb des Perimeters (z. B. Nutzer in Ihren Büros) finden Sie unter Zugriff auf geschützte Ressourcen von außerhalb eines VPC Service Controls-Perimeters über einen öffentlichen Endpunkt zulassen für Bereitstellungs anleitungen.

Privater Zugriff

Organisationen, die den Zugriff auf öffentliche 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 privater Google-Zugriff verwenden. Bei der Bereitstellung über hybride Netzwerke und innerhalb von Google Cloud, ermöglichen beide Optionen den privaten Zugriff auf Google APIs von lokalen Umgebungen aus. Private Service Connect für Google APIs bietet jedoch auch die Flexibilität, 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 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 Überlegungen für lokale und VPC-Netzwerke erfordern. Nachfolgend sehen Sie einige Beispiele:

API-Zugriff über den Zugriff auf private Dienste steuern

Für die folgenden Vertex AI APIs, die mit dem 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 Dienst (Ersteller), der in einem Single-Tenant-Projekt und VPC-Netzwerk bereitgestellt wird und die Möglichkeit bietet, unterstützte Dienste basierend auf den Anforderungen der Nutzer zu skalieren. Die Kommunikation zwischen den Ersteller- und Nutzernetzwerken wird mit VPC-Netzwerk-Peering hergestellt, mit Ausnahme des Internet-Egress, der über das Erstellernetzwerk weitergeleitet wird.

Im Erstellernetzwerk ist eine Standardroute vorhanden, die neben dem uneingeschränkten Zugriff auf Google APIs auch den Internet-Egress ermöglicht. Wenn Sie das Erstellernetzwerk aktualisieren möchten, um die eingeschränkte VIP zu unterstützen, müssen Sie VPC Service Controls für Peeringsaktivieren, wodurch die folgenden Aktionen für alle unterstützten Dienste ausgeführt werden, die in Ihrem Erstellernetzwerk für Dienstnetzwerke 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 Diensterstellers. Die Zonen umfassen googleapis.com, pkg.dev, gcr.io und andere erforderliche Domains oder Hostnamen für Google APIs und -Dienste, die mit VPC Service Controls kompatibel sind.
  • Die Datensätze in den Zonen lösen alle Hostnamen in 199.36.153.4, 199.36.153.5, 199.36.153.6 und 199.36.153.7 auf.

Eine alternative Methode zum Entfernen der Standardroute aus dem Erstellernetzwerk 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:

  1. Zusätzlich zum HA VPN ein VPC-Netzwerk für Dienste im VPC-Netzwerk des Nutzers bereitstellen.
  2. Von Google verwaltete Dienste im VPC-Netzwerk für Dienste bereitstellen.
  3. VPC Service Controls für Peerings aktivieren .
  4. Das Subnetz für den Zugriff auf private Dienste als benutzerdefinierte Routenwerbung vom Cloud Router aus bewerben, wenn die verwalteten Dienste lokal erreichbar sein müssen.
  5. Das VPC-Netzwerk-Peering für Dienstnetzwerke mit der Option zum Exportieren benutzerdefinierter Routen aktualisieren.

Unterstützung von VPC Service Controls für Abstimmungspipelines 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 Modellfamilie textembedding-gecko.

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 Pipelinekomponenten verwenden oder eigene benutzerdefinierte Pipelinekomponenten für die Verwendung mit Vertex AI Pipelines erstellen, können Sie keine PyPI-Abhängigkeiten aus der öffentlichen Python Package Index-Registry (PyPI) installieren. Stattdessen müssen Sie eine der folgenden Aktionen 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 der Ausführung einer Pipeline keine Live-Installation erforderlich ist. Eine Möglichkeit dazu ist folgende:

  1. Erstellen Sie ein eigenes Container-Image mit dem Kubeflow Pipelines SDK und anderen vorinstallierten 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 zur Build-Dauer des Containers zu installieren.
  2. Aktualisieren Sie den Code der Komponentendefinition, um den Pfad base_image und das Flag install_kfp_package auf False zu setzen. Dieses Flag weist den KFP-Compiler an, keinen Befehl „pip install kfp“ in die Befehlszeile des Containers 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 in Ihrem Projekt ein Artifact Registry-Repository erstellen, Python-Pakete darin speichern und Ihre Vertex AI-Umgebung so konfigurieren, dass sie daraus installiert werden, wie in diesem Abschnitt beschrieben. Weitere Informationen finden Sie unter Python-Pakete verwalten.

Rollen und Berechtigungen konfigurieren

  1. Das Dienstkonto für Ihre Vertex AI-Umgebung muss die Rolle iam.serviceAccountUser haben.
  2. Wenn Sie benutzerdefinierte PyPI-Pakete aus einem Repository im Netzwerk Ihres Projekts installieren und dieses Repository keine öffentliche IP-Adresse hat:
    1. Weisen Sie dem Dienstkonto der Umgebung Berechtigungen für den Zugriff auf dieses Repository zu.
    2. Achten Sie darauf, dass die Verbindung zu diesem Repository in Ihrem Projekt konfiguriert ist.

Repository erstellen

  1. Erstellen Sie in Ihrem Projekt ein Artifact Registry-Repository im VPC-Modus.
  2. 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 ähnlich wie im folgenden Beispiel auf:

@dsl.component(packages_to_install=["tensorflow"],
pip_index_urls=['https://us-central1-python.pkg.dev/mygcpproject1/pypi-repo1/simple', 'https://us-central1-python.pkg.dev/mygcpproject2/pypi-repo2/simple'],)
def hello_world(text: str) -> str:
    import my_package
    import tensorflow

    return my_package.hello_world(text)

VPC Service Controls mit der PSC-Schnittstelle verwenden

Für die folgenden Vertex AI APIs, die mit der Schnittstelle für private Dienstverbindungen 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 Endpunkte für Onlineinferenzen
  • Vertex AI Agent Engine

Die Möglichkeit des Vertex AI-Erstellers, auf das öffentliche Internet zuzugreifen, 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, der Vertex AI hostet, behält seinen Standard-Internetzugriff bei. Dieser ausgehende Traffic wird direkt aus der sicheren, von Google verwalteten Umgebung geleitet, in der Ihr Erstellerdienst ausgeführt wird. Eine 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 sich Ihr Projekt in einem VPC Service Controls -Perimeter (VPC-SC) befindet, wird der Standard-Internetzugriff der von Google verwalteten Umgebung, die Vertex AI hostet, blockiert. Diese Einschränkung ist eine Sicherheitsmaßnahme, die Daten-Exfiltration verhindern soll. Damit Vertex AI in diesem Szenario auf das öffentliche Internet zugreifen kann, müssen Sie explizit einen sicheren Egress-Pfad konfigurieren, der den Traffic über Ihr VPC-Netzwerk weiterleitet.

Die empfohlene Methode umfasst folgende Schritte:

  1. Bereitstellung eines Proxyservers innerhalb Ihres VPC-Perimeters in einem RFC 1918-Subnetz.
  2. Erstellung eines Cloud NAT-Gateways, damit die Proxy-VM das Internet erreichen kann.
  3. Definition des Proxyservers (IP-Adresse oder FQDN) in Ihrer Laufzeitumgebung.

Für diese Aufgabe ist kein vorgeschriebener oder bevorzugter Netzwerkproxy vorhanden. 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 Dienst perimeter erstellen in der Dokumentation zu VPC Service Controls.

Eingeschränkte Dienste Ihrem Perimeter hinzufügen

Beim Einrichten eines Dienstperimeters empfehlen wir aus Sicherheitsgründen, alle eingeschränkten Dienste einzuschließen. 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 Flexibilität, nur die spezifischen Vertex AI APIs auszuwählen und einzuschließen, die für Ihre Abläufe unerlässlich sind.

Zu den Vertex AI APIs, die Sie in Ihren Dienstperimeter einbeziehen können, gehören:

  • 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) (eingestellt)
    • Generative AI in Vertex AI (Gemini)
    • Vertex AI Model Registry
    • Onlineinferenz
    • Modellabstimmung öffnen
    • Vektorsuche (Indexerstellung)
    • Vektorsuche (Indexabfrage)
    • Benutzerdefiniertes Training (Steuerungsebene)
    • Benutzerdefiniertes Training (Datenebene)
    • Vertex AI Pipelines
    • Private Endpunkte für Onlineinferenzen
    • Colab Enterprise
    • Vertex AI Agent Engine
    • Verwaltete Trainingscluster
  • 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 Pipelinekomponenten 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 eine der angegebenen Anforderungen noch nicht im Basis-Image vorhanden ist (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 mit Connection 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 auf diesem Endpunkt bereitzustellen, fehl. Wenn der Endpunkt ein freigegebener öffentlicher Endpunkt ist, schlägt auch das Senden einer Anfrage an den Endpunkt fehl. Ebenso schlägt der Versuch, ein Modell auf einem Endpunkt bereitzustellen, fehl, wenn der Endpunkt in einem Projekt erstellt wurde, das Teil eines Dienstperimeters war, und das Projekt später entfernt wird.
  • Wenn Sie VPC Service Controls mit der 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.
  • Bereitstellungen mit einem Klick aus dem Model Garden (dedizierter Endpunkt) werden in einer VPC-SC-Umgebung nicht unterstützt. Verwenden Sie stattdessen einen privaten Endpunkt, der VPC Service Controls unterstützt. Weitere Informationen finden Sie unter Modell auf einem privaten Endpunkt bereitstellen.
  • Das Anfrage- und Antwort-Logging ist mit VPC Service Controls nicht verfügbar.

Nächste Schritte