Questa guida descrive come configurare Vertex AI in modo che utilizzi 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 pubblicare previsioni online, puoi configurare Vertex AI in modo che utilizzi un account di servizio personalizzato nel container che fornisce previsioni, che si tratti di un container predefinito o di un container personalizzato.
Quando utilizzare un account di servizio personalizzato
Quando viene eseguito Vertex AI, in genere agisce 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 più ampio ad altri servizi Google Cloud in determinati contesti, puoi aggiungere ruoli specifici agli agenti di servizio Vertex AI.
Tuttavia, personalizzare le autorizzazioni degli agenti di servizio potrebbe non offrire il controllo granulare degli accessi che ti interessa. Di seguito sono riportati alcuni casi d'uso comuni:
- Autorizzazione inferiore ai job e ai modelli di Vertex AI. L'agente di servizio Vertex AI predefinito ha accesso a BigQuery e Cloud Storage.
- Autorizzazione di job diversi a risorse diverse. Potresti voler consentire a molti utenti di avviare i job in un singolo progetto, ma concedere l'accesso ai job di ogni utente solo a una determinata tabella BigQuery o bucket di Cloud Storage.
Ad esempio, potresti voler personalizzare individualmente ogni job di addestramento personalizzato eseguito per accedere a risorse Google Cloud esterne al 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 di un container di previsione con addestramento personalizzato di Model
, devi utilizzare un account di servizio personalizzato.
Accesso predefinito
Questa sezione descrive l'accesso predefinito ai 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 specifica risorsa
CustomJob
, HyperparameterTuningJob
, TrainingPipeline
o DeployedModel
.
Container di addestramento
Quando crei un elemento CustomJob
, HyperparameterTuningJob
o
TrainingPipeline
personalizzato, il container
di addestramento viene eseguito utilizzando per impostazione predefinita
il tuo agente di servizio codice personalizzato Vertex AI del progetto Google Cloud.
Scopri di più sull'agente di servizio Custom Code Vertex AI, incluso come concedergli l'accesso a risorse Google Cloud aggiuntive.
Container di previsione
Quando esegui il deployment di un elemento Model
con addestramento personalizzato su 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 dal container di previsione per impostazione predefinita è autorizzato a leggere gli artefatti del modello che Vertex AI rende disponibili presso 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 dell'account di servizio.
Configura un account di servizio personalizzato
Le sezioni seguenti descrivono come impostare un account di servizio personalizzato da utilizzare con Vertex AI e come configurare un account CustomJob
, HyperparameterTuningJob
, TrainingPipeline
o DeployedModel
per utilizzare l'account di servizio.
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 deve trovarsi nello stesso progetto delle risorse Vertex AI.
Concedi i nuovi ruoli IAM per l'account di servizio che forniscono l'accesso ai servizi e alle risorse Google Cloud che vuoi far utilizzare a Vertex AI durante l'addestramento o la previsione personalizzati.
Nel progetto in cui utilizzi Vertex AI, trova l'indirizzo email del progetto Vertex AI Service Agent. Questo indirizzo email ha il seguente formato:
service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
PROJECT_NUMBER è sostituito dal numero di progetto del progetto Google Cloud.
Puoi trovare l'account di servizio nella pagina IAM di Google Cloud Console:
Se prevedi di utilizzare l'account di servizio personalizzato solo per l'addestramento, salta questo passaggio. Se prevedi di utilizzare l'account di servizio personalizzato per un container di previsione, concedi un ruolo aggiuntivo:
Nel progetto in cui utilizzi Vertex AI, concedi al ruolo Agente di account di servizio Vertex AI come ruolo di Amministratore account di servizio (
roles/iam.serviceAccountAdmin
) per il tuo nuovo account di servizio personalizzato. Per farlo, utilizza l'interfaccia a riga di comando gcloud per eseguire il comando seguente:gcloud iam service-accounts add-iam-policy-binding \ --role=roles/iam.serviceAccountAdmin \ --member=serviceAccount:AI_PLATFORM_SERVICE_AGENT \ CUSTOM_SERVICE_ACCOUNT
In questo comando, sostituisci i seguenti segnaposto:
AI_PLATFORM_SERVICE_AGENT: l'indirizzo email del tuo agente di servizio Vertex AI del progetto, che hai trovato in un passaggio precedente di questa sezione.
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 è chiamato collegamentodell'account di servizio alla risorsa. Le seguenti sezioni descrivono come collegare l'account di servizio creato nella sezione precedente a diverse risorse Vertex AI.
Collegamento di un account di servizio a una risorsa di addestramento personalizzato
Per configurare Vertex AI in modo che utilizzi il tuo nuovo account di servizio
durante l'addestramento personalizzato, specifica l'indirizzo email dell'account di servizio nel campo serviceAccount
di un messaggio CustomJobSpec
quando inizi l'addestramento personalizzato. A seconda del tipo di risorsa di addestramento personalizzato 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 elemento
HyperparameterTuningJob
.Se stai creando un
TrainingPipeline
personalizzato senza l'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 per la pubblicazione di previsioni online
Per configurare un contenitore di previsione con addestramento Model
personalizzato per utilizzare il nuovo
account di servizio, specifica l'indirizzo email dell'account di servizio quando
esegui il deployment di Model
in un Endpoint
:
Console
Segui il deployment di un modello utilizzando Cloud Console. Quando specifichi le impostazioni del modello, seleziona l'account di servizio nell'elenco a discesa Account di servizio.
gcloud
Segui 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.
Ad esempio:
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
Sostituisci CUSTOM_SERVICE_ACCOUNT con l'indirizzo email dell'account di servizio.
API
Segui il deployment di un modello utilizzando l'API Vertex AI. Quando invii la
projects.locations.endpoints.deployModel
richiesta, imposta il
deployedModel.serviceAccount
campo
sull'indirizzo email dell'account di servizio.
Accedi 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 potrà accedere a qualsiasi servizio e risorsa di Google Cloud a cui l'account di servizio ha accesso.
Per accedere ai servizi Google Cloud, scrivi il tuo codice di addestramento o il codice di previsione per utilizzare le credenziali predefinite dell'applicazione (ADC) e specifica esplicitamente l'ID progetto o il numero di progetto della risorsa a cui vuoi accedere. Scopri di più sulla scrittura del codice per accedere ad altri servizi Google Cloud.
Passaggi successivi
- Scopri di più sul controllo dell'accesso per Vertex AI.
- Scopri le autorizzazioni IAM e le operazioni che supportano.