Questa guida descrive come configurare Vertex AI per utilizzare un account di servizio personalizzato nei seguenti scenari:
Quando esegui l'addestramento personalizzato, puoi configurare Vertex AI per utilizzare un account di servizio personalizzato nel container di addestramento, che si tratti di un container predefinito o di un container personalizzato.
Quando esegui il deployment di una risorsa
Model
con addestramento personalizzato in una risorsaEndpoint
per fornire previsioni online, puoi configurare Vertex AI in modo che utilizzi un account di servizio personalizzato nel container che fornisce le previsioni, che si tratti di un container predefinito o di un container personalizzato.Quando crei un cluster Ray on Vertex AI, puoi impostare un account di servizio personalizzato per tutti i nodi del cluster.
Quando utilizzare un account di servizio personalizzato
Durante l'esecuzione, Vertex AI agisce in genere con le autorizzazioni di uno dei vari account di servizio che Google crea e gestisce per il tuo progetto Google Cloud. Per concedere a Vertex AI un accesso maggiore 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 desiderato. Alcuni casi d'uso comuni includono:
- Concedere meno autorizzazioni per job e modelli Vertex AI. L'agente di servizio predefinito di Vertex AI 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 singolo progetto, ma concedere ai job di ogni utente l'accesso solo a una determinata tabella BigQuery o bucket Cloud Storage.
Ad esempio, potresti voler personalizzare singolarmente 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 container che fornisce previsioni da un Model
con addestramento personalizzato.
Per personalizzare l'accesso ogni volta che esegui l'addestramento personalizzato o per personalizzare le autorizzazioni del container di previsione di Model
con addestramento 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
con addestramento personalizzato.
Quando utilizzi un account di servizio personalizzato, esegui l'override di questo accesso per una risorsa CustomJob
, HyperparameterTuningJob
, TrainingPipeline
o DeployedModel
specifica.
Container di addestramento
Quando crei un oggetto CustomJob
, HyperparameterTuningJob
o un TrainingPipeline
personalizzato, il container di addestramento viene eseguito utilizzando per impostazione predefinita l'agente di servizio del codice personalizzato Vertex AI del tuo progetto Google Cloud.
Scopri di più sull'agente di servizio del codice personalizzato Vertex AI e su come concedergli l'accesso a risorse Google Cloud aggiuntive.
Container di previsione
Quando esegui il deployment di un Model
con addestramento personalizzato in un Endpoint
, il container 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 container di previsione dispone dell'autorizzazione per leggere gli artefatti del modello che Vertex AI rende disponibili a un URI archiviato nella variabile di ambiente AIP_STORAGE_URI
. Non fare affidamento
sull'account di servizio per avere altre autorizzazioni. Non puoi personalizzare le autorizzazioni
dell'account di servizio.
Configura un account di servizio personalizzato
Le sezioni seguenti descrivono come configurare un account di servizio personalizzato da utilizzare
con Vertex AI e come configurare CustomJob
,
HyperparameterTuningJob
, TrainingPipeline
o DeployedModel
per utilizzare
l'account di servizio. Tieni presente che non puoi configurare un account di servizio personalizzato per eseguire il pull di immagini da Artifact Registry. Vertex AI usa l'account di servizio predefinito
per eseguire il pull delle immagini.
Configura 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.
Concedi i nuovi ruoli IAM dell'account di servizio che forniscono l'accesso ai servizi e alle risorse Google Cloud che Vertex AI deve poter utilizzare durante l'addestramento o la previsione personalizzati.
Facoltativo: se l'account di servizio gestito dall'utente si trova in un progetto diverso dai job di addestramento, configura l'account di servizio gestito dall'utente in modo da poterlo collegare ai job di addestramento.
(Facoltativo) Se prevedi di utilizzare anche l'account di servizio gestito dall'utente per le previsioni, devi concedere il ruolo Amministratore account di servizio (
roles/iam.serviceAccountAdmin
) all'agente di servizio Vertex AI del progetto in cui stai utilizzando 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 tuo 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
Il processo di configurazione di Vertex AI per l'utilizzo di un account di servizio specifico per una risorsa si chiama collegamento dell'account di servizio alla risorsa. Le seguenti sezioni descrivono come collegare l'account di servizio che hai creato nella sezione precedente a diverse risorse Vertex AI.
Collega un account di servizio a una risorsa di addestramento personalizzato
Per configurare Vertex AI in modo da utilizzare 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 personalizzato che stai creando, il posizionamento di questo campo nella tua richiesta API è diverso:
Se crei un
CustomJob
, specifica l'indirizzo email dell'account di servizio inCustomJob.jobSpec.serviceAccount
.Scopri di più sulla creazione di un
CustomJob
.Se crei 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 l'ottimizzazione degli iperparametri, specifica l'indirizzo email dell'account di servizio inTrainingPipeline.trainingTaskInputs.trialJobSpec.serviceAccount
.
Collega un account di servizio a un container che fornisce previsioni online
Per configurare un container di previsione di Model
con addestramento personalizzato in modo che utilizzi il tuo nuovo
account di servizio, specifica l'indirizzo email dell'account di servizio quando esegui il deployment di Model
in un Endpoint
:
Console
Consulta Deployment di un modello utilizzando la console Google Cloud. Quando specifichi le impostazioni del modello, seleziona l'account di servizio nell'elenco a discesa Account di servizio.
gcloud
Consulta Eseguire il deployment di un modello utilizzando
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 qualsiasi dato di comando riportato di seguito, effettua le seguenti sostituzioni:
- ENDPOINT_ID: l'ID dell'endpoint.
- LOCATION_ID: la regione in cui stai utilizzando Vertex AI.
- MODEL_ID: l'ID del modello di cui eseguire il deployment.
-
DEPLOYED_MODEL_NAME: un nome per
DeployedModel
. Puoi utilizzare anche il nome visualizzato diModel
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 macchina. - MIN_REPLICA_COUNT: 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 inferiore a questo numero di nodi.
- MAX_REPLICA_COUNT: il numero massimo di nodi per questo deployment. Il conteggio dei nodi può essere aumentato o diminuito in base al carico della previsione fino a questo numero di nodi, ma mai inferiore al numero minimo di nodi.
- CUSTOM_SERVICE_ACCOUNT: l'indirizzo email dell'account di 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
Consulta Eseguire il deployment di un modello utilizzando
l'API Vertex AI. Quando invii la richiesta projects.locations.endpoints.deployModel
, imposta il campo deployedModel.serviceAccount
sull'indirizzo email dell'account di servizio.
Accedi ai servizi Google Cloud nel tuo codice
Se configuri Vertex AI per utilizzare un account di servizio personalizzato seguendo le istruzioni riportate nelle sezioni precedenti, il container di addestramento o il container di previsione potrà accedere a qualsiasi servizio e risorsa di 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 elaborazione delle previsioni per utilizzare le credenziali predefinite dell'applicazione (ADC) e specifica esplicitamente l'ID 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 di più sulle autorizzazioni IAM specifiche e sulle operazioni che supportano.