Architettura di riferimento
Nell'architettura di riferimento seguente, viene implementato un VPC condiviso con un modello Gemini nel progetto di servizio,ph-fm-svc-project (progetto di servizio del modello di base) con gli attributi dei criteri di servizio che consentono l'accesso privato all'API Vertex AI da AWS:
- Un singolo perimetro dei Controlli di servizio VPC
- Identità utente definita dal progetto

(Facoltativo) Crea il livello di accesso
Se gli utenti finali richiedono l'accesso a Vertex AI tramite la console Google Cloud , segui le istruzioni riportate in questa sezione per creare un livello di accesso Controlli di servizio VPC. Tuttavia, se l'accesso programmatico alle API proviene da origini private (ad esempio on-premise con l'accesso privato Google o Cloud Workstations), il livello di accesso non è necessario.
In questa architettura di riferimento utilizziamo un intervallo CIDR aziendale, corp-public-block,
per consentire al traffico dei dipendenti aziendali di accedere alla console Google Cloud .
Gestore contesto accesso consente agli amministratori dell'organizzazione di definire un controllo dell'accesso granulare e basato su attributi per progetti e risorse inGoogle Cloud. Google Cloud
I livelli di accesso descrivono i requisiti che le richieste devono soddisfare per essere accettate. Alcuni esempi includono:
- Tipo di dispositivo e sistema operativo (richiede licenza Chrome Enterprise Premium)
- Indirizzo IP
- Identità utente
Se è la prima volta che l'organizzazione utilizza Gestore contesto accesso, gli amministratori devono definire una policy di accesso, ovvero un contenitore per i livelli di accesso e i perimetri di servizio.
Nel selettore di progetti nella parte superiore della console Google Cloud , fai clic sulla scheda Tutti e poi seleziona la tua organizzazione.
Crea un livello di accesso di base seguendo le istruzioni nella pagina Crea un livello di accesso di base. Specifica le seguenti opzioni:
- Nella sezione Crea condizioni in, scegli Modalità di base.
- Nel campo Titolo livello di accesso, inserisci
corp-public-block. - Nella sezione Condizioni, per l'opzione Se la condizione è soddisfatta, restituisci, scegli TRUE.
- In Subnet IP, scegli IP pubblico.
- Per l'intervallo di indirizzi IP, specifica l'intervallo CIDR esterno che richiede l'accesso al perimetro dei Controlli di servizio VPC.
Crea il perimetro di servizio dei Controlli di servizio VPC
Quando crei un perimetro di servizio, consenti l'accesso ai servizi protetti dall'esterno del perimetro specificando i progetti protetti. Quando utilizzi Controlli di servizio VPC con il VPC condiviso, crei un perimetro di grandi dimensioni che include sia il progetto host sia i progetti di servizio. Se selezioni solo il progetto di servizio nel perimetro, gli endpoint di rete appartenenti ai progetti di servizio sembrano essere al di fuori del perimetro, perché le subnet sono associate solo al progetto host.
Seleziona il tipo di configurazione per il nuovo perimetro
In questa sezione crei un perimetro di servizio dei Controlli di servizio VPC in modalità dry run. In modalità dry run, il perimetro registra le violazioni come se i perimetri fossero applicati in modo forzato, ma non impedisce l'accesso ai servizi limitati. L'utilizzo della modalità di prova prima di passare alla modalità di applicazione è consigliato come best practice.
Nel menu di navigazione della console Google Cloud , fai clic su Sicurezza, quindi su Controlli di servizio VPC.
Nella pagina Controlli di servizio VPC, fai clic su Modalità dry run.
Fai clic su Nuovo perimetro.
Nella scheda Nuovo perimetro di servizio VPC, nella casella Nome perimetro, digita un nome per il perimetro. In caso contrario, accetta i valori predefiniti.
Il nome di un perimetro può avere una lunghezza massima di 50 caratteri, deve iniziare con una lettera e può contenere solo lettere latine ASCII (a-z, A-Z), numeri (0-9) o trattini bassi (_). Il nome del perimetro è sensibile alle maiuscole e deve essere univoco all'interno di una policy di accesso.
Seleziona le risorse da proteggere
Fai clic su Risorse da proteggere.
Per aggiungere progetti o reti VPC che vuoi proteggere all'interno del perimetro, segui questi passaggi:
Fai clic su Aggiungi risorse.
Per aggiungere progetti al perimetro, nel riquadro Aggiungi risorse, fai clic su Aggiungi progetto.
Per selezionare un progetto, nella finestra di dialogo Aggiungi progetti, seleziona la casella di controllo del progetto. In questa architettura di riferimento, selezioniamo i seguenti progetti:
infra-host-projectaiml-host-projectph-fm-svc-project
Fai clic su Aggiungi risorse selezionate. I progetti aggiunti vengono visualizzati nella sezione Progetti.
Seleziona i servizi limitati
In questa architettura di riferimento, l'ambito delle API con restrizioni è limitato, consentendo solo le API necessarie per Gemini. Tuttavia, come best practice, ti consigliamo di limitare tutti i servizi quando crei un perimetro per ridurre il rischio di esfiltrazione di dati dai serviziGoogle Cloud .
Per selezionare i servizi da proteggere all'interno del perimetro:
Fai clic su Servizi limitati.
Nel riquadro Servizi limitati, fai clic su Aggiungi servizi.
Nella finestra di dialogo Specifica i servizi da limitare, seleziona API Vertex AI.
Fai clic su Aggiungi l'API Vertex AI.
(Facoltativo) Seleziona i servizi accessibili da VPC
L'impostazione Servizi accessibili da VPC limita l'insieme di servizi accessibili dagli endpoint di rete all'interno del perimetro di servizio. In questa architettura di riferimento, manteniamo l'impostazione predefinita di Tutti i servizi.
(Facoltativo) Seleziona il livello di accesso
Se hai creato un livello di accesso CIDR aziendale in una sezione precedente, segui questi passaggi per consentire l'accesso alle risorse protette dall'esterno del perimetro:
Fai clic su Livelli di accesso.
Fai clic sulla casella Scegli livello di accesso.
Puoi anche aggiungere livelli di accesso dopo la creazione di un perimetro.
Seleziona la casella di controllo corrispondente al livello di accesso. (In questa architettura di riferimento, questo è
corp-public-block.)
Policy in entrata e in uscita
In questa architettura di riferimento, non è necessario specificare alcuna impostazione nei riquadri Policy in entrata o Policy in uscita.
Crea il perimetro
Una volta completati i passaggi di configurazione precedenti, crea il perimetro facendo clic su Crea perimetro.
Configura la connettività di rete tra AWS e le API di Google
Configura Private Service Connect per le API di Google
Private Service Connect per accedere alle API di Google è un'alternativa all'utilizzo dell'accesso privato Google o dei nomi di dominio pubblici per le API di Google. In questo caso, il produttore è Google.
L'utilizzo di Private Service Connect ti consente di:
- Crea uno o più indirizzi IP interni per accedere alle API di Google per diversi casi d'uso.
- Dirigere il traffico on-premise direttamente a indirizzi IP e regioni specifici quando si accede alle API di Google.
- Crea un nome DNS dell'endpoint personalizzato utilizzato per risolvere le API di Google.
Nell'architettura di riferimento, un endpoint API di Google Private Service Connect denominato restricted, con indirizzo IP 10.10.10.3,, viene implementato con il VPC-SC di destinazione, utilizzato come IP virtuale (VIP) per accedere ai servizi limitati configurati nel perimetro VPC-SC. Il targeting di servizi senza limitazioni con il
VIP non è supportato. Per saperne di più, consulta
Informazioni sull'accesso all'API Vertex AI | Google Cloud.
Configura la rete VPC AWS
La connettività di rete tra Amazon Web Services (AWS) e Google Cloud viene stabilita utilizzando tunnel VPN ad alta disponibilità. Questa connessione sicura facilita la comunicazione privata tra i due ambienti cloud. Tuttavia, per consentire il routing e la comunicazione senza problemi tra le risorse in AWS e Google Cloud, viene utilizzato il protocollo Border Gateway Protocol (BGP).
Nell'ambiente Google Cloud è richiesto un annuncio di route personalizzato. Questa route personalizzata annuncia in modo specifico l'indirizzo IP dell'API Google di Private Service Connect alla rete AWS. Se pubblicizza questo indirizzo IP, AWS può stabilire un percorso diretto all'API Google, bypassando internet pubblico e migliorando il rendimento.
Nell'architettura di riferimento, viene eseguito il deployment di un'istanza Sagemaker con un'associazione al VPC AWS in cui viene stabilita la VPN con Google Cloud. Il protocollo BGP (Border Gateway Protocol) viene utilizzato per pubblicizzare le route tramite VPN ad alta disponibilità tra AWS e la rete Google Cloud . Di conseguenza, Google Cloud e AWS possono instradare il traffico bidirezionale tramite VPN. Per ulteriori informazioni sulla configurazione delle connessioni VPN ad alta disponibilità, consulta Creare connessioni VPN ad alta disponibilità tra Google Cloud e AWS.
Configurare gli aggiornamenti di Route 53
Crea una zona ospitata privata denominata p.googleapis.com in AWS Route 53 e aggiungi
il nome di dominio completo
REGION-aiplatform-restricted.p.googleapis.com con
l'indirizzo IP 10.10.10.3 (IP Googleapis Private Service Connect)
come record A DNS.
Quando l'SDK Jupyter Notebook esegue una ricerca DNS per l'API Vertex AI per raggiungere Gemini, Route 53 restituisce l'indirizzo IP delle API Google di Private Service Connect. Jupyter Notebook
utilizza l'indirizzo IP ottenuto da Route 53 per stabilire una connessione all'endpoint
API di Google Private Service Connect instradato tramite
VPN ad alta disponibilità in Google Cloud.
Configurare gli aggiornamenti di SageMaker
Questa architettura di riferimento utilizza istanze di blocco note Amazon SageMaker per accedere all'API Vertex AI. Tuttavia, puoi ottenere la stessa configurazione con altri servizi di calcolo che supportano VPC, come Amazon EC2 o AWS Lambda.
Per autenticare le richieste, puoi utilizzare una chiave del service account o la federazione delle identità per i workload. Google Cloud Per informazioni sulla configurazione della federazione delle identità per i workload, consulta On-premise o un altro provider cloud.
L'istanza di Jupyter Notebook richiama una chiamata API al modello Gemini ospitato in
Google Cloud eseguendo una risoluzione DNS al nome di dominio completo personalizzato delle API di Google Private Service Connect
REGION-aiplatform-restricted.p.googleapis.com ignorando il
nome di dominio completo predefinito
(REGION-aiplatform.googleapis.com).
L'API Vertex AI può essere chiamata utilizzando Rest, gRPC o SDK. Per utilizzare il nome di dominio completo del cliente Private Service Connect, aggiorna API_ENDPOINT in Jupyter Notebook con quanto segue:
Istruzioni per l'utilizzo dell'SDK Vertex AI per Python
Installa l'SDK:
pip install --upgrade google-genaiImporta le dipendenze:
from google.cloud import genai from google.genai.types import ( GenerateContentConfig, HarmBlockThreshold, HarmCategory, Part, SafetySetting )Inizializza le seguenti variabili di ambiente:
PROJECT_ID="ph-fm-svc-projects" # Google Cloud Project ID LOCATION_ID="us-central1" # Enter Vertex AI Gemini region such as us-central1 API_ENDPOINT="https://us-central1-aiplatform-restricted.p.googleapis.com" # PSC Endpoint MODEL_ID="gemini-2.0-flash-001" # Gemini Model IDInizializza l'SDK Vertex AI Python:
from google import genai client= genai.Client(vertexai=True, project=PROJECT_ID, location=LOCATION_ID, http_options={'base_url': API_ENDPOINT})Invia la seguente richiesta all'API Gemini di Vertex AI:
prompt = "which weighs more, 1kg feathers or 1kg stones" safety_settings = [ SafetySetting( category=HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT, threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE, ), SafetySetting( category=HarmCategory.HARM_CATEGORY_HARASSMENT, threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE, ), SafetySetting( category=HarmCategory.HARM_CATEGORY_HATE_SPEECH, threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE, ), SafetySetting( category=HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT, threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE, ), ] response = client.models.generate_content( model=MODEL_ID, contents=prompt, config=GenerateContentConfig( safety_settings=safety_settings, ), ) # Response will be `None` if it is blocked. print(response.text)A questo punto, puoi eseguire una chiamata API a Gemini da Jupyter Notebook per accedere a Gemini ospitato in Google Cloud. Se la chiamata ha esito positivo, l'output è simile al seguente:
They weigh the same. Both weigh 1 kilogram.
Istruzioni per l'utilizzo dell'API REST Vertex AI
In questa sezione, configuri alcune variabili importanti che vengono utilizzate durante l'intero processo. Queste variabili memorizzano informazioni sul tuo progetto, sulla posizione delle tue risorse, sul modello Gemini specifico e sull'endpoint PSC che vuoi utilizzare. Apri una finestra del terminale all'interno di un blocco note JupyterLab per eseguire i seguenti comandi:
Apri una finestra del terminale all'interno di un notebook Jupyter.
Inizializza le seguenti variabili di ambiente:
export PROJECT_ID="ph-fm-svc-projects" export LOCATION_ID="us-central1" export API_ENDPOINT="us-central1-aiplatform-restricted.p.googleapis.com" export MODEL_ID="gemini-1.5-flash-002"Utilizza un editor di testo come
vimonanoper creare un nuovo file denominatorequest.jsonche contenga la seguente richiesta formattata per l'API Vertex AI Gemini:{ "contents": [ { "role": "user", "parts": [ { "text": "which weighs more, 1kg feathers or 1kg stones" } ] } ], "generationConfig": { "temperature": 1, "maxOutputTokens": 8192, "topP": 0.95, "seed": 0 }, "safetySettings": [ { "category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "OFF" }, { "category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "OFF" }, { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "OFF" }, { "category": "HARM_CATEGORY_HARASSMENT", "threshold": "OFF" } ] }Invia la seguente richiesta curl all'API Gemini di Vertex AI:
curl -v \ -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://$API_ENDPOINT/v1/projects/$PROJECT_ID/locations/$LOCATION_ID/publishers/google/models/$MODEL_ID:streamGenerateContent" -d '@request.json'
Convalida il perimetro in modalità dry run
In questa architettura di riferimento, il perimetro di servizio è configurato in modalità dry run, il che ti consente di testare l'effetto della policy di accesso senza applicazione forzata. Ciò significa che puoi vedere l'impatto delle tue norme sul tuo ambiente se fossero attive, ma senza il rischio di interrompere il traffico legittimo.
Dopo aver convalidato il perimetro in modalità dry run, passa alla modalità di applicazione forzata.
Passaggi successivi
- Scopri come utilizzare i nomi DNS
p.googleapis.com. - Per scoprire come convalidare il perimetro in modalità dry run, guarda il video sul logging dry run dei Controlli di servizio VPC.
- Scopri come utilizzare l'API REST di Vertex AI.
- Scopri di più sull'utilizzo dell'SDK Vertex AI per Python.