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 la simulazione dell'identità dei service account.

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

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

Per saperne di più sulla simulazione dell'identità dei account di servizio, consulta Simulazione dell'identità dei service account.

Prima di iniziare

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

Abilita API

Per simulare l'identità di un account di servizio, devi abilitare l'API Service Account Credentials nel tuo progetto.

Ruoli richiesti per abilitare le API

Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin), che contiene l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

Abilitare l'API

Ruoli obbligatori

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

Questo ruolo predefinito contiene l' iam.serviceAccounts.getAccessToken autorizzazione, necessaria per simulare l'identità di 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 saperne di più sui ruoli richiesti per la simulazione dell'identità, consulta Ruoli per account di servizio account.

Puoi utilizzare la simulazione dell'identità dei account di servizio utilizzando i seguenti metodi:

Utilizza gcloud CLI

gcloud CLI offre un modo semplice per utilizzare la simulazione dell'identità dei account di servizio. Questo metodo è utile quando devi utilizzare un account di servizio per accedere a Google Cloud risorse o servizi utilizzando la gcloud CLI.

Puoi simulare l'identità di un account di servizio per un comando gcloud CLI specifico o configurare gcloud CLI in modo che utilizzi automaticamente la simulazione dell'identità per ogni comando.

Utilizza la simulazione dell'identità per un comando gcloud CLI specifico

Per utilizzare la simulazione dell'identità per un comando gcloud CLI specifico, utilizza il --impersonate-service-account flag. Ad esempio, il seguente comando elenca i bucket di archiviazione, utilizzando l'identità e l'accesso forniti dal 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 autenticare l'API e autorizzare l'accesso. L'entità che ha eseguito l'accesso a gcloud CLI (di solito il tuo account utente) deve disporre dell'autorizzazione richiesta sul account di servizio.

Utilizza la simulazione dell'identità con gcloud CLI per impostazione predefinita

Per configurare gcloud CLI in modo che utilizzi l'identità e l'accesso forniti da un account di servizio per impostazione predefinita, utilizza il comando di configurazione di 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 autenticare l'API e autorizzare l'accesso alla risorsa per ogni comando. L'entità che ha eseguito l'accesso a gcloud CLI deve disporre dell'autorizzazione richiesta sul account di servizio.

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

Puoi utilizzare la simulazione dell'identità dei account di servizio per configurare un file Credenziali predefinite dell'applicazione (ADC) locale. Le librerie client che supportano la simulazione dell'identità possono utilizzare automaticamente queste credenziali. I file ADC locali creati utilizzando la simulazione dell'identità sono supportati nei seguenti linguaggi:

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

Utilizza la simulazione dell'identità dei 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 i linguaggi supportati nello stesso modo in cui faresti dopo aver configurato un file ADC locale con le credenziali utente. Le credenziali vengono trovate automaticamente dalle librerie di autenticazione. Per saperne di più, consulta Autenticarsi per l'utilizzo delle librerie client.

Le credenziali di un file ADC locale generato utilizzando la simulazione dell'identità dei account di servizio non sono supportate da tutte le librerie di autenticazione. Per saperne di più, consulta Errore restituito per le credenziali locali dalla account di servizio account.

Genera e gestisci 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 simulazione dell'identità in un ambiente di produzione, utilizza questo metodo.

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

Passaggi successivi