Questa guida descrive come configurare Vertex AI per utilizzare un account servizio personalizzato nei seguenti scenari:
Quando esegui l'addestramento personalizzato, puoi configurare Vertex AI in modo da utilizzare un account di servizio personalizzato nel contenutore di addestramento, che si tratti di un contenitore predefinito o di un contenutore personalizzato.
Quando esegui il deployment di una risorsa
Model
con addestramento personalizzato in una risorsaEndpoint
per generare previsioni online, puoi configurare Vertex AI in modo da utilizzare un account di servizio personalizzato nel contenitore che genera le previsioni, che si tratti di un contenitore predefinito o di un contenitore personalizzato.Quando crei un cluster Ray su Vertex AI, puoi impostare un account di servizio personalizzato per tutti i nodi del cluster.
Quando utilizzare un account di servizio personalizzato
Quando viene eseguito, Vertex AI agisce in genere con le autorizzazioni di uno tra i diversi account di servizio creati e gestiti da Google per il tuo progetto Google Cloud. Per grant Vertex AI accesso avanzato ad altri servizi Google Cloud in determinati contesti, puoi aggiungere ruoli specifici agli agenti di servizio di Vertex AI.
Tuttavia, la personalizzazione delle autorizzazioni degli agenti di servizio potrebbe non fornire il controllo dell'accesso granulare che preferisci. Ecco alcuni casi d'uso comuni:
- Consentire meno autorizzazioni ai job e ai modelli Vertex AI. L'agente di servizio Vertex AI predefinito ha accesso a BigQuery e Cloud Storage.
- Consentire a diversi job di accedere a risorse diverse. Potresti voler consentire a molti utenti di avviare job in un unico progetto, ma concedere ai job di ciascun utente l'accesso solo a una determinata tabella BigQuery o a un determinato bucket Cloud Storage.
Ad esempio, potresti voler personalizzare individualmente ogni job di addestramento personalizzato che esegui per avere accesso a diverse risorse Google Cloud al di fuori del tuo progetto.
Inoltre, la personalizzazione delle autorizzazioni degli agenti di servizio non modifica le autorizzazioni disponibili per un contenitore che pubblica le previsioni di un Model
addestrato in base alle esigenze specifiche.
Per personalizzare l'accesso ogni volta che esegui l'addestramento personalizzato o per personalizzare le autorizzazioni del contenitore di previsione di un Model
addestrato in modo personalizzato, devi utilizzare un account di servizio personalizzato.
Accesso predefinito
Questa sezione descrive l'accesso predefinito disponibile per i container di addestramento personalizzato e i container di previsione delle risorse Model
addestrate in modo personalizzato.
Quando utilizzi un account di servizio personalizzato, sostituisci questo accesso per una risorsa CustomJob
, HyperparameterTuningJob
, TrainingPipeline
o DeployedModel
specifica.
Container di addestramento
Quando crei un CustomJob
, un HyperparameterTuningJob
o un personalizzato
TrainingPipeline
, il contenitore di addestramento viene eseguito utilizzando per impostazione predefinita l'agente di servizio del codice personalizzato Vertex AI del progetto Google Cloud.
Scopri di più sull'agente di servizio per il codice personalizzato Vertex AI, incluso come concedergli l'accesso ad altre risorse Google Cloud.
Container di previsione
Quando esegui il deployment di un Model
addestrato in modo personalizzato in un Endpoint
, il contenitore di previsione viene eseguito utilizzando un account di servizio gestito da Vertex AI. Questo account di servizio è diverso dagli agenti di servizio Vertex AI.
L'account di servizio utilizzato per impostazione predefinita dal contenitore di previsione ha l'autorizzazione
a leggere gli elementi del modello
che Vertex AI rende disponibili in un URI memorizzato nella
AIP_STORAGE_URI
variabile
di ambiente. Non fare affidamento sull'account di servizio per disporre di altre autorizzazioni. Non puoi personalizzare le autorizzazioni dell'account di servizio.
Configurare un account di servizio personalizzato
Le sezioni seguenti descrivono come configurare un account di servizio personalizzato da utilizzare con Vertex AI e come configurare un CustomJob
, HyperparameterTuningJob
, TrainingPipeline
o DeployedModel
per utilizzare l'account account di servizio. Tieni presente che non puoi configurare un account di servizio personalizzato per estrarre le immagini da Artifact Registry. Vertex AI utilizza l'account di servizio predefinito per recuperare le immagini.
Configurare un account di servizio personalizzato
Per configurare un account di servizio personalizzato:
Crea un account di servizio gestito dall'utente. L'account di servizio gestito dall'utente può trovarsi nello stesso progetto delle risorse Vertex AI o in un progetto diverso.
Concede al nuovo account di servizio i ruoli IAM che forniscono l'accesso alle risorse e ai servizi Google Cloud che vuoi che Vertex AI possa utilizzare durante l'addestramento personalizzato o la previsione.
Facoltativo: se l'account di servizio gestito dall'utente si trova in un progetto diverso rispetto ai job di addestramento, configuralo in modo da poterlo collegare ai job di addestramento.
Facoltativo: se prevedi di utilizzare anche l'account di servizio gestito dall'utente per le predizioni, devi concedere il ruolo Amministratore account di servizio (
roles/iam.serviceAccountAdmin
) all'agente di servizio Vertex AI del progetto in cui utilizzi Vertex AI:gcloud iam service-accounts add-iam-policy-binding \ --role=roles/iam.serviceAccountAdmin \ --member=serviceAccount:AI_PLATFORM_SERVICE_AGENT \ CUSTOM_SERVICE_ACCOUNT
Sostituisci quanto segue:
AI_PLATFORM_SERVICE_AGENT: l'indirizzo email dell'agente di servizio Vertex AI del progetto, che ha il seguente formato:
service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
Per trovare l'agente di servizio Vertex AI, vai alla pagina IAM nella console Google Cloud.
CUSTOM_SERVICE_ACCOUNT: l'indirizzo email del nuovo account di servizio gestito dall'utente che hai creato nel primo passaggio di questa sezione.
Specifica un account di servizio personalizzato per le risorse Vertex AI
La procedura di configurazione di Vertex AI per l'utilizzo di un account di servizio specifico per una risorsa è chiamata aggancio dell'account di servizio alla risorsa. Le sezioni seguenti descrivono come collegare l'account di servizio creato nella sezione precedente a diverse risorse Vertex AI.
Collegare un account di servizio a una risorsa di addestramento personalizzato
Per configurare Vertex AI in modo che utilizzi il nuovo account di servizio
durante l'addestramento personalizzato, specifica l'indirizzo email dell'account di servizio nel
campo serviceAccount
di un messaggio CustomJobSpec
quando avvii l'addestramento personalizzato. A seconda del tipo di risorsa di addestramento personalizzata che stai creando, il posizionamento di questo campo nella richiesta API è diverso:
Se stai creando un
CustomJob
, specifica l'indirizzo email dell'account di servizio inCustomJob.jobSpec.serviceAccount
.Scopri di più sulla creazione di un
CustomJob
.Se stai creando un
HyperparameterTuningJob
, specifica l'indirizzo email dell'account di servizio inHyperparameterTuningJob.trialJobSpec.serviceAccount
.Scopri di più sulla creazione di un
HyperparameterTuningJob
.Se stai creando un
TrainingPipeline
personalizzato senza ottimizzazione degli iperparametri, specifica l'indirizzo email dell'account di servizio inTrainingPipeline.trainingTaskInputs.serviceAccount
.Se stai creando un
TrainingPipeline
personalizzato con ottimizzazione degli iperparametri, specifica l'indirizzo email dell'account di servizio inTrainingPipeline.trainingTaskInputs.trialJobSpec.serviceAccount
.
Collega un account di servizio a un contenitore che fornisce previsioni online
Per configurare il contenitore di previsione di un Model
addestrato in modo personalizzato in modo che utilizzi il tuo nuovo account di servizio, specifica l'indirizzo email dell'account di servizio quando esegui il deployment del Model
in un Endpoint
:
Console
Segui la procedura descritta in Deployment di un modello mediante la console Google Cloud. Quando specifichi le impostazioni del modello, seleziona l'account di servizio nell'elenco a discesa Account di servizio.
gcloud
Segui la procedura descritta in Deployment di un modello mediante l'API Vertex AI. Quando esegui il comando gcloud
ai endpoints deploy-model
, utilizza il flag --service-account
per
specificare l'indirizzo email del tuo account di servizio.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
- ENDPOINT_ID: l'ID dell'endpoint.
- LOCATION_ID: la regione in cui utilizzi Vertex AI.
- MODEL_ID: l'ID del modello da implementare.
-
DEPLOYED_MODEL_NAME: un nome per il
DeployedModel
. Puoi utilizzare il nome visualizzato delModel
anche perDeployedModel
. -
MACHINE_TYPE: facoltativo. Le risorse della macchina utilizzate per ogni nodo di questo
deployment. L'impostazione predefinita è
n1-standard-2
. Scopri di più sui tipi di macchine. - MIN_REPLICA_COUNT: il numero minimo di nodi per questo deployment. Il numero di nodi può essere aumentato o diminuito in base al carico della previsione, fino al numero massimo di nodi e mai meno di questo numero.
- MAX_REPLICA_COUNT: il numero massimo di nodi per questo deployment. Il numero di nodi può essere aumentato o diminuito in base al carico della previsione, fino a questo numero di nodi e mai inferiore al numero minimo di nodi.
- CUSTOM_SERVICE_ACCOUNT: l'indirizzo email dell'account servizio. Ad esempio:
SA_NAME@PROJECT_ID.iam.gserviceaccount.com
.
Esegui il comando gcloud ai endpoints deploy-model:
Linux, macOS o Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID \ --region=LOCATION \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --machine-type=MACHINE_TYPE \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=100 \ --service-account=CUSTOM_SERVICE_ACCOUNT
Windows (PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID ` --region=LOCATION ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME ` --machine-type=MACHINE_TYPE ` --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=100 ` --service-account=CUSTOM_SERVICE_ACCOUNT
Windows (cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID ^ --region=LOCATION ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME ^ --machine-type=MACHINE_TYPE ^ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=100 ^ --service-account=CUSTOM_SERVICE_ACCOUNT
API
Segui la procedura descritta in Deployment di un modello mediante l'API Vertex AI. Quando invii la
projects.locations.endpoints.deployModel
richiesta, imposta il
deployedModel.serviceAccount
campo
sull'indirizzo email dell'account di servizio.
Accedere ai servizi Google Cloud nel codice
Se configuri Vertex AI per utilizzare un account di servizio personalizzato seguendo le istruzioni riportate nelle sezioni precedenti, il contenitore di addestramento o il contenitore di previsione può accedere a qualsiasi servizio e risorsa Google Cloud a cui ha accesso l'account di servizio.
Per accedere ai servizi Google Cloud, scrivi il codice di addestramento o il codice di generazione di previsioni in modo da utilizzare le credenziali predefinite per le applicazioni (ADC) e specifica esplicitamente l'ID progetto o il numero del progetto della risorsa a cui vuoi accedere. Scopri di più su come scrivere il codice per accedere ad altri servizi Google Cloud.
Passaggi successivi
- Scopri di più sul controllo dell'accesso per Vertex AI.
- Scopri autorizzazioni IAM specifiche e le operazioni supportate.