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 un codice personalizzato per pubblicare previsioni. In particolare, 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 a quali risorse Google Cloud può accedere il tuo codice di gestione personalizzato senza concedere autorizzazioni eccessivamente ampie all'account di servizio utilizzato per impostazione predefinita da AI Platform Prediction.

Questa guida è incentrata sulle autorizzazioni delle risorse AI Platform Prediction per l'accesso ad altre risorse Google Cloud. Per saperne di più sulle autorizzazioni necessarie per accedere alle risorse AI Platform Prediction autonomamente, consulta Controllo degli accessi.

Informazioni sull'agente di servizio

Per impostazione predefinita, AI Platform Prediction utilizza un agente di servizio per fornire previsioni online da versioni del modello che non utilizzano container personalizzati. Questo agente di servizio è identificato da un indirizzo email nel seguente formato:

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

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

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

Console Google Cloud

Vai alla pagina IAM nella console Google Cloud, seleziona Includi concessioni dei ruoli fornite da Google e trova l'entità che corrisponde al formato dell'indirizzo email descritto in precedenza in questa sezione. Anche l'account di servizio è denominato Google Cloud ML Engine Service Agent.

Vai alla pagina IAM

gcloud

Esegui questo comando in un ambiente Shell in cui hai inizializzato 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 dai bucket Cloud Storage nello stesso progetto Google Cloud.

Se hai bisogno di eseguire routine di previsione personalizzate con autorizzazioni aggiuntive, puoi assegnare ruoli IAM (Identity and Access Management) aggiuntivi a questo account di servizio. Ad esempio, puoi concedergli 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 tuo modello utilizza un container personalizzato, per impostazione predefinita il container non viene eseguito utilizzando l'agente di servizio AI Platform; viene invece eseguito utilizzando un account di servizio gestito da AI Platform Prediction. Questo account di servizio dispone dell'autorizzazione per leggere gli artefatti del modello che AI Platform Prediction rende disponibili a un URI archiviato nella variabile di ambiente AIP_STORAGE_URI.

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

Utilizzo di un account di servizio personalizzato

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

Per farlo, configura innanzitutto un account di servizio personalizzato. Poi specifica l'account di servizio personalizzato quando crei una versione del modello.

Configura un account di servizio personalizzato

Per configurare un account di servizio personalizzato:

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

  2. Concedi i nuovi ruoli IAM dell'account di servizio per fornire al codice per l'elaborazione delle previsioni le autorizzazioni necessarie durante l'esecuzione.

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

  1. Concedi all'agente di servizio AI Platform 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 questo 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:

    • GOOGLE_MANAGED_SERVICE_ACCOUNT: l'indirizzo email dell'elemento Google Cloud ML Engine Service Agent del tuo progetto. Scopri come trovare questo indirizzo email in una sezione precedente di questa guida.

    • CUSTOM_SERVICE_ACCOUNT: l'indirizzo email del nuovo account di servizio gestito dall'utente che hai appena creato in un passaggio precedente di questa sezione.

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

Per concedere al codice per la pubblicazione delle previsioni l'accesso a un account di servizio personalizzato, specifica il campo serviceAccount 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