Utilizzo di un account di servizio personalizzato

Questa guida descrive come configurare Vertex AI in modo che utilizzi un account di servizio personalizzato nei seguenti scenari:

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:

  1. Crea un account di servizio gestito dall'utente. L'account di servizio gestito dall'utente deve trovarsi nello stesso progetto delle risorse Vertex AI.

  2. 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.

  3. 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:

    Vai alla pagina IAM

  4. 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 in CustomJob.jobSpec.serviceAccount.

    Scopri di più sulla creazione di un CustomJob.

  • Se stai creando un HyperparameterTuningJob, specifica l'indirizzo email dell'account di servizio in HyperparameterTuningJob.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 in TrainingPipeline.trainingTaskInputs.serviceAccount.

  • Se stai creando un TrainingPipeline personalizzato con l'ottimizzazione degli iperparametri, specifica l'indirizzo email dell'account di servizio in TrainingPipeline.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