Simulazione dell'identità degli account di servizio

Quando un'entità autenticata, ad esempio un utente o un altro account di servizio, autentica come per ottenere le autorizzazioni dell'account di servizio, si parla di furto di identità del l'account di servizio. L'identità di un account di servizio consente a un'entità autenticata di accedere a cui può accedere l'account di servizio. Solo le entità autenticate con le autorizzazioni appropriate possono si tratta di account di servizio.

La rappresentazione è utile quando vuoi modificare le autorizzazioni di un utente senza cambiare il tuo criteri IAM (Identity and Access Management). Ad esempio, puoi utilizzare la rappresentazione per concedere temporaneamente a un utente un accesso elevato o per verificare se un insieme specifico di autorizzazioni è sufficiente per un'attività. Puoi anche utilizzare la rappresentazione per sviluppare localmente applicazioni che possono essere eseguite solo come account di servizio o per autenticare le applicazioni in esecuzione al di fuori di Google Cloud.

La simulazione dell'identità degli account di servizio Google Cloud è simile ad Amazon Web Services Metodi dell'API Security Token Service (AWS) come AssumeRole.

Come funziona la simulazione dell'identità degli account di servizio

L'impersonificazione degli account di servizio coinvolge sempre due identità: un'entità autenticata e l'account di servizio che l'entità impersona. Per usurpare l'identità dell'account di servizio, l'entità autenticata riceve un token per l'account di servizio, quindi lo utilizza per autenticarsi come account di servizio.

Esistono diversi modi per impersonare un account di servizio:

  • Imposta il flag --impersonate-service-account o la proprietà impersonate-service-account quando esegui un comando Google Cloud CLI. Quando esegui un comando gcloud CLI questa impostazione, gcloud CLI crea credenziali per l'account di servizio, quindi esegue il comando e credenziali.

    Puoi usare il flag --impersonate-service-account anche durante la configurazione il tuo file delle credenziali predefinite dell'applicazione. Questa configurazione consente alle librerie client che supportano la simulazione dell'identità di simulare automaticamente l'identità dell'account di servizio.

  • Crea credenziali di breve durata utilizzando l'API Credenziali account di servizio, quindi utilizzale per autenticare una richiesta API.

    Le credenziali di breve durata hanno una durata limitata, con durate di alcune ore o meno, e non vengono aggiornate automaticamente. Creano meno rispetto alle credenziali di lunga durata, come le chiavi degli account di servizio.

  • Utilizza un file di configurazione credenziali per configurare un'istanza per rappresentare un account di servizio. Questa opzione è disponibile disponibile per le applicazioni che utilizzano la Federazione delle identità per i carichi di lavoro.

    Quando un'applicazione utilizza un file di configurazione delle credenziali per accedere Google Cloud, prima utilizza le credenziali specifiche dell'ambiente per ottenere una credenziale di breve durata per un account di servizio designato. Poi, utilizza questa credenziale di breve durata per autenticarsi su Google Cloud.

Se un'entità accede alle risorse mentre si spaccia per un account di servizio, gli audit log includono sia la loro identità sia l'identità dell'account di servizio stanno rubando l'identità. Per ulteriori informazioni, consulta Interpretazione dei log di controllo.

Quando utilizzi la console Google Cloud, esegui sempre l'autenticazione con il tuo utente credentials; non puoi utilizzare l'identità di un account di servizio per accedere alle risorse nella console Google Cloud.

Autenticazione senza furto d'identità

Esistono diversi modi per consentire a un carico di lavoro o a un utente di autenticarsi come account di servizio senza simulare l'identità dell'account di servizio:

  • Un carico di lavoro utilizza un account di servizio collegato per l'autenticazione alle API di Google. In questo caso, l'account di servizio collegato funge da identità del carico di lavoro ed è l'unica identità autenticata coinvolta nella richiesta.

    Per scoprire come i carichi di lavoro si autenticano su Google Cloud, consulta Identità per i carichi di lavoro.

  • Un'entità utilizza una chiave dell'account di servizio per autenticarsi come account di servizio. L'utilizzo della chiave di un account di servizio per l'autenticazione come account di servizio comporta solo un'identità autenticata: quella dell'account di servizio. Poiché esiste un solo coinvolta, l'utilizzo di una chiave non è la simulazione dell'identità degli account di servizio.

In questi casi, gli audit log registrano solo l'identità dell'account di servizio. Non registrano altre identità, ad esempio le identità dei gli utenti che hanno eseguito codice sul carico di lavoro o le identità delle persone che ha utilizzato la chiave dell'account di servizio per l'autenticazione. Di conseguenza, l'uso di un account di servizio di chiavi o di concedere agli sviluppatori l'autorizzazione per eseguire codice ad esempio una sessione SSH per un'istanza VM, e creare rischi di escalation dei privilegi e di non ripudio.

Autorizzazioni obbligatorie

Per impersonare un account di servizio, è necessario Autorizzazione iam.serviceAccounts.getAccessToken. Questa autorizzazione è presente in ruoli come il ruolo Creatore token account di servizio (roles/iam.serviceAccountTokenCreator).

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

Casi d'uso per la simulazione dell'identità degli account di servizio

La simulazione dell'identità dell'account di servizio è utile quando devi svolgere attività come quelle elencate di seguito:

  • Concedere a un utente l'accesso elevato temporaneo
  • Verificare se un insieme specifico di autorizzazioni è sufficiente per un'attività
  • Sviluppo locale di applicazioni che possono essere eseguite solo come account di servizio
  • Autentica le applicazioni esterne

Concedi l'accesso elevato temporaneo

In alcuni casi, potresti voler consentire a un utente di accedere temporaneamente a risorse specifiche. Ad esempio, potresti voler concedere a qualcuno ulteriore accesso in modo da poter risolvere un incidente o permettere a qualcuno di accedere per un periodo di tempo limitato dopo la registrazione di una giustificazione.

L'impersonificazione degli account di servizio è uno dei modi con cui puoi fornire un accesso elevato temporaneo. Per utilizzare un account di servizio per un accesso elevato temporaneo, devi prima concedergli i ruoli IAM che vuoi assegnare temporaneamente agli utenti. Quindi, consenti agli utenti di impersonare l'account di servizio, concedendo loro l'autorizzazione a impersonare l'account di servizio oppure utilizzando un token broker per emettere una credenziale di breve durata per l'account di servizio.

Per scoprire di più sui metodi per concedere agli utenti l'accesso elevato temporaneo, consulta la Panoramica dell'accesso elevato temporaneo.

Test delle autorizzazioni

In alcuni casi, potresti voler verificare se un insieme specifico di autorizzazioni sufficienti per un'attività. Ad esempio, potresti voler confermare che un servizio l'account di servizio può comunque eseguire un'applicazione se rimuovi determinate autorizzazioni in eccesso. Oppure potresti aiutare un utente a risolvere i problemi di un'attività e vuoi verificare che possono eseguire un determinato comando con i loro ruoli IAM attuali.

Puoi utilizzare la rappresentazione degli account di servizio per testare un insieme specifico di autorizzazioni. Innanzitutto, crea un account di servizio e concedigli uno o più IAM ruoli con le autorizzazioni che vuoi testare. Quindi, impersona il servizio dell'account di servizio e prova a eseguire l'attività. Questo metodo ti consente di testare le autorizzazioni senza dover creare account utente di test o modificare le tue autorizzazioni IAM.

Per scoprire come impersonare account di servizio, vedi Utilizzare l'account di servizio furto d'identità.

Sviluppare applicazioni localmente

Quando sviluppi applicazioni localmente, in genere puoi autenticarti utilizzando le tue credenziali utente. Tuttavia, in alcune situazioni, potrebbe non essere possibile, ad esempio se vuoi autenticarti su un che richiede un token con un segmento di pubblico personalizzato, che gli utenti non è possibile configurare. In questi casi, devi autenticarti come account di servizio anziché con le credenziali utente.

Per queste situazioni, consigliamo di utilizzare la rappresentazione dell'account di servizio. L'utilizzo dell'impersonificazione dell'account di servizio ti consente di evitare di utilizzare le chiavi degli account di servizio, che rappresentano un ulteriore rischio per la sicurezza.

Per scoprire come impersonare account di servizio per sviluppare applicazioni, vedi Furto d'identità degli account di servizio.

Autentica le applicazioni esterne

Per accedere alle risorse Google Cloud, le applicazioni in esecuzione al di fuori di Google Cloud devono autenticarsi su Google Cloud. Un modo per autenticare queste applicazioni è utilizzare l'impersonificazione dell'account di servizio.

Per consentire alla tua applicazione di impersonare un account di servizio, devi prima configurare Federazione delle identità per i carichi di lavoro, che fornisce una e l'identità autenticata per la tua applicazione. Poi, puoi utilizzare un file di configurazione delle credenziali per configurare l'applicazione in modo da appropriarsi dell'identità di un account di servizio.

Sebbene sia possibile utilizzare le chiavi dell'account di servizio per autenticare le applicazioni esterne, sconsigliamo vivamente di farlo. Chiavi dell'account di servizio creano ulteriori rischi per la sicurezza e devono essere evitati se possibile.

Passaggi successivi