Configura la connettività da Vertex AI ad altre reti

Assicurati di conoscere il materiale relativo ai peering VPC prima di leggere questa guida.

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

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

Con il peering transitivo

Per consentire a Vertex AI di raggiungere la rete utente 2, sostituisci la connessione di peering 2 con la VPN 2 come mostrato nel seguente diagramma.

Senza peering transitivo

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

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

Tieni presente che puoi modificare entrambi i lati della configurazione BGP della VPN 1 per consentire alla rete on-premise e alla rete Vertex AI di apprendere le route tra loro. Poiché non viene tentato di trasmettere pacchetti del percorso in avanti dalla rete di Vertex AI né i pacchetti di risposta tramite connessioni di peering sequenziali rispetto a qualsiasi 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 il lancio di un carico di lavoro, questo viene eseguito in un progetto di produzione gestito da Google distinto.

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

Per impostazione predefinita, la rete Vertex AI ha il proprio percorso per internet e la rete del produttore ha il proprio percorso predefinito per internet.

Per forzare il routing delle connessioni in uscita dalla rete del producer tramite la tua rete, puoi attivare Controlli di servizio VPC per i peering. Tieni presente che si tratta di una configurazione separata dai Controlli di servizio VPC.

L'attivazione di Controlli di servizio VPC per i peering comporta le seguenti modifiche nella rete Vertex AI:

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

Dopo aver apportato questa modifica, puoi esportare la route predefinita dalla tua rete per assicurarti che le connessioni in uscita a internet vengano instradate tramite la tua rete VPC. Questa modifica ti consente inoltre di applicare eventuali criteri necessari al traffico in uscita da Vertex AI.

Puoi eseguire una query sullo stato di Controlli di servizio VPC per i peering eseguendo il seguente comando:

gcloud services vpc-peerings get-vpc-service-controls \
  --network YOUR_NETWORK

Verrà restituito enabled: true se la configurazione è attivata e un elenco vuoto ({}) se è disattivata.

Utilizzo dei Controlli di servizio VPC

Se per il carico di lavoro viene specificata una rete e VPC Service Controls è abilitato, il carico di lavoro viene eseguito in una rete producer in peering con il progetto consumer ed è soggetto agli stessi criteri della rete consumer.

Se questi criteri bloccano il traffico in uscita, il carico di lavoro non potrà accedere a internet. In questo caso, devi seguire i passaggi descritti nella sezione precedente per forzare il traffico in uscita dal carico di lavoro a passare attraverso un'istanza NAT nella rete VPC.

Configura la connettività da Vertex AI utilizzando i proxy

Un altro pattern per controllare l'IP in uscita da Vertex AI è forzare le connessioni in uscita dai carichi di lavoro a passare attraverso un proxy web che controlli. Ciò consente anche l'ispezione delle connessioni in uscita per verificare la conformità.

Tuttavia, l'utilizzo di un proxy di terze parti costringe l'utente a gestire il certificato del proxy per i reclami relativi all'autenticazione. Inoltre, questi proxy potrebbero non proporre un elenco di suite di crittografia che si intersecano con ciò che si aspettano gli SDK e le API Vertex AI.

Google Cloud ora offre un Secure Web Proxy per semplificare questo pattern. Ora puoi seguire la guida rapida Eseguire il deployment di un'istanza di Secure Web Proxy e adattare i tuoi carichi di lavoro per utilizzarla per le connessioni in uscita. 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 installare i pacchetti da internet, questo tentativo non andrà a buon fine e potresti visualizzare un errore simile al 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 con KFP già installato.

Puoi aggiungere KFP a qualsiasi immagine di base e spingerla nel tuo repository.

Il seguente esempio di Dockerfile aggiunge 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")

Una volta eseguito il componente della pipeline, il codice può installare liberamente altri pacchetti tramite 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 API

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