Usa la simulazione dell'identità degli account di servizio

Se l'entità che stai utilizzando non dispone delle autorizzazioni necessarie per eseguire l'attività o vuoi utilizzare un account di servizio in un ambiente di sviluppo, puoi utilizzare la rappresentazione degli account di servizio.

Quando utilizzi l'impersonificazione degli account di servizio, 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 dispone dell'autorizzazione richiesta dal tuo caso d'uso. L'entità autenticata deve avere le autorizzazioni necessarie per impersonare l'account di servizio.

La rappresentazione degli account di servizio è più sicura rispetto all'utilizzo di una chiave dell'account di servizio, perché richiede un'identità autenticata prima e le credenziali create mediante la rappresentazione non vengono mantenute. In confronto, l'autenticazione con una chiave dell'account di servizio non richiede alcuna autenticazione precedente e la chiave permanente è una credenziale ad alto rischio se esposta.

Per ulteriori informazioni sulla simulazione dell'identità degli account di servizio, vedi Simulazione dell'identità degli account di servizio.

Prima di iniziare

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

Abilita le API

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

Abilita l'API

Ruoli obbligatori

Per assicurarti che l'entità disponga dell'autorizzazione necessaria per impersonare un account di servizio, chiedi all'amministratore di concedere all'entità il ruolo IAM Creatore token account di servizio (roles/iam.serviceAccountTokenCreator) per l'account di servizio. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

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

L'amministratore potrebbe anche essere in grado di concedere all'entità questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.

Devi concedere questi ruoli all'entità, anche quando stai lavorando a un progetto che hai creato.

Per ulteriori informazioni sui ruoli richiesti per la rappresentazione, vedi Ruoli per l'autenticazione degli account di servizio.

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

Utilizza gcloud CLI

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

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

Utilizza la rappresentazione per un comando gcloud CLI specifico

Per utilizzare la rappresentazione per uno specifico comando gcloud CLI, utilizza il flag --impersonate-service-account. Ad esempio, il seguente comando 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 l'account di servizio specificato e le utilizza per eseguire l'autenticazione all'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 per l'account di servizio.

Utilizza la rappresentazione con gcloud CLI per impostazione predefinita

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

gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL

Con questa proprietà di configurazione impostata, gcloud CLI richiede credenziali di breve durata per l'account di servizio specificato e le utilizza per eseguire l'autenticazione all'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 per l'account di servizio.

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

Puoi utilizzare la rappresentazione degli account di servizio per configurare un file ADC (Application Default Credentials) locale. Le librerie client che supportano la rappresentazione possono utilizzare queste credenziali automaticamente. I file ADC locali creati tramite la rappresentazione sono supportati nelle seguenti lingue:

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

Utilizza la rappresentazione 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, proprio come faresti dopo aver configurato un file ADC locale con credenziali utente. Le credenziali vengono trovate automaticamente dalle librerie di autenticazione. Per maggiori informazioni, consulta Eseguire l'autenticazione per l'utilizzo delle librerie client.

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, utilizza questo metodo se hai bisogno di un tipo diverso di credenziale di breve durata (diverso da un token di accesso) o se devi utilizzare la rappresentazione in un ambiente di produzione.

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

Passaggi successivi