Quando l'entità che utilizzi non dispone delle autorizzazioni necessarie per eseguire la tua attività o utilizzare un account di servizio in un puoi utilizzare la rappresentazione degli account di servizio.
Quando utilizzi la simulazione dell'identità degli account di servizio, inizia con un modello l'entità (il tuo account utente o un account di servizio) e la richiesta credenziali per un account di servizio che dispone dell'autorizzazione per il tuo caso d'uso richiede. L'entità autenticata deve avere autorizzazioni necessarie per impersonare l'account di servizio.
La simulazione dell'identità degli account di servizio è più sicura rispetto all'utilizzo di una chiave dell'account di servizio poiché la simulazione dell'identità degli account di servizio richiede un'identità autenticata e le credenziali create dalla rappresentazione non vengono mantenute. Invece, l'autenticazione con una chiave dell'account di servizio non richiede e la chiave permanente è una credenziale ad alto rischio se esposta.
Per ulteriori informazioni sulla simulazione dell'identità degli account di servizio, vedi Furto d'identità degli account di servizio.
Prima di iniziare
Prima di utilizzare la simulazione dell'identità degli account di servizio, devi abilitare le API e assicurati di disporre dei ruoli richiesti.
Abilita API
Per impersonare un account di servizio, devi abilitare API Service Account Credentials nel tuo progetto.
Ruoli obbligatori
Per garantire che l'entità abbia i necessari
l'autorizzazione a impersonare un account di servizio,
chiedi all'amministratore di concedere all'entità
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
iam.serviceAccounts.getAccessToken
, che è
necessario per impersonare un account di servizio.
L'amministratore potrebbe anche essere in grado di fornire all'entità questa autorizzazione con ruoli personalizzati e altri ruoli predefiniti.
Devi concedere questi ruoli all'entità, anche quando lavori in una progetto che hai creato.
Per ulteriori informazioni sui ruoli richiesti per la rappresentazione, vedi Ruoli per l'autenticazione dell'account di servizio.
Puoi utilizzare la simulazione dell'identità degli 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 offre un modo semplice per utilizzare l'account di servizio il furto d'identità. Questo metodo funziona bene quando devi usare un account di servizio per accedere alle risorse o ai servizi Google Cloud utilizzando con gcloud CLI.
Puoi rappresentare un account di servizio per uno specifico gcloud CLI o configura gcloud CLI in modo da utilizzare la rappresentazione per ogni il comando kubectl automaticamente.
Utilizza la rappresentazione per un comando gcloud CLI specifico
Per utilizzare la rappresentazione per uno specifico comando gcloud CLI, utilizza
Flag --impersonate-service-account
. Ad esempio,
il seguente comando elenca i bucket di archiviazione, usando 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, le richieste gcloud CLI sono di breve durata le credenziali per l'account di servizio specificato e le utilizza per l'autenticazione all'API e autorizzarne l'accesso. L'entità che ha eseguito l'accesso gcloud CLI (di solito il tuo account utente) deve avere i requisiti l'autorizzazione per l'account di servizio.
Utilizza la rappresentazione con gcloud CLI per impostazione predefinita
Configura gcloud CLI in modo che utilizzi l'identità e l'accesso forniti un account di servizio per impostazione predefinita, Comando gcloud CLI config:
gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
Con questa proprietà di configurazione impostata, le richieste dell'interfaccia a riga di comando gcloud le credenziali per l'account di servizio specificato e le utilizza per l'autenticazione all'API e autorizzare l'accesso alla risorsa per ogni comando. L'entità che ha eseguito l'accesso a gcloud CLI deve avere l'autorizzazione richiesta per l'account di servizio.
Configura le credenziali predefinite dell'applicazione per l'utilizzo delle librerie client
Puoi utilizzare la rappresentazione dell'account di servizio per configurare un'applicazione predefinita locale del file di credenziali (ADC). Librerie client che supportano la rappresentazione possono utilizzare queste credenziali automaticamente. I file ADC locali creati utilizzando sono supportate nei seguenti linguaggi:
- C#
- Vai
- 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 i linguaggi supportati come faresti in seguito per configurare un file ADC locale con le credenziali utente. Le credenziali vengono trovate automaticamente dal librerie di autenticazione. Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo delle librerie client.
Genera e gestisci credenziali di breve durata
Se nessuno dei metodi precedenti corrisponde al tuo caso d'uso, devi generare e gestire token di breve durata. Ad esempio, se hai bisogno di un'altra tipo di credenziale di breve durata (diverso da un token di accesso) o se devi utilizzare la rappresentazione in un ambiente di produzione, usa questo metodo.
Per informazioni sulla generazione di token di breve durata, consulta Creare credenziali di breve durata per un account di servizio.
Passaggi successivi
- Scopri di più su come ADC trova le credenziali.
- Scopri i metodi di autenticazione.