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 in modo che utilizzi 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 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 generalmente con le autorizzazioni di uno dei diversi service account che Google crea e gestisce per il tuo progetto Google Cloud . Per concedere a Vertex AI un maggiore accesso 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 desideri. Alcuni casi d'uso comuni includono:
- Consentire meno autorizzazioni per i job e i modelli Vertex AI. L'agente del servizio Vertex AI predefinito ha accesso a BigQuery e Cloud Storage.
- Consentire a lavori diversi di accedere a risorse diverse. Potresti voler consentire a molti utenti di avviare job in un unico progetto, ma concedere l'accesso ai job di ogni utente solo a una determinata tabella BigQuery o a un bucket Cloud Storage.
Ad esempio, potresti voler personalizzare individualmente ogni job di addestramento personalizzato che esegui per accedere a diverse risorseGoogle 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 previsioni da un
Model
addestrato personalizzato.
Per personalizzare l'accesso ogni volta che esegui l'addestramento personalizzato o per personalizzare le autorizzazioni di un container di previsione 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, esegui l'override di questo accesso per una risorsa
CustomJob
, HyperparameterTuningJob
, TrainingPipeline
o DeployedModel
specifica.
Container di addestramento
Quando crei un CustomJob
, un 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 progettoGoogle Cloud .
Scopri di più sull'agente di servizio del codice personalizzato Vertex AI, incluso 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 contenitore di previsione viene eseguito utilizzando un account di servizio gestito da Vertex AI. Questo
account di serviziot è diverso dagli agenti di servizio
Vertex AI.
Il 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 in un URI archiviato nella
variabile di ambiente AIP_STORAGE_URI
. Non fare affidamento
sull'account di servizio per disporre di altre autorizzazioni. Non puoi personalizzare le autorizzazioni del account di servizio.
Configura un account di servizio personalizzato
Le seguenti sezioni 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 di servizio. Tieni presente che non puoi configurare un account di servizio personalizzato per estrarre
immagini da Artifact Registry. Vertex AI utilizza il account di servizio predefinito per
estrarre le immagini.
Configurare un account di servizio personalizzato
Per configurare un account di servizio personalizzato:
Crea un service account 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 al nuovo account di servizio i ruoli IAM che forniscono l'accesso ai servizi e alle risorse Google Cloud che vuoi che Vertex AI possa utilizzare durante l'addestramento personalizzato o la previsione.
(Facoltativo): se il account di servizio gestito dall'utente si trova in un progetto diverso dai tuoi job di addestramento, devi concedere il ruolo Creatore token service account (roles/iam.serviceAccountTokenCreator) all'agente di servizio Vertex AI del progetto in cui utilizzi Vertex AI.
gcloud iam service-accounts add-iam-policy-binding \ --role=roles/iam.serviceAccountTokenCreator \ --member=serviceAccount:AI_PLATFORM_SERVICE_AGENT \ CUSTOM_SERVICE_ACCOUNT
(Facoltativo) Se prevedi di utilizzare il account di servizio gestito dall'utente anche per le previsioni, devi concedere il ruolo Amministratore service account (
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 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
La procedura di configurazione di Vertex AI per utilizzare un service account specifico per una risorsa è chiamata collegamento del account di servizio alla risorsa. Le sezioni seguenti descrivono come collegare il service account 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 che utilizzi il nuovo service account
durante l'addestramento personalizzato, specifica l'indirizzo email del 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 richiesta API varia:
Se stai creando un
CustomJob
, specifica l'indirizzo email del 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 l'ottimizzazione degli iperparametri, specifica l'indirizzo email del account di servizio inTrainingPipeline.trainingTaskInputs.trialJobSpec.serviceAccount
.
Collega un account di servizio a un container che fornisce previsioni online
Per configurare il contenitore di previsione di un Model
addestrato personalizzato in modo che utilizzi il tuo nuovo
service account, specifica l'indirizzo email delaccount di serviziot quando
deploy l'Model
in un Endpoint
:
Console
Segui le istruzioni riportate in Deployment di un modello utilizzando la Google Cloud console. Quando specifichi le impostazioni del modello, seleziona il account di servizio nell'elenco a discesa Service account.
gcloud
Segui le istruzioni riportate 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 tuoaccount di serviziot.
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
DeployedModel
. Puoi utilizzare il nome visualizzato diModel
anche perDeployedModel
. -
MACHINE_TYPE: (Facoltativo) Le risorse macchina utilizzate per ogni nodo di questo
deployment. L'impostazione predefinita è
n1-standard-2
. Scopri di più sui tipi di macchina. - MIN_REPLICA_COUNT: il numero minimo di nodi per questo deployment. Il conteggio di nodi può essere aumentato o diminuito in base al carico di inferenza, fino al numero massimo di nodi e mai al di sotto di questo numero di nodi.
- MAX_REPLICA_COUNT: il numero massimo di nodi per questo deployment. Il conteggio di nodi può essere aumentato o diminuito in base al carico di inferenza, fino a questo numero di nodi e mai al di sotto del numero minimo di nodi.
- CUSTOM_SERVICE_ACCOUNT: l'indirizzo email del 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
Segui le istruzioni riportate in Deployment di un modello mediante l'API Vertex AI. Quando invii la
projects.locations.endpoints.deployModel
richiesta, imposta il
campo deployedModel.serviceAccount
sull'indirizzo email del account di servizio.
Accedere ai servizi Google Cloud nel codice
Se configuri Vertex AI in modo che utilizzi un account di servizio personalizzato seguendo le istruzioni nelle sezioni precedenti, il container di addestramento o il container di previsione può accedere a qualsiasi servizio e risorsa a cui ha accesso il account di servizio account. Google Cloud
Per accedere ai servizi Google Cloud , scrivi il tuo codice di addestramento o il tuo codice di servizio di previsione per utilizzare le credenziali predefinite dell'applicazione (ADC) e specifica esplicitamente l'ID o il numero di progetto della risorsa a cui vuoi accedere. Scopri di più su come scrivere il codice per accedere ad altri Google Cloud servizi.
Limitazioni
Per l'inferenza batch, l'agente di servizio Vertex AI verrà comunque utilizzato per accedere a BigQuery e Cloud Storage anche quando viene utilizzato un account di servizio personalizzato.
Passaggi successivi
- Scopri di più sul controllo dell'accesso per Vertex AI.
- Scopri di più sulle autorizzazioni IAM specifiche e sulle operazioni che supportano.