Utilizzare l'impersonificazione dell'account di servizio

Quando l'entità che utilizzi non dispone delle autorizzazioni necessarie per svolgere l'attività o vuoi utilizzare un account di servizio in un ambiente di sviluppo, puoi utilizzare l'impersonificazione del service account.

Quando utilizzi la rappresentazione dell'account di servizio, inizi con un principal autenticato (il tuo account utente o un service account) e richiedi credenziali di breve durata per un service account che disponga dell'autorizzazione richiesta dal tuo caso d'uso. L'entità autenticata deve disporre delle autorizzazioni necessarie per rappresentare l'account di servizio.

La simulazione dell'identità del service account è più sicura dell'utilizzo di una chiave del account di servizio perché richiede un'identità autenticata precedente e le credenziali create utilizzando la simulazione non vengono mantenute. Al contrario, l'autenticazione con una chiave del account di servizio non richiede un'autenticazione previa e la chiave persistente è una credenziale ad alto rischio se esposta.

Per ulteriori informazioni sull'impersonificazione del account di servizio, consulta Impersonificazione del service account.

Prima di iniziare

Prima di utilizzare la rappresentazione dell'identità del account di servizio, devi abilitare le API richieste e assicurarti di disporre dei ruoli necessari.

Abilita API

Per rappresentare un account di servizio, devi attivare l'API Service Account Credentials nel tuo progetto.

Enable the API

Ruoli obbligatori

Per ottenere l'autorizzazione necessaria per rappresentare un account di servizio, chiedi all'amministratore di concederti il ruolo IAM Creatore token service account (roles/iam.serviceAccountTokenCreator) nel account di servizio. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene l'autorizzazione iam.serviceAccounts.getAccessToken necessaria per rappresentare un account di servizio.

Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.

Devi concedere questi ruoli al tuo account, anche quando lavori in un progetto che hai creato.

Per ulteriori informazioni sui ruoli richiesti per la rappresentazione, vedi Ruoli per laccount di servizio account.

Puoi utilizzare l'impersonificazione del account di servizio utilizzando i seguenti metodi:

Utilizza gcloud CLI

gcloud CLI offre un modo semplice per utilizzare la rappresentazione dell'account di servizio. Questo metodo funziona bene quando devi utilizzare un account di servizio per accedere a risorse o servizi utilizzando gcloud CLI. Google Cloud

Puoi rappresentare un account di servizio per un comando gcloud CLI specifico o configurare gcloud CLI in modo che utilizzi automaticamente la rappresentazione per ogni comando.

Utilizzare la rappresentazione per un comando gcloud CLI specifico

Per utilizzare la rappresentazione per un comando gcloud CLI specifico, utilizza il flag --impersonate-service-account. Ad esempio, il comando seguente elenca i bucket di archiviazione utilizzando l'identità e l'accesso forniti dall'account di servizio specificato:

gcloud storage buckets list --impersonate-service-account=SERVICE_ACCT_EMAIL

Quando utilizzi questo flag, gcloud CLI richiede credenziali di breve durata per il account di servizio specificato e le utilizza per autenticarsi all'API e autorizzare l'accesso. L'entità che ha eseguito l'accesso alla gcloud CLI (di solito il tuo account utente) deve disporre dell'autorizzazione richiesta per iaccount di serviziont.

Utilizzare l'impersonificazione con gcloud CLI per impostazione predefinita

Per configurare gcloud CLI in modo che utilizzi per impostazione predefinita l'identità e l'accesso forniti da un account di servizio, utilizza il comando di configurazione gcloud CLI:

gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL

Con questa proprietà di configurazione impostata, gcloud CLI richiede credenziali di breve durata per il account di servizio specificato e le utilizza per autenticarsi all'API e autorizzare l'accesso alla risorsa per ogni comando. L'entità che ha eseguito l'accesso alla gcloud CLI deve disporre dell'autorizzazione richiesta per il account di servizio.

Configurare le Credenziali predefinite dell'applicazione per l'utilizzo delle librerie client

Puoi utilizzare la rappresentazione dell'identità del account di servizio per configurare un file delle credenziali predefinite dell'applicazione (ADC) locale. Le librerie client che supportano l'impersonificazione possono utilizzare automaticamente queste credenziali. I file ADC locali creati utilizzando la rappresentazione sono supportati nelle seguenti lingue:

  • C#
  • Vai
  • Java
  • Node.js
  • Python

Utilizza l'imitazione dell'account di servizio per creare un file ADC locale:

gcloud auth application-default login --impersonate-service-account SERVICE_ACCT_EMAIL

Ora puoi utilizzare le librerie client utilizzando le lingue supportate nello stesso modo in cui le utilizzeresti dopo aver configurato un file ADC locale con le credenziali utente. Le credenziali vengono trovate automaticamente dalle librerie di autenticazione. Per saperne di più, vedi Autenticarsi per utilizzare le librerie client.

Le credenziali di un file ADC locale generato utilizzando l'imitazione del account di servizio non sono supportate da tutte le librerie di autenticazione. Per saperne di più, vedi Errore restituito per le credenziali locali dalla rappresentazione dell'account di servizio.

Generare e gestire credenziali di breve durata

Se nessuno dei metodi precedenti soddisfa il tuo caso d'uso, devi generare e gestire token di breve durata. Ad esempio, se hai bisogno di un tipo diverso di credenziale di breve durata (qualcosa di diverso da un token di accesso) o se devi utilizzare la rappresentazione in un ambiente di produzione, utilizza questo metodo.

Per informazioni sulla generazione di token di breve durata, vedi Creare credenziali di breve durata per un service account.

Passaggi successivi