Configura la connettività da Vertex AI ad altre reti

Prima di leggere questa guida, assicurati di acquisire familiarità con il materiale dei peering VPC.

Per impostazione predefinita, la configurazione di peering consente solo alla rete in peering Vertex AI di raggiungere gli endpoint nelle subnet locali. L'esportazione di route personalizzate consente alla rete del produttore di raggiungere altre reti verso cui la tua rete ha route statiche o dinamiche.

Poiché il peering transitorio non è supportato, le connessioni di Vertex AI non sono in grado di raggiungere endpoint in altre reti con peering diretto alla tua rete, anche se l'opzione "Esporta route personalizzate" è abilitata. Nell'esempio mostrato nel diagramma seguente, i pacchetti possono attraversare la connessione di peering n. 1, ma non la connessione in peering n. 2.

Con peering transitivo

Per abilitare Vertex AI a raggiungere la rete utente n. 2, sostituisci la connessione in peering n. 2 con la VPN n. 2 come illustrato nel seguente diagramma.

Senza peering transitivo

L'abilitazione delle route personalizzate nella connessione di peering n. 1 consente ai pacchetti IP della rete Vertex AI di raggiungere la rete utente n. 2.

Per consentire il routing dei pacchetti di risposta dalla rete utente n. 2 alla rete Vertex AI, la route di ritorno deve esistere anche nella tabella di routing per la rete utente n. 2. Le route VPN vengono scambiate utilizzando il protocollo BGP (Border Gateway Protocol) sui router Cloud. Possiamo personalizzare la configurazione BGP dell'utente 1 per pubblicizzare una route verso l'intervallo di rete Vertex AI 10.1.0.0/16 alla sua rete utente peer n. 2.

Tieni presente che puoi modificare entrambi i lati della configurazione BGP VPN n. 1 per consentire alla rete on-premise e alla rete Vertex AI di apprendere le route verso l'altro. Poiché non viene effettuato alcun tentativo di trasmettere i pacchetti del percorso di inoltro dalla rete Vertex AI, né i pacchetti di risposta tramite connessioni di peering sequenziali in relazione a una singola rete, nessuno di questi tentativi di inoltro viene bloccato esplicitamente.

Configura la connettività da Vertex AI a internet

Se non viene specificata alcuna rete durante l'avvio di un carico di lavoro, quest'ultimo viene eseguito in un progetto producer separato gestito da Google.

Se viene specificata una rete, il carico di lavoro viene eseguito in un progetto producer collegato in peering al progetto consumer.

Per impostazione predefinita, la rete Vertex AI ha una propria route verso internet e la rete del produttore ha la propria route verso internet.

Per forzare l'instradamento attraverso la rete delle connessioni in uscita dalla rete del produttore, puoi abilitare Controlli di servizio VPC per il peering. Tieni presente che questa è una configurazione separata da Controlli di servizio VPC.

L'abilitazione dei Controlli di servizio VPC per i peering causa le seguenti modifiche alla rete Vertex AI:

  • Elimina la route internet predefinita.
  • Crea una route per la destinazione 199.36.153.4/30 con l'hop successivo del gateway internet predefinito.
  • Crea una zona privata gestita di Cloud DNS per *.googleapis.com con i record appropriati per mappare i nomi host a uno di questi quattro indirizzi.
  • Autorizza quella zona che può essere utilizzata dalla rete VPC servicenetworking.

Una volta applicata questa modifica, puoi esportare la route predefinita dalla tua rete per assicurarti che le connessioni in uscita verso internet vengano instradate tramite la rete VPC. Questa modifica consente anche di applicare tutti i criteri necessari al traffico in uscita da Vertex AI.

Utilizzo dei Controlli di servizio VPC

Se per il carico di lavoro viene specificata una rete e Controlli di servizio VPC sono abilitati, il carico di lavoro viene eseguito su una rete del producer in peering con il progetto consumer e soggetta agli stessi criteri della rete consumer.

Se questi criteri bloccano il traffico in uscita, anche il carico di lavoro non sarà in grado di raggiungere internet. In questo caso, devi seguire i passaggi nella sezione precedente per forzare il passaggio del traffico in uscita dal carico di lavoro attraverso un'istanza NAT nella tua rete VPC.

Configura la connettività di Vertex AI utilizzando i proxy

Un altro pattern per il controllo dell'IP in uscita da Vertex AI è forzare le connessioni in uscita dai carichi di lavoro a passare attraverso un proxy web controllato da te. Ciò consente inoltre di ispezionare le connessioni in uscita per verificarne la conformità.

Tuttavia, l'utilizzo di un proxy di terze parti obbliga l'utente a gestire il certificato del proxy per i reclami di autenticazione. Inoltre, questi proxy potrebbero non proporre un elenco di suite di crittografia che si interseca con le aspettative degli SDK e delle API di Vertex AI.

Google Cloud ora offre un proxy web sicuro per facilitare questo schema. Ora puoi seguire la guida rapida per il deployment di un'istanza di Secure Web Proxy e adattare i tuoi carichi di lavoro in modo da utilizzarli per l'outbounding delle connessioni. Queste connessioni sembreranno provenire dall'indirizzo IP di origine del proxy.

Se la libreria KFP non è già installata nell'immagine del componente, la pipeline tenta di installarla prima di eseguire qualsiasi codice in cui potresti aver specificato un proxy.

Se la pipeline dipende dal proxy per l'installazione dei pacchetti da internet, questo tentativo non andrà a buon fine e potresti visualizzare un errore come il seguente:

Could not find a version that satisfies the requirement kfp==2.7.0

In questi casi, quando non riesci a installare KFP prima di eseguire il codice, devi utilizzare un'immagine in cui KFP è già installato.

Puoi aggiungere KFP a qualsiasi immagine di base ed eseguirne il push al tuo repository.

Nel seguente esempio di Dockerfile viene aggiunto KFP all'immagine di base python:3.8.

FROM python:3.8
RUN pip install kfp==2.7.0

Puoi quindi configurare la pipeline @component per utilizzare questa immagine:

@component(base_image="$PATH_TO_YOUR_REPOSITORY:YOUR_IMAGE")

Quando il componente della pipeline è in esecuzione, il codice può installare liberamente altri pacchetti attraverso il proxy. L'esempio seguente installa numpy utilizzando un proxy all'indirizzo https://10.10.10.10:443.

import subprocess
subprocess.call(['pip', 'install', '--proxy', 'https://10.10.10.10:443', 'numpy'])`

Configurare le liste consentite per l'accesso all'API

Per le transazioni tra i carichi di lavoro Vertex AI e le API di Google, devi consentire l'accesso dai carichi di lavoro agli intervalli IP utilizzati dalle API di Google. A questo scopo, puoi eseguire lo script fornito per restituire gli indirizzi IP per i domini predefiniti.