Quando utilizzi la simulazione dell'identità del account di servizio, inizi con un principal autenticato (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 rappresentare il 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 tramite 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 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 rappresentare un account di servizio, devi attivare l'API Service Account Credentials nel tuo progetto.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.
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) sul 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
assumere 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 l'account di servizio account.
Puoi utilizzare la simulazione dell'identità del account di servizio utilizzando i seguenti metodi:
- Utilizza gcloud CLI
- Configura le Credenziali predefinite dell'applicazione per l'utilizzo delle librerie client
- Generare e gestire credenziali di breve durata
Utilizza gcloud CLI
gcloud CLI fornisce un modo semplice per utilizzare la simulazione dell'identità del 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 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.
Utilizzare la simulazione dell'identità 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 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 autenticarsi 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 il account di servizio.
Utilizzare l'impersonificazione 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 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.
Configura le Credenziali predefinite dell'applicazione per l'utilizzo delle librerie client
Puoi utilizzare la simulazione dell'identità del account di servizio per configurare un file delle Credenziali predefinite dell'applicazione (ADC) locale. Le librerie client che supportano la rappresentazione possono utilizzare automaticamente queste credenziali. I file ADC locali creati utilizzando la simulazione dell'identità sono supportati nelle seguenti lingue:
- C#
- Vai
- Java
- Node.js
- Python
Utilizza la simulazione dell'identità del 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 con i linguaggi supportati 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 Autenticati per usare le librerie client.
Le credenziali di un file ADC locale generato utilizzando la simulazione dell'identità 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.
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 credenziali 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
- Scopri di più su come ADC trova le credenziali.
- Esplora i metodi di autenticazione.