Utilizzo di un account di servizio personalizzato

Puoi configurare AI Platform Prediction in modo che utilizzi un account di servizio a tua scelta quando esegue codice personalizzato per fornire le previsioni. Nello specifico, puoi specificare un account di servizio personalizzato quando esegui una delle seguenti operazioni:

L'utilizzo di un account di servizio personalizzato ti consente di personalizzare le risorse Google Cloud a cui può accedere il tuo codice di pubblicazione personalizzato senza concedere autorizzazioni eccessivamente ampie all'account di servizio utilizzato per impostazione predefinita da AI Platform Prediction.

La guida si concentra sulle autorizzazioni delle risorse di AI Platform Prediction per accedere ad altre risorse Google Cloud. Per informazioni sulle autorizzazioni di cui hai bisogno per accedere alle risorse di AI Platform Prediction, consulta Controllo accessi.

Informazioni sull'agente di servizio

Per impostazione predefinita, AI Platform Prediction utilizza un agente di servizio per pubblicare le previsioni online dalle versioni del modello che non utilizzano contenuti personalizzati. Questo agente di servizio è identificato da un indirizzo email con il seguente formato:

service-PROJECT_NUMBER@cloud-ml.google.com.iam.gserviceaccount.com

PROJECT_NUMBER viene sostituito dal numero del progetto per il tuo progetto Google Cloud.

Trova l'account di servizio corrispondente per il tuo progetto nella console Google Cloud o utilizzando Google Cloud CLI:

Console Google Cloud

Vai alla pagina IAM della console Google Cloud, selezionate Includi concessioni di ruoli fornite da Google e individua il principale corrispondente al formato dell'indirizzo email descritto in precedenza in questa sezione. L'account di servizio ha anche il nome Google Cloud ML Engine Service Agent.

Vai alla pagina IAM

gcloud

Esegui il seguente comando in un ambiente Shell in cui hai inizializzato l&#gcloud CLI:

gcloud projects get-iam-policy PROJECT_ID \
  --flatten="bindings[].members" \
  --format="table(bindings.members)" \
  --filter="bindings.role:roles/ml.serviceAgent" \
  | grep serviceAccount:

Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud.

Questo comando restituisce quanto segue:

serviceAccount:GOOGLE_MANAGED_SERVICE_ACCOUNT

GOOGLE_MANAGED_SERVICE_ACCOUNT è l'indirizzo email dell'agente di servizio AI Platform del tuo progetto.

Questo agente di servizio dispone delle autorizzazioni appropriate per la maggior parte delle versioni del modello. Ad esempio, può leggere da i bucket Cloud Storage nello stesso progetto Google Cloud.

Se devi eseguire le tue routine di previsione personalizzate con autorizzazioni aggiuntive, puoi assegnare altri ruoli IAM (Identity and Access Management) a questo account di servizio. Ad esempio, puoi concedere l'accesso ai bucket Cloud Storage in altri progetti Google Cloud.

Account di servizio utilizzato per impostazione predefinita nei container personalizzati

Se la versione del modello utilizza un contenuto personalizzato, per impostazione predefinita il contenitore non viene eseguito utilizzando l'agente di servizio AI Platform, ma viene eseguito utilizzando un account servizio gestito da AI Platform Prediction. Questo account di servizio ha l'autorizzazione per leggere gli elementi del modello che AI Platform Prediction rende disponibili in un URI memorizzato nella AIP_STORAGE_URI variabile среды.

Non puoi personalizzare le autorizzazioni di questo account di servizio utilizzato per impostazione predefinita nei contenitori personalizzati. Se vuoi personalizzare le autorizzazioni disponibili per il tuo contenitore personalizzato, leggi le sezioni seguenti per utilizzare un account di servizio personalizzato con la versione del modello.

Utilizzo di un account di servizio personalizzato

Se vuoi concedere o limitare le autorizzazioni Google Cloud per una versione del modello specifica, utilizza un account di servizio personalizzato anziché l'agente di servizio.

Per farlo, devi prima configurare un account di servizio personalizzato. Quindi, specifica l'account di servizio personalizzato quando crei una versione del modello.

Configurare un account di servizio personalizzato

Per configurare un account di servizio personalizzato:

  1. Crea un account di servizio gestito dall'utente.

  2. Concede al nuovo account di servizio i ruoli IAM per fornire al codice di esecuzione delle previsioni tutte le autorizzazioni di cui ha bisogno durante l'esecuzione.

  3. Se l'account di servizio gestito dall'utente si trova in un progetto diverso dalle versioni del modello, configuralo in modo da poterlo collegare alle versioni del modello.

  1. Concedi all'agente di servizio della piattaforma AI del tuo progetto il ruolo Amministratore account di servizio (roles/iam.serviceAccountAdmin) per il nuovo account di servizio personalizzato. Per farlo, utilizza gcloud CLI per eseguire il seguente comando:

    gcloud iam service-accounts add-iam-policy-binding \
      --role=roles/iam.serviceAccountAdmin \
      --member=serviceAccount:GOOGLE_MANAGED_SERVICE_ACCOUNT \
      CUSTOM_SERVICE_ACCOUNT
    

    In questo comando, sostituisci i seguenti segnaposto:

Specifica l'account di servizio personalizzato per la versione del modello

Per consentire al codice di generazione delle previsioni di accedere a un account di servizio personalizzato, specifica il serviceAccount campo quando crei una versione del modello. Ricorda che la versione del modello deve utilizzare un container personalizzato o una routine di previsione personalizzata.

Se utilizzi gcloud CLI per creare una versione del modello, puoi utilizzare il flag --service-account con il componente gcloud beta. Ad esempio:

gcloud beta ai-platform versions create VERSION \
  --service-account CUSTOM_SERVICE_ACCOUNT \
  ...

Sostituisci quanto segue:

Passaggi successivi