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 tutti e le risorse a cui l'account di servizio è autorizzato ad accedere.

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. Quindi, puoi concedere all'account di servizio ruoli IAM per consentire all'account di servizio e, di conseguenza, di accesso alle risorse di Google Cloud nell'istanza.

Esistono altri modi per consentire alle applicazioni di eseguire l'autenticazione come account di servizio oltre al collegamento di 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 scoprire 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 autenticarsi come account di servizio. Per maggiori informazioni, consulta Account di servizio impersonificazione 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 gestisci. 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 e che consentono ai servizi di accedere alle risorse per conto tuo.

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 di una chiave dell'account di servizio per firmare un token web JSON (JWT) e scambiarlo per un token di accesso. Perché le chiavi degli account di servizio comportano un rischio per la sicurezza, se non lo sono gestite correttamente, dovresti scegliere un'alternativa più sicura alle chiavi degli account di servizio ove possibile.

Per scoprire di più sull'autenticazione dell'account di servizio, consulta Account di servizio credenziali.

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 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, ad esempio documenti o eventi, con l'intero dominio Google Workspace, 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. Come gli amministratori di Google Workspace e Cloud Identity non possono possedere e gestire questi asset.

Autorizzazioni account di servizio

Gli account di servizio sono principali. Ciò significa che puoi concedere agli account di servizio 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) su un account di servizio per consentire all'utente di collegarsi questo account di servizio alle risorse. In alternativa, puoi concedere a un utente il servizio Ruolo di amministratore account (roles/iam.serviceAccountAdmin) per consentire all'utente di eseguire operazioni come visualizzare, modificare, disabilitare ed eliminare l'account di servizio.

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

Account di servizio come entità

Poiché gli account di servizio sono entità, puoi consentire a un account di servizio di accedere risorse del tuo progetto assegnandogli un ruolo, proprio come faresti per qualsiasi un'altra entità. Ad esempio, se vuoi consentire al servizio della tua applicazione di accesso all'account in un bucket Cloud Storage, puoi concedere il ruolo Visualizzatore oggetti Storage (roles/storage.objectViewer) in di sincronizzare la directory di una VM con un bucket.

Come per tutti i tipi di entità, devi assegnare all'account di servizio solo insieme minimo di autorizzazioni necessarie per raggiungere l'obiettivo.

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 è best practice. Gli account di servizio vengono utilizzati dalle applicazioni e ogni applicazione ha probabilmente 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 criteri di autorizzazione propri. 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 simulare l'identità di un account di servizio, tieni presente che l'utente può accedere a tutte le risorse a cui può accedere l'account di servizio. Presta attenzione quando consenti agli utenti di impersonare un servizio con privilegi elevati di archiviazione, come Compute Engine e Account di servizio predefiniti di 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 su un account di servizio, consulta Gestire l'accesso agli account di servizio.

Ciclo di vita dell'account di servizio

Man mano che gestisci i tuoi progetti, probabilmente creerai, gestirai ed eliminerai molte diversi account di servizio. 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. Dopo aver creato un servizio non puoi spostarlo in un altro progetto.

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

  • Crea account di servizio e risorse nello stesso progetto.

    Questo approccio semplifica l'utilizzo dei service account. 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 se colleghi gli account di servizio alle risorse in altri progetti, il che consente a queste risorse di utilizzare l'account di servizio come identità.

    Quando un account di servizio si trova in un progetto e accede a una risorsa in in un altro progetto, di solito devi abilitare l'API per quel progetto in entrambi i progetti. Ad esempio, se disponi di un account di servizio nella progetto my-service-accounts e un'istanza Cloud SQL nel progetto my-application, devi abilitare l'API Cloud SQL in entrambi my-service-accounts e 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.

Impedisci la creazione di account di servizio

Per controllare meglio dove vengono creati gli account di servizio, potresti voler impedire la creazione di account di servizio 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 questo vincolo, considera le seguenti limitazioni:

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 servizi diversi . Per modificare l'account di servizio di un'istanza dopo la 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 utilizzate dall'esecuzione delle istanze.

Per saperne di più sull'utilizzo degli account di servizio con Compute Engine, consulta Account di servizio in Compute Engine documentazione.

Identificare gli account di servizio inutilizzati

Dopo un po' di tempo, potresti avere nei tuoi progetti account di servizio che non utilizzi più.

Gli account di servizio inutilizzati creano un rischio per la sicurezza inutile, quindi consigliamo disabilitando gli account di servizio inutilizzati: eliminando gli account di servizio quando hai la certezza che ne hanno 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 Security Command Center Premium, puoi utilizzare Event Threat Detection per ricevere una notifica quando un account di servizio inattivo attiva un'azione. Gli account di servizio inattivi sono account di servizio che sono stati inattivo 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 crearne uno nuovo con lo stesso nome.

Quando elimini un account di servizio, le associazioni dei relativi ruoli non vengono immediatamente eliminati. Le associazioni dei ruoli elencano invece l'account di servizio con il prefisso deleted:. Per un esempio, vedi Criteri con entità eliminate.

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 in 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. Pertanto, qualsiasi le associazioni di ruoli esistenti per un account di servizio eliminato non si applicano ai nuovi che utilizza lo stesso indirizzo email.

Analogamente, se collegare un account di servizio a una risorsa, eliminare l'account di servizio e crearne uno nuovo con lo stesso nome, il nuovo account di servizio non verrà collegato alla risorsa.

Per evitare questo comportamento imprevisto, valuta l'utilizzo di un nuovo nome univoco per ogni l'account di servizio. Inoltre, se elimini accidentalmente un account di servizio, puoi provare di annullare l'eliminazione dell'account di servizio anziché crearne uno nuovo .

Se non riesci ad 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 ruoli al nuovo account di servizio. Per maggiori dettagli, vedi Criteri con entità eliminate.

Se hai bisogno anche del nuovo account di servizio da collegare alle stesse risorse come account di servizio originale, effettua 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