Utilizzare l'impersonificazione dell'account di servizio

Quando il principale 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'usurpazione di identità dell'account di servizio.

Quando utilizzi la rappresentazione dell'account di servizio, inizi con un principale autenticato (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 disporre delle autorizzazioni necessarie per rubare l'identità dell'account di servizio.

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

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

Prima di iniziare

Prima di utilizzare l'usurpazione dell'identità dell'account di servizio, devi attivare le API richieste e assicurarti di disporre dei ruoli richiesti.

Abilita API

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

Enable the API

Ruoli obbligatori

Per assicurarti che il principale disponga dell'autorizzazione necessaria per rubare l'identità di un account di servizio, chiedi all'amministratore di concedere al principale il ruolo IAM Creatore token account di servizio (roles/iam.serviceAccountTokenCreator) nell'account di servizio. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

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

L'amministratore potrebbe anche assegnare all'entità questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.

Devi concedere questi ruoli all'entità, anche quando lavori in un progetto che hai creato.

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

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

Utilizza gcloud CLI

Gcloud CLI offre un modo semplice per utilizzare l'usurpazione di identità dell'account di servizio. Questo metodo è utile quando devi utilizzare un account di servizio per accedere alle risorse o ai servizi Google Cloud utilizzando la gcloud CLI.

Puoi rubare l'identità di un account di servizio per un determinato comando gcloud CLI o configurare la gcloud CLI in modo che utilizzi automaticamente il furto d'identità per ogni comando.

Utilizzare l'usurpazione di identità per un comando gcloud CLI specifico

Per utilizzare l'usurpazione di identità per un comando gcloud CLI specifico, 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, la gcloud CLI richiede credenziali di breve durata per l'account di servizio specificato e le utilizza per autenticarsi nell'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 l'account di servizio.

Utilizzare l'uso improprio 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 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 autenticarsi nell'API e autorizzare l'accesso alla risorsa per ogni comando. Il principale che ha eseguito l'accesso alla gcloud CLI deve disporre dell'autorizzazione richiesta per l'account di servizio.

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

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

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

Utilizza l'usurpazione dell'identità 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 che utilizzano 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 ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo delle librerie client.

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, utilizza questo metodo se hai bisogno di un altro tipo di credenziale di breve durata (diverso da un token di accesso) o se devi utilizzare l'inganno d'identità 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