Utilizzo di un account di servizio personalizzato

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

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:

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.

Vai alla pagina IAM

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:

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

  2. 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.

  3. 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.

  1. 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:

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:

Passaggi successivi