Puoi configurare AI Platform Prediction in modo che utilizzi un account di servizio di tua scelta quando esegue il codice personalizzato per gestire le previsioni. In particolare, puoi specificare un account di servizio personalizzato quando esegui una delle seguenti operazioni:
- Crea una versione del modello che utilizza un contenitore personalizzato.
- Crea una versione del modello che utilizza una routine di previsione personalizzata.
L'utilizzo di un account di servizio personalizzato ti consente di personalizzare le risorse Google Cloud a cui può accedere il tuo codice di servizio personalizzato, senza concedere autorizzazioni eccessivamente generiche all'account di servizio utilizzato dalla previsione di AI Platform per impostazione predefinita.
La guida si concentra sulle risorse di AI Platform Prediction' autorizzazioni per accedere ad altre risorse Google Cloud. Per scoprire di più sulle autorizzazioni necessarie per accedere alle risorse di previsione di AI Platform, leggi il 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 pubblicare previsioni online da versioni di 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 è sostituito dal numero di progetto del tuo progetto Google Cloud.
Trova l'account di servizio corrispondente per il tuo progetto in Google Cloud Console 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à 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
.
gcloud
Esegui il comando seguente 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'account di servizio AI Platform del tuo progetto gestito da Google.
Questo account di servizio gestito da Google ha le 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 routine di previsione personalizzate da eseguire con autorizzazioni aggiuntive, puoi assegnare ruoli aggiuntivi a Identity and Access Management (IAM) 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 tua versione del modello utilizza un contenitore personalizzato, per impostazione predefinita il container non viene eseguito usando l'account di servizio AI Platform gestito da Google, ma viene eseguito utilizzando un account di servizio gestito da AI Platform Prediction. Questo account di servizio è autorizzato a leggere gli artefatti dei modelli che AI Platform Prediction rende disponibili a un URI archiviato nella variabile di ambiente AIP_STORAGE_URI
.
Non è possibile personalizzare le autorizzazioni di questo account di servizio utilizzato 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, devi prima configurare 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 nuovi ruoli IAM dell'account di servizio per fornire il codice di pubblicazione della previsione con tutte le autorizzazioni necessarie durante l'esecuzione.
Se l'account di servizio gestito dall'utente si trova in un progetto diverso da quello delle versioni del tuo modello, configura l'account di servizio gestito dall'utente in modo da poterlo collegare alle versioni del modello.
Concedi al tuo account di servizio gestito da Google AI Platform il ruolo Amministratore account di servizio (
roles/iam.serviceAccountAdmin
) per il tuo nuovo account di servizio personalizzato. Per farlo, utilizza l'interfaccia a riga di comando gcloud per eseguire il comando seguente: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 progetto
Google Cloud ML Engine Service Agent
. 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 consentire al tuo codice di pubblicazione per le previsioni di accedere 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 contenitore personalizzato o una routine di previsioni personalizzate.
Se usi l'interfaccia a riga di comando gcloud 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: 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.