Panoramica degli account di servizio

In questa pagina viene spiegato cosa sono gli account di servizio e vengono descritti gli aspetti importanti considerazioni sulla gestione degli account di servizio in ogni fase durante il ciclo di vita di attività.

Che cosa sono gli account di servizio?

Un account di servizio è un particolare tipo di account usato generalmente da un'applicazione o carichi di lavoro di computing, ad esempio un'istanza di Compute Engine, anziché una persona. Un account di servizio è identificato dal suo indirizzo email, che è univoco per .

Le applicazioni usano account di servizio per chiamate API autorizzate autenticandosi come account di servizio stesso o come Google Workspace. o Cloud Identity tramite delega a livello di dominio. Quando un'applicazione si autentica come account di servizio, ha accesso a tutte le risorse a cui l'account di servizio ha l'autorizzazione di accesso.

Il modo più comune per consentire a un'applicazione di autenticarsi come account di servizio è collegare un account di servizio alla risorsa che esegue l'applicazione. Ad esempio, puoi collegare un account di servizio di Compute Engine, per consentire alle applicazioni in esecuzione su quell'istanza di autenticarsi come account di servizio. Successivamente, puoi concedere all'account di servizio i ruoli IAM per consentire all'account di servizio e, per estensione, alle applicazioni nell'istanza di accedere alle risorse Google Cloud.

Esistono altri modi per consentire alle applicazioni di autenticarsi come account di servizio oltre all'attaccare un account di servizio. Ad esempio, potresti configurare la Federazione delle identità per i carichi di lavoro. per consentire l'autenticazione dei carichi di lavoro esterni come account di servizio oppure creare chiave dell'account di servizio e utilizzarla in qualsiasi ambiente per ottenere OAuth 2.0 di accesso ai token di accesso.

Per saperne di più sull'autenticazione degli account di servizio per le applicazioni, vedi Panoramica delle identità per i carichi di lavoro.

Le entità, come gli utenti e altri account di servizio, possono anche eseguire l'autenticazione account di servizio. Per ulteriori informazioni, consulta la sezione Rappresentazione dell'account di servizio in questa pagina.

Tipi di account di servizio

In Google Cloud esistono diversi tipi di account di servizio:

  • Account di servizio gestiti dall'utente: account di servizio che crei e gestire. Questi account di servizio vengono spesso utilizzati come identità per i carichi di lavoro.

  • Account di servizio predefiniti: account di servizio gestiti dall'utente che vengono creati automaticamente quando attivi determinati servizi Google Cloud. Stai responsabile della gestione di questi account di servizio.

  • Agenti di servizio: account di servizio creati e gestiti da Google Cloud che consentono ai servizi di accedere alle risorse per tuo conto.

Per ulteriori informazioni sui diversi tipi di account di servizio, consulta Tipi di di servizio.

Credenziali dell'account di servizio

Le applicazioni e le entità eseguono l'autenticazione come account di servizio tramite una delle seguenti le seguenti:

  • Ottenere credenziali di breve durata. In molti casi, ad esempio allegati e i comandi tramite gcloud CLI --impersonate-service-account flag, queste credenziali sono state ottenute automaticamente, non devi crearli o gestirli personalmente.
  • Utilizzo della chiave di un account di servizio per firmare un token web JSON (JWT) e scambiarlo per un token di accesso. Poiché le chiavi degli account di servizio comportano un rischio per la sicurezza se non vengono gestite correttamente, devi scegliere un'alternativa più sicura alle chiavi degli account di servizio ogni volta che è possibile.

Per scoprire di più sull'autenticazione degli account di servizio, consulta Credenziali dell'account di servizio.

Simulazione dell'identità degli account di servizio

Quando un'entità autenticata, ad esempio un utente o un altro account di servizio, si autentica come account di servizio per ottenere le autorizzazioni dell'account di servizio, si parla di sostituzione dell'identità dell'account di servizio. L'impersonificazione di un account di servizio consente a un'entità autenticata di accedere a qualsiasi risorsa a cui può accedere l'account di servizio. Solo le entità autenticate con le autorizzazioni appropriate possono impersonati i service account.

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

Per saperne di più sulla simulazione dell'identità degli account di servizio, vedi Account di servizio furto d'identità.

Account di servizio e domini Google Workspace

A differenza degli account utente, gli account di servizio non appartengono al tuo dominio Google Workspace. Se condividi asset di Google Workspace, come documenti o eventi, con l'intero dominio Google Workspace, questi non vengono condivisi con gli account di servizio. Analogamente, gli asset Google Workspace creati gli account di servizio non vengono creati nel tuo dominio Google Workspace. Di conseguenza, gli amministratori di Google Workspace e Cloud Identity non possono possedere o gestire queste risorse.

Autorizzazioni account di servizio

Gli account di servizio sono principali. Ciò significa che puoi concedere ai service account l'accesso alle risorse Google Cloud. Ad esempio, potresti concedi a un account di servizio il ruolo Amministratore Compute (roles/compute.admin) su progetto. L'account di servizio sarà quindi in grado di gestire Compute Engine di risorse in quel progetto.

Tuttavia, gli account di servizio sono anche risorse. Ciò significa che può concedere ad altre entità l'autorizzazione ad accedere all'account di servizio. Ad esempio, puoi concedere a un utente il ruolo Utente account di servizio (roles/iam.serviceAccountUser) in un account di servizio per consentirgli di collegare l'account di servizio alle risorse. In alternativa, puoi concedere a un utente il ruolo Amministratore account di servizio (roles/iam.serviceAccountAdmin) per consentirgli di eseguire operazioni come visualizzare, modificare, disattivare ed eliminare l'account di servizio.

Le sezioni seguenti spiegano come gestire gli account di servizio come entità e come risorse.

Account di servizio come entità

Poiché gli account di servizio sono entità, puoi consentire a un account di servizio di accedere alle risorse del tuo progetto concedendogli un ruolo, come faresti per qualsiasi altra entità. Ad esempio, se vuoi consentire all'account di servizio della tua applicazione di accedere agli oggetti in un bucket Cloud Storage, puoi concedere all'account di servizio il ruolo Visualizzatore oggetti Storage (roles/storage.objectViewer) sul bucket.

Come per tutti i tipi di entità, devi concedere all'account di servizio solo il set minimo di autorizzazioni necessarie per raggiungere il suo scopo.

Come per altre entità, puoi aggiungere account di servizio a un gruppo Google, quindi e concedere ruoli al gruppo. Tuttavia, l'aggiunta di account di servizio ai gruppi non è una migliore pratica. Gli account di servizio sono usati dalle applicazioni è probabile che ogni applicazione abbia i propri requisiti di accesso.

Per scoprire come concedere i ruoli alle entità, inclusi gli account di servizio, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Account di servizio come risorse

Gli account di servizio sono anche risorse che possono avere i propri criteri di autorizzazione. Come puoi consentire ad altre entità di accedere a un account di servizio concedendo loro una nell'account di servizio o in uno dei ruoli padre dell'account di servizio Google Cloud. Ad esempio, per consentire a un utente di simulare l'identità di un servizio di servizio, puoi concedere all'utente il ruolo Creatore token account di servizio (roles/iam.serviceAccountTokenCreator) nell'account di servizio.

Quando concedi un ruolo che consente a un utente di impersonare un account di servizio, mantieni ricorda che l'utente può accedere a tutte le risorse a cui può accedere l'account di servizio l'accesso. Fai attenzione quando consenti agli utenti di rubare l'identità di account di servizio con privilegi elevati, come gli account di servizio predefiniti di Compute Engine e App Engine.

Per saperne di più sui ruoli che puoi concedere alle entità negli account di servizio, consulta Autorizzazioni degli account di servizio.

Per scoprire come concedere a un'entità un ruolo in un account di servizio, consulta Gestire l'accesso agli account di servizio.

Ciclo di vita dell'account di servizio

Durante la gestione dei progetti, probabilmente creerai, gestirai ed eliminerai molti account di servizio diversi. Questa sezione descrive le considerazioni chiave per la gestione degli account di servizio nelle varie fasi del loro ciclo di vita.

Dove creare gli account di servizio

Ogni account di servizio si trova in un progetto. Una volta creato un account di servizio, non puoi più spostarlo in un altro progetto.

Esistono alcuni modi per organizzare gli account di servizio in progetti:

  • Crea account di servizio e risorse nello stesso progetto.

    Questo approccio semplifica l'utilizzo degli account di servizio. Tuttavia, puoi avere difficoltà a tenere traccia dei tuoi account di servizio se sono distribuiti su molti progetti.

  • Centralizza gli account di servizio in progetti separati.

    Con questo approccio tutti gli account di servizio della tua organizzazione di progetti ridotti, il che può semplificare la gestione gestire. Tuttavia, richiede una configurazione aggiuntiva di collegare account di servizio alle risorse di altri progetti, consente a queste risorse di usare l'account di servizio come identità.

    Quando un account di servizio si trova in un progetto e accede a una risorsa in un altro progetto, in genere devi abilitare l'API per quella risorsa in entrambi i progetti. Ad esempio, se hai un account di servizio nel progetto my-service-accounts e un'istanza Cloud SQL nel progetto my-application, devi attivare l'API Cloud SQL sia in my-service-accounts sia in my-application.

    Per impostazione predefinita, puoi creare fino a 100 account di servizio in un progetto. Se devi creare account di servizio aggiuntivi, richiedere un aumento della quota.

Per scoprire come creare un account di servizio, vedi Creare un servizio Google Cloud.

Impedire la creazione di account di servizio

Per controllare meglio dove vengono creati gli account di servizio, ti consigliamo di impedire la loro creazione in alcuni progetti della tua organizzazione.

Puoi impedire la creazione di account di servizio applicando il constraints/iam.disableServiceAccountCreation un vincolo dei criteri dell'organizzazione un progetto o una cartella.

Prima di applicare questa limitazione, tieni presente quanto segue:

Tieni traccia degli account di servizio

Con il passare del tempo, man mano che crei sempre più account di servizio, potresti perdere di vista quale account di servizio viene utilizzato per quale scopo.

Il nome visualizzato di un account di servizio è un buon modo per acquisire Informazioni sull'account di servizio, ad esempio lo scopo del servizio o una persona di contatto per l'account. Per i nuovi account di servizio, puoi: inserisci il nome visualizzato al momento della creazione dell'account di servizio. Per gli account esistenti gli account di servizio usano il metodo serviceAccounts.update() modificare il nome visualizzato.

Utilizzare gli account di servizio con Compute Engine

Per poter accedere, le istanze di Compute Engine devono essere eseguite come account di servizio ad altre risorse Google Cloud. Per contribuire a proteggere le tue istanze Compute Engine, tieni presente quanto segue:

  • Puoi creare istanze nello stesso progetto con account di servizio diversi. Per modificare l'account di servizio di un'istanza dopo la sua creazione, utilizza il metodo instances.setServiceAccount.

  • Per configurare l'autorizzazione per gli account di servizio collegati, devi: configurare gli ambiti di accesso, oltre a configurare i ruoli IAM.

  • Poiché le istanze dipendono dai rispettivi account di servizio alle risorse Google Cloud, evita di eliminare gli account di servizio quando ancora utilizzati dall'esecuzione delle istanze.

Per scoprire di più sull'utilizzo degli account di servizio con Compute Engine, consulta la sezione Account di servizio nella documentazione di Compute Engine.

Identificare gli account di servizio inutilizzati

Dopo un po' di tempo, potresti avere account di servizio nei tuoi progetti che per un uso più lungo.

Gli account di servizio inutilizzati rappresentano un rischio per la sicurezza non necessario, pertanto ti consigliamo di disattivare gli account di servizio inutilizzati, quindi di eliminarli quando hai la certezza di non averne più bisogno. Puoi utilizzare i seguenti metodi per identificare i servizi inutilizzati account:

Puoi anche utilizzare le metriche di utilizzo degli account di servizio per monitorare dell'account e dell'uso delle chiavi in generale.

Se sei un cliente di Security Command Center Premium, puoi utilizzare Event Threat Detection per ricevere una notifica quando un account servizio inattivo attiva un'azione. Gli account di servizio inattivi sono account di servizio che non sono stati utilizzati per più di 180 giorni. Dopo che un account di servizio non è più inattivo.

Elimina account di servizio

Prima di eliminare un account di servizio, disabilitalo per verifica che non sia necessario. Gli account di servizio disabilitati possono essere riattivati se sono ancora in uso.

Dopo aver confermato che non è necessario un account di servizio, puoi eliminare l'account di servizio.

Ricrea gli account di servizio eliminati

È possibile eliminare un account di servizio e creare un nuovo account di servizio con lo stesso nome.

Quando elimini un account di servizio, le relative associazioni di ruoli non vengono eliminate immediatamente. Le associazioni di ruoli elencano invece l'account di servizio con il prefisso deleted:. Per un esempio, consulta Criteri con principali eliminati.

Se crei un nuovo account di servizio con lo stesso nome di un account eliminato di recente l'account di servizio, le associazioni precedenti potrebbero esistere ancora; tuttavia, non applica al nuovo account di servizio anche se entrambi gli account hanno lo stesso indirizzo email . Questo comportamento si verifica perché agli account di servizio viene assegnato un ID univoco all'interno di Identity and Access Management (IAM) al momento della creazione. Internamente, tutte le associazioni di ruoli concessi utilizzando questi ID, non l'indirizzo email dell'account di servizio. Di conseguenza, le eventuali associazioni di ruoli esistenti per un account di servizio eliminato non si applicano a un nuovo account di servizio che utilizza lo stesso indirizzo email.

Analogamente, se colleghi un account di servizio a una risorsa, poi lo elimini e ne crei uno nuovo con lo stesso nome, il nuovo account di servizio non verrà collegato alla risorsa.

Per evitare questo comportamento imprevisto, ti consigliamo di utilizzare un nome nuovo e univoco per ogni service account. Inoltre, se elimini accidentalmente un account di servizio, puoi provare a annullare l'eliminazione dell'account di servizio anziché crearne uno nuovo.

Se non riesci a annullare l'eliminazione dell'account di servizio originale e devi creare un nuovo account di servizio con lo stesso nome e gli stessi ruoli, devi concedere i ruoli al nuovo account di servizio. Per maggiori dettagli, consulta Criteri con principali eliminati.

Se devi anche collegare il nuovo account di servizio alle stesse risorse dell'account di servizio originale, svolgi una delle seguenti operazioni:

Passaggi successivi

Provalo

Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $ di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.

Inizia gratuitamente