Puoi configurare AI Platform Prediction in modo da utilizzare un account di servizio a tua scelta quando esegue codice personalizzato per fornire previsioni. In particolare, puoi specificare un account di servizio personalizzato quando esegui una delle seguenti operazioni:
- Crea una versione del modello che utilizza un container personalizzato.
- Crea una versione del modello che utilizza una routine di previsione personalizzata.
L'uso di un account di servizio personalizzato ti consente di personalizzare le risorse di Google Cloud a cui può accedere il tuo codice di pubblicazione personalizzato senza concedere autorizzazioni troppo ampie all'account di servizio utilizzato per impostazione predefinita da AI Platform Prediction.
La guida è incentrata sulle autorizzazioni delle risorse AI Platform Prediction per accedere ad altre risorse Google Cloud. Per informazioni sulle autorizzazioni necessarie per accedere alle risorse di AI Platform Prediction, consulta Controllo dell'accesso.
Informazioni sull'account di servizio gestito da Google
Per impostazione predefinita, AI Platform Prediction utilizza un account di servizio gestito da Google per fornire previsioni online da versioni del modello che non utilizzano container personalizzati. Questo account 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 di progetto del 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 nella console Google Cloud, seleziona Includi concessioni di ruoli fornite da Google e trova l'entità che 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 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'account di servizio AI Platform gestito da Google del tuo progetto.
Questo account di servizio gestito da Google dispone di autorizzazioni appropriate per la maggior parte delle versioni dei modelli. ad esempio dai bucket Cloud Storage nello stesso progetto Google Cloud.
Se hai bisogno di eseguire routine di previsione personalizzate con autorizzazioni aggiuntive, puoi assegnare ulteriori ruoli IAM (Identity and Access Management) a questo account di servizio. Ad esempio, puoi concedere al team 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'account di servizio gestito da Google di AI Platform. Viene invece eseguito utilizzando un account di servizio gestito da AI Platform Prediction. Questo account di servizio ha l'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 utilizzate per impostazione predefinita nei container personalizzati. Se vuoi personalizzare le autorizzazioni disponibili per il 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 Google Cloud per una versione specifica del modello, utilizza un account di servizio personalizzato al posto dell'account di servizio gestito da Google.
Per farlo, configura innanzitutto un account di servizio personalizzato. Quindi 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:
Concedi i ruoli IAM al tuo nuovo account di servizio per fornire al codice per la gestione delle previsioni tutte le autorizzazioni necessarie durante l'esecuzione.
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.
Concedi all'account di servizio gestito da Google di AI Platform il ruolo Amministratore account di servizio (
roles/iam.serviceAccountAdmin
) del tuo progetto 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:
GOOGLE_MANAGED_SERVICE_ACCOUNT: l'indirizzo email del
Google Cloud ML Engine Service Agent
del 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 tuo modello
Per concedere l'accesso del codice per la generazione di previsioni 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:
- VERSION: il nome della versione del modello.
- CUSTOM_SERVICE_ACCOUNT: l'indirizzo email dell'account di servizio gestito dall'utente che hai configurato 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 container personalizzato
Scopri come creare una versione del modello che utilizza una routine di previsione personalizzata.
Scopri di più sugli account di servizio.