Utilizzo di un account di servizio personalizzato

Questa guida descrive come configurare Vertex AI per utilizzare un servizio personalizzato nei seguenti scenari:

Quando utilizzare un account di servizio personalizzato

Quando viene eseguito, Vertex AI agisce in genere con le autorizzazioni di un di diversi account di servizio creati da Google e gestisce per il tuo progetto Google Cloud. A concedere a Vertex AI un maggiore accesso ad altri servizi Google Cloud in determinati contesti, puoi aggiungere ruoli specifici Servizio Vertex AI agenti.

Tuttavia, la personalizzazione delle autorizzazioni degli agenti di servizio potrebbe non fornire il il controllo dell'accesso più granulare che desideri. 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 singolo progetto, ma concedere a ogni dei job dell'utente solo a una determinata tabella BigQuery o nel bucket Cloud Storage.

Ad esempio, potresti voler personalizzare individualmente ogni job di addestramento personalizzato che esegui per avere accesso a diverse risorse Google Cloud esterne al tuo progetto.

Inoltre, la personalizzazione delle autorizzazioni degli agenti di servizio non cambia autorizzazioni disponibili per un container che fornisce previsioni con addestramento personalizzato Model.

Per personalizzare l'accesso ogni volta che esegui l'addestramento personalizzato o per personalizzare delle autorizzazioni del container di previsione di un Model con addestramento personalizzato, devi usare un account di servizio personalizzato.

Accesso predefinito

Questa sezione descrive l'accesso predefinito disponibile per l'addestramento personalizzato e i container di previsione delle risorse Model con addestramento 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 TrainingPipeline, la formazione del container viene eseguito Agente di servizio codice personalizzato Vertex AI del progetto Google Cloud per impostazione predefinita.

Scopri di più sulle Agente di servizio del codice personalizzato Vertex AI, che include istruzioni su come e gli concediamo 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 container di previsione dispone dell'autorizzazione per leggere gli artefatti del modello reso disponibile da Vertex AI in un URI archiviato Ambiente AIP_STORAGE_URI variabile. 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 configurare un account di servizio personalizzato da utilizzare con Vertex AI e su 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 le immagini da Artifact Registry. Vertex AI utilizza l'account di servizio predefinito eseguire il pull delle immagini.

Configurare un account di servizio personalizzato

Per configurare un account di servizio personalizzato:

  1. Creare un servizio gestito dall'utente . La l'account di servizio gestito dall'utente può trovarsi nello stesso progetto del tuo di Vertex AI o in un progetto diverso.

  2. Concedi IAM al nuovo account di servizio ruoli che forniscono accesso i servizi e le risorse Google Cloud che vuoi Vertex AI per l'addestramento personalizzato la previsione.

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

  4. 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 del Agente di servizio Vertex AI, 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.

      Vai a IAM

    • CUSTOM_SERVICE_ACCOUNT: l'indirizzo email del nuovo e un 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 servizio specifico per una risorsa è chiamato collegamento dell'account di servizio delle risorse. La 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 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 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 in CustomJob.jobSpec.serviceAccount.

    Scopri di più sulla creazione di un CustomJob.

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

  • Se stai creando un TrainingPipeline personalizzato con ottimizzazione degli iperparametri, specifica l'indirizzo email dell'account di servizio in TrainingPipeline.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 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 Deployment di un modello utilizzando console Google Cloud. Quando specifichi le impostazioni del modello, seleziona l'account di servizio nell'elenco a discesa Account di servizio.

gcloud

Segui Deployment di un modello utilizzando l'API Vertex AI. Quando esegui il comando gcloud ai endpoints deploy-model, usa il flag --service-account per specifica 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 di cui eseguire il deployment.
  • DEPLOYED_MODEL_NAME: un nome per DeployedModel. Puoi utilizzare il nome visualizzato Model anche per DeployedModel.
  • MACHINE_TYPE: facoltativo. Le risorse macchina utilizzate per ogni nodo e deployment continuo. 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 conteggio dei nodi può essere aumentato o diminuito in base al carico della previsione. fino a questo numero di nodi e mai meno del numero minimo di nodi.
  • CUSTOM_SERVICE_ACCOUNT: l'indirizzo email dell'account di servizio . Ad esempio: SA_NAME@PROJECT_ID.iam.gserviceaccount.com.

Esegui la gcloud ai endpoint 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 Deployment di un modello utilizzando l'API Vertex AI. Quando invii projects.locations.endpoints.deployModel richiesta, imposta deployedModel.serviceAccount all'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 tuo formato codice o la pubblicazione per utilizzare l'impostazione predefinita dell'applicazione di credenziali (ADC) e dati espliciti specifica 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 servizi Google Cloud.

Passaggi successivi