Puoi configurare AI Platform Prediction in modo da utilizzare un account di servizio a tua scelta quando esegue un codice personalizzato per fornire previsioni. In particolare, puoi specificare se esegui una delle seguenti operazioni:
- Crea una versione del modello che utilizza un contenuto personalizzato.
- Crea una versione del modello che utilizza una previsione personalizzata di Cloud Shell.
L'uso di un account di servizio personalizzato ti consente di personalizzare quali risorse Google Cloud il tuo codice di pubblicazione personalizzato può accedere senza concedere autorizzazioni eccessivamente ampie a l'account di servizio usato 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 scoprire le autorizzazioni necessarie per accedere alle risorse di AI Platform Prediction, leggi Access controllo.
Informazioni sull'agente di servizio
Per impostazione predefinita, AI Platform Prediction utilizza una agente di servizio per per fornire previsioni online da versioni di modelli che non utilizzano containerizzati. 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 è stato sostituito dal progetto numero per del tuo progetto Google Cloud.
Trova l'account di servizio corrispondente al tuo progetto nella console Google Cloud oppure 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à
corrisponde 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
.
gcloud
Esegui il seguente comando in un ambiente Shell in cui hai inizializzato l'interfaccia a riga di comando gcloud:
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 le 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 dispone dell'autorizzazione per
leggere gli artefatti del modello
che AI Platform Prediction rende disponibile presso un URI archiviato
Ambiente AIP_STORAGE_URI
variabile.
Non puoi personalizzare le autorizzazioni di questo account di servizio utilizzato per impostazione predefinita all'interno di container 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, configura innanzitutto un account di servizio personalizzato. Quindi specifica un account di servizio quando crei alla versione del modello.
Configurare un account di servizio personalizzato
Per configurare un account di servizio personalizzato:
Concede al nuovo account di servizio i ruoli IAM per fornire al codice di elaborazione delle previsioni tutte le autorizzazioni di cui ha bisogno durante l'esecuzione.
Se l'account di servizio gestito dall'utente si trova in un progetto diverso da quello le versioni del modello, configurare l'account di servizio gestito dall'utente in modo da poterla collegare al tuo le versioni del modello.
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 :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 del
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
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:
- VERSION: un nome per la versione del modello.
- CUSTOM_SERVICE_ACCOUNT: l'indirizzo email del account di servizio gestito dall'utente che hai impostato in una sezione precedente di questa guida.
- ...: opzioni aggiuntive per la versione del modello.
Passaggi successivi
Scopri come creare una versione del modello che utilizza un modello container
Scopri come creare una versione del modello che utilizza una previsione personalizzata di Cloud Shell.
Scopri di più sugli account di servizio.