Controlli di servizio VPC con Vertex AI

I Controlli di servizio VPC possono aiutarti a mitigare il rischio di esfiltrazione di dati da Vertex AI. Utilizza i Controlli di servizio VPC per creare un perimetro di servizio che protegga le risorse e i dati che specifichi. Ad esempio, quando utilizzi Controlli di servizio VPC per proteggere Vertex AI, i seguenti artefatti non possono uscire dal perimetro di servizio:

  • Dati di addestramento per un modello AutoML o personalizzato
  • Modelli che hai creato
  • Modelli che hai cercato utilizzando Neural Architecture Search
  • Richieste di inferenze online
  • Risultati di una richiesta di inferenza batch
  • Modelli Gemini

Controllo dell'accesso alle API di Google

Le API Vertex AI, come descritto in Accesso a Vertex AI da on-premise e multicloud, comprendono una gamma di opzioni di accessibilità, tra cui internet pubblico, Private Service Connect per le API di Google e l'accesso privato Google.

Accesso pubblico

Per impostazione predefinita, queste API pubbliche sono raggiungibili da internet; tuttavia, per l'utilizzo sono necessarie autorizzazioni IAM. Sebbene funzionalità come Private Service Connect e l'accesso privato Google facilitino la comunicazione privata tramite architetture di rete ibride, non eliminano l'accessibilità a internet pubblico per le API Vertex AI.

Per stabilire un controllo granulare sull'accesso alle API e limitare esplicitamente l'esposizione a internet pubblico, l'implementazione dei Controlli di servizio VPC diventa essenziale. Questo livello di sicurezza consente agli amministratori di definire e applicare policy di accesso, attivando selettivamente la connettività pubblica o privata alle API di Google per soddisfare i requisiti dell'organizzazione.

Accesso privato

Le organizzazioni che devono limitare l'accesso pubblico alle API di Google all'accesso privato possono utilizzare i Controlli di servizio VPC in combinazione con le API di Google Private Service Connect (bundle Controlli di servizio VPC) o l'accesso privato Google. Se implementate tramite il networking ibrido e all'interno di Google Cloud, entrambe le opzioni consentono l'accesso privato alle API di Google da on-premise. Tuttavia, Private Service Connect offre anche flessibilità nella definizione di un indirizzo IP personalizzato e di un nome endpoint DNS.

Come best practice, utilizza l'IP virtuale (VIP) limitato con le API Private Service Connect di Google o l'accesso privato Google per fornire una route di rete privata per le richieste ai servizi Google Cloud senza esporre le richieste a internet. Il VIP con accesso limitato supporta tutte le API che Controlli di servizio VPC può proteggere e che richiedono considerazioni per le reti on-premise e VPC. Di seguito sono riportati alcuni esempi:

Controllo dell'accesso alle API tramite l'accesso ai servizi privati

Le seguenti API Vertex AI di cui è stato eseguito il deployment con l'accesso privato ai servizi richiedono una configurazione di rete aggiuntiva se implementate in un ambiente protetto con Controlli di servizio VPC:

  • Vector Search (query dell'indice)
  • Addestramento personalizzato (data plane)
  • Vertex AI Pipelines
  • Endpoint di previsione online privati

Ad esempio, Vertex AI Pipelines è un servizio gestito da Google (produttore), implementato in un progetto e in una rete VPC single-tenant con la possibilità di scalare i servizi supportati in base ai requisiti dei consumatori. La comunicazione tra le reti producer e consumer viene stabilita con il peering di rete VPC, ad eccezione del traffico internet in uscita, che viene instradato tramite la rete producer.

Nella rete del produttore esiste una route predefinita che consente l'uscita da internet, oltre all'accesso illimitato alle API di Google. L'aggiornamento della rete producer per supportare il VIP con limitazioni richiede l'attivazione di Controlli di servizio VPC per i peering, che esegue le seguenti azioni su tutti i servizi supportati di cui è stato eseguito il deployment nella rete producer di servizio di rete:

  • Rimuove la route predefinita IPv4 (destinazione 0.0.0.0/0, hop successivo gateway internet predefinito).
  • Crea zone private gestite da Cloud DNS e autorizza queste zone per la rete VPC del producer di servizi. Le zone includono googleapis.com, pkg.dev, gcr.io e altri domini o nomi host necessari per le API e i servizi Google compatibili con i Controlli di servizio VPC.
  • I dati dei record nelle zone risolvono tutti i nomi host in 199.36.153.4, 199.36.153.5, 199.36.153.6 e 199.36.153.7.

Un metodo alternativo per rimuovere la route predefinita dalla rete del produttore senza influire sui servizi gestiti da Google esistenti consiste nell'utilizzare la VPN ad alta disponibilità su Cloud Interconnect, che prevede i seguenti passaggi:

  1. Esegui il deployment di una rete VPC dei servizi in aggiunta alla VPN ad alta disponibilità nella rete VPC consumer.
  2. Esegui il deployment dei servizi gestiti da Google nella rete VPC dei servizi.
  3. Attiva i Controlli di servizio VPC per i peering.
  4. Annuncia la subnet di accesso privato ai servizi come annuncio di route personalizzato dal router Cloud se i servizi gestiti richiedono la raggiungibilità on-premise.
  5. Aggiorna il peering di rete VPC di Service Networking con l'opzione Esporta route personalizzate.

Creazione del perimetro di servizio

Per una panoramica della creazione di un perimetro di servizio, consulta la sezione Creazione di un perimetro di servizio nella documentazione dei Controlli di servizio VPC.

Aggiunta di servizi con limitazioni al perimetro

Quando stabilisci un perimetro di servizio, ti consigliamo di includere tutti i servizi con limitazioni come best practice per la sicurezza. Questo approccio completo contribuisce a ridurre al minimo le potenziali vulnerabilità e gli accessi non autorizzati. Tuttavia, potrebbero verificarsi scenari in cui la tua organizzazione ha requisiti specifici incentrati sulla salvaguardia di Vertex AI e delle sue API interconnesse. In questi casi, hai la flessibilità di selezionare e includere solo le API Vertex AI specifiche essenziali per le tue operazioni.

Le API Vertex AI che puoi incorporare nel tuo perimetro di servizio includono le seguenti:

  • L'API Vertex AI supporta i seguenti servizi e funzionalità:
    • Inferenza batch
    • Set di dati
    • Vertex AI Feature Store (servizio online Bigtable)
    • Vertex AI Feature Store (servizio online ottimizzato)
    • AI generativa su Vertex AI (Gemini)
    • Vertex AI Model Registry
    • Inferenza online
    • Vector Search (creazione dell'indice)
    • Vector Search (query dell'indice)
    • Addestramento personalizzato (piano di controllo)
    • Addestramento personalizzato (data plane)
    • Vertex AI Pipelines
    • Endpoint di inferenza online privati
    • Colab Enterprise
    • Motore Vertex AI Agent
  • L'API Notebooks supporta il seguente servizio:
    • Vertex AI Workbench

Supporto di Controlli di servizio VPC per le pipeline di ottimizzazione dell'IA generativa

Il supporto dei Controlli di servizio VPC è fornito nella pipeline di ottimizzazione dei seguenti modelli:

  • text-bison for PaLM 2
  • BERT
  • T5
  • La famiglia di modelli textembedding-gecko.

Utilizzo dei Controlli di servizio VPC con Vertex AI Pipelines

Il perimetro di servizio blocca l'accesso da Vertex AI a API e servizi di terze parti su internet. Se utilizzi Google Cloud i componenti della pipeline o crei componenti della pipeline personalizzati da utilizzare con Vertex AI Pipelines, non puoi installare le dipendenze PyPI dal registro pubblico Python Package Index (PyPI). Devi invece effettuare una delle seguenti operazioni:

Utilizzo di container personalizzati

Come best practice per il software di produzione, gli autori dei componenti devono utilizzare componenti Python in container e creare le dipendenze nell'immagine del container, in modo che non sia necessaria alcuna installazione live durante l'esecuzione di una pipeline. Un modo per farlo è il seguente:

  1. Crea la tua immagine container con l'SDK Kubeflow Pipelines e altri pacchetti preinstallati. Ad esempio, puoi utilizzare us-docker.pkg.dev/vertex-ai/training/tf-cpu.2-17:latest come livello base dell'immagine e aggiungere un livello aggiuntivo per installare i pacchetti al momento della creazione del container.

  2. Aggiorna il codice di definizione del componente per impostare il percorso base_image e il flag install_kfp_package su False. Questo flag indica al compilatore KFP di non inserire un comando pip install kfp nella riga di comando del container, perché il pacchetto SDK Kubeflow Pipelines è già installato nell'immagine. Ad esempio:

    @component(
        base_image='gcr.io/deeplearning-platform-release/tf-cpu.2-17',
        install_kfp_package=False,
    )
    def my_component(...):
        ...
    

Installa pacchetti da un repository Artifact Registry

In alternativa, puoi creare un repository Artifact Registry nel tuo progetto, archiviarvi i pacchetti Python e configurare l'ambiente Vertex AI per l'installazione da questo repository, come descritto in questa sezione. Per saperne di più, consulta Gestire i pacchetti Python.

Configurare ruoli e autorizzazioni

  1. Il account di servizio per l'ambiente Vertex AI deve disporre del ruolo iam.serviceAccountUser.

  2. Se installi pacchetti PyPI personalizzati da un repository nella rete del tuo progetto e questo repository non ha un indirizzo IP pubblico:

    1. Assegna le autorizzazioni per accedere a questo repository al account di servizio dell'ambiente.

    2. Assicurati che la connettività a questo repository sia configurata nel tuo progetto.

Crea il repository

  1. Crea un repository Artifact Registry in modalità VPC nel tuo progetto.
  2. Archivia i pacchetti Python richiesti nel repository.

Configura l'ambiente Vertex AI per l'installazione dal repository

Per installare pacchetti PyPI personalizzati da uno o più repository Artifact Registry, effettua una chiamata simile alla seguente a @dsl.component:

@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)

Limitazioni

Quando utilizzi Controlli di servizio VPC, si applicano le seguenti limitazioni:

  • Per l'etichettatura dei dati, devi aggiungere gli indirizzi IP degli etichettatori a un livello di accesso.
  • Per i Google Cloud componenti della pipeline, i componenti avviano container che controllano la loro immagine di base per tutti i requisiti. Il pacchetto KFP, nonché tutti i pacchetti elencati nell'argomento packages_to_install, sono i requisiti per un container. Se i requisiti specificati non sono già presenti nell'immagine di base (fornita o personalizzata), il componente tenta di scaricarli da Python Package Index (PyPI). Poiché il perimetro di servizio blocca l'accesso da Vertex AI ad API e servizi di terze parti su internet, il download non va a buon fine e viene visualizzato il messaggio Connection to pypi.org timed out. Per scoprire come evitare questo errore, consulta Utilizzo dei Controlli di servizio VPC con Vertex AI Pipelines.
  • Quando utilizzi Controlli di servizio VPC con kernel personalizzati in Vertex AI Workbench, devi invece configurare il peering DNS per inviare richieste per *.notebooks.googleusercontent.com alla subnet 199.36.153.8/30 (private.googleapis.com) anziché 199.36.153.4/30 (restricted.googleapis.com).
  • Quando utilizzi Controlli di servizio VPC con Vertex AI Inference, gli endpoint devono essere creati dopo che il progetto è stato aggiunto al perimetro di servizio. Se viene creato un endpoint in un progetto che non fa parte di un perimetro di servizio e successivamente questo progetto viene aggiunto a un perimetro di servizio, il tentativo di eseguire il deployment di un modello in questo endpoint non andrà a buon fine. Se l'endpoint è un endpoint pubblico condiviso, anche l'invio di una richiesta all'endpoint non andrà a buon fine. Analogamente, il tentativo di eseguire il deployment di un modello su un endpoint non andrà a buon fine se l'endpoint è stato creato in un progetto che faceva parte di un perimetro di servizio e successivamente il progetto viene rimosso.

Passaggi successivi