Tipi di account di servizio

Gli account di servizio possono essere suddivisi nelle seguenti categorie:

  • Account di servizio gestiti dall'utente, che crei e gestisci autonomamente
  • Agenti di servizio, creati e gestiti da Google Cloud

Questa pagina descrive come viene creato e utilizzato ogni tipo di account di servizio.

Account di servizio gestiti dall'utente

Gli account di servizio gestiti dall'utente sono account di servizio che crei nei tuoi progetti. Puoi aggiornare, disattivare, attivare ed eliminare questi account di servizio a tuo piacimento. Puoi anche gestire l'accesso di altri principali a questi account di servizio.

Puoi creare account di servizio gestiti dagli utenti nel tuo progetto utilizzando l'API IAM, la console Google Cloud o Google Cloud CLI.

Per impostazione predefinita, puoi creare fino a 100 account di servizio gestiti dall'utente in un progetto. Se questa quota non soddisfa le tue esigenze, puoi utilizzare la console Google Cloud per richiedere un aumento della quota. Solo gli account di servizio creati dall'utente vengono conteggiati ai fini di questa quota. Gli account di servizio predefiniti e gli agenti di servizio non vengono conteggiati ai fini della quota.

Quando crei un account di servizio gestito dall'utente nel tuo progetto, scegli un nome per l'account di servizio. Questo nome viene visualizzato nell'indirizzo email che identifica l'account di servizio, che utilizza il seguente formato:

service-account-name@project-id.iam.gserviceaccount.com

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

Account di servizio predefiniti

Gli account di servizio predefiniti sono account di servizio gestiti dall'utente che vengono creati automaticamente quando attivi o utilizzi determinati servizi Google Cloud. Questi account di servizio consentono al servizio di eseguire il deployment di job che accedono ad altre risorse Google Cloud. Sei responsabile della gestione degli account servizio predefiniti dopo la loro creazione.

Se la tua applicazione viene eseguita in un ambiente Google Cloud che ha un account di servizio predefinito, può utilizzare le credenziali dell'account di servizio predefinito per chiamare le API Google Cloud. In alternativa, puoi creare il tuo account di servizio gestito dall'utente e utilizzarlo per l'autenticazione. Per maggiori dettagli, consulta Configurare le credenziali predefinite dell'applicazione.

A seconda della configurazione dei criteri dell'organizzazione, all'account di servizio predefinito potrebbe essere assegnato automaticamente il ruolo Editor nel progetto. Ti consigliamo vivamente di disattivare la concessione automatica dei ruoli applicando il vincolo iam.automaticIamGrantsForDefaultServiceAccounts delle norme dell'organizzazione. Se hai creato la tua organizzazione dopo il 3 maggio 2024, questo vincolo viene applicato per impostazione predefinita.

Se disattivi la concessione automatica dei ruoli, devi decidere quali ruoli concedere agli account di servizio predefiniti, quindi concedere personalmente questi ruoli.

Se l'account di servizio predefinito ha già il ruolo Editor, ti consigliamo di sostituire il ruolo Editor con ruoli meno permissivi. Per modificare in sicurezza i ruoli dell'account di servizio, utilizza Policy Simulator per vedere l'impatto della modifica, quindi concedi e revoca i ruoli appropriati.

Nella tabella seguente sono elencati i servizi che creano account di servizio predefiniti:

Servizio Nome account di servizio Indirizzo email
App Engine e qualsiasi servizio Google Cloud che utilizzi App Engine Service account predefinito di App Engine project-id@appspot.gserviceaccount.com
Compute Engine e qualsiasi servizio Google Cloud che utilizza Compute Engine Account di servizio predefinito Compute Engine project-number-compute@developer.gserviceaccount.com

Agenti di servizio

Alcuni servizi Google Cloud devono accedere alle tue risorse per poteragire per tuo conto. Ad esempio, quando utilizzi Cloud Run per eseguire un container, il servizio deve accedere a qualsiasi argomento Pub/Sub che possa attivare il container.

Per soddisfare questa esigenza, Google Cloud crea e gestisce account di servizio per molti servizi Google Cloud. Questi account di servizio sono noti come agenti di servizio. Potresti visualizzare gli agenti di servizio nel criterio di autorizzazione del progetto, nei log di controllo o nella pagina IAM della console Google Cloud.

Gli agenti di servizio non vengono creati nei tuoi progetti, pertanto non li vedrai quando visualizzi gli account di servizio dei tuoi progetti. Non puoi accedervi direttamente.

Per impostazione predefinita, gli agenti di servizio non sono elencati nella pagina IAM della console Google Cloud, anche se è stato loro concesso un ruolo nel progetto. Per visualizzare le concessioni di ruoli per gli agenti di servizio, seleziona la casella di controllo Includi concessioni di ruoli fornite da Google.

Google Cloud dispone dei seguenti tipi di agenti di servizio:

Agenti di servizio specifici per il servizio

La maggior parte degli agenti di servizio è specifica per servizio: agisce per conto di singoli servizi. In molti casi, questi agenti di servizio sono necessari per il corretto funzionamento dei servizi. Ad esempio, sono gli agenti di servizio che consentono ai sink di Cloud Logging di scrivere i log nei bucket Cloud Storage.

Ogni agente di servizio è associato a una risorsa. In genere, questa risorsa è un progetto, una cartella o un'organizzazione, anche se può essere anche una risorsa specifica per un servizio, ad esempio un'istanza Cloud SQL. Questa risorsa definisce l'ambito delle azioni dell'agente di servizio. Ad esempio, se un agente di servizio è associato a un progetto, agirà per conto di un servizio per il progetto e le relative risorse discendenti.

Puoi determinare a quale tipo di risorsa è associato un agente di servizio esaminando il relativo indirizzo email:

  • Se l'agente di servizio è associato a un progetto, a una cartella o a un'organizzazione, il suo indirizzo email contiene l'ID numerico del progetto, della cartella o dell'organizzazione.
  • Se l'agente di servizio è associato a una risorsa specifica per il servizio, il suo indirizzo email contiene un ID progetto numerico e un identificatore univoco. L'ID progetto numerico indica a quale progetto appartiene la risorsa a cui è associato l'agente di servizio. L'identificatore univoco distingue l'agente di servizio da altri agenti di servizio simili nello stesso progetto.

Agente di servizio API di Google

È probabile che il criterio di autorizzazione del progetto faccia riferimento a un account di servizio denominato Agente di servizio API di Google, con un indirizzo email che utilizza il seguente formato:project-number@cloudservices.gserviceaccount.com.

Questo account di servizio esegue i processi interni di Google Cloud per tuo conto. Viene automaticamente concesso il ruolo Editor (roles/editor) sul progetto.

Gestore dei ruoli per gli agenti di servizio

I log di controllo per IAM potrebbero fare riferimento all'account di servizio service-agent-manager@system.gserviceaccount.com.

Questo account di servizio gestisce i ruoli concessi ad altri agenti di servizio. È visibile solo negli audit log.

Ad esempio, se utilizzi una nuova API, Google Cloud potrebbe creare automaticamente un nuovo agente di servizio e concedergli i ruoli nel tuo progetto. La concessione di questi ruoli genera una voce di log di controllo che mostra che service-agent-manager@system.gserviceaccount.com ha impostato il criterio di autorizzazione per il progetto.

Creazione dell'agente di servizio

Il momento esatto in cui viene creato un agente di servizio dipende dal tipo di risorsa a cui è associato.

Gli agenti di servizio associati a una risorsa specifica del servizio vengono creati quando crei la risorsa. Per ulteriori informazioni su come identificare e configurare questi agenti di servizio, consulta la documentazione della risorsa associata.

Gli agenti di servizio associati a progetti, cartelle e organizzazioni vengono creati in base alle tue esigenze, in genere quando utilizzi un servizio per la prima volta. Se necessario, puoi anche chiedere a Google Cloud di creare agenti di servizio per un servizio prima di utilizzarlo. Per ulteriori informazioni, vedi Creare e concedere ruoli agli agenti di servizio.

Ruoli di agente di servizio

Alcune azioni in Google Cloud richiedono agli agenti di servizio di creare e accedere alle risorse per tuo conto. Ad esempio, quando crei un cluster Dataproc, l'agente di servizio Dataproc deve disporre dell'autorizzazione per creare istanze Compute Engine nel tuo progetto al fine di creare il cluster.

Per ottenere questo accesso, gli agenti di servizio devono disporre di ruoli IAM specifici. A molti agenti di servizio a livello di progetto vengono concessi automaticamente i ruoli di cui hanno bisogno. I nomi di questi ruoli concessi automaticamente terminano in genere con serviceAgent o ServiceAgent. Per gli altri agenti di servizio, devi concedere i ruoli in modo che il servizio funzioni correttamente. Per scoprire a quali agenti di servizio vengono assegnati automaticamente i ruoli, consulta la documentazione di riferimento sull'agente di servizio.

Se chiedi a Google Cloud di creare agenti di servizio prima di utilizzare un servizio, devi concedere agli agenti di servizio i ruoli che in genere vengono concessi automaticamente. Questo perché agli agenti di servizio creati su richiesta di un utente non vengono concessi automaticamente i ruoli. Se non concedi questi ruoli agli agenti di servizio, alcuni servizi potrebbero non funzionare correttamente. Per scoprire come assegnare questi ruoli agli agenti di servizio, consulta Creare e assegnare ruoli agli agenti di servizio.

Agenti di servizio principali

Nel riferimento all'agente di servizio, alcuni agenti di servizio sono identificati come agenti di servizio principali. Gli agenti di servizio principali sono agenti di servizio il cui indirizzo email viene restituito quando attivi la creazione di agenti di servizio per un servizio.

Audit logging

A volte, quando un principale avvia un'operazione, un agente di servizio esegue un'azione per suo conto. Tuttavia, quando esamini gli audit log di un agente di servizio, può essere difficile capire per conto di chi agiva l'agente di servizio e perché.

Per aiutarti a comprendere il contesto delle azioni di un agente di servizio, alcuni agenti di servizio includono dettagli aggiuntivi nei log di controllo, ad esempio il job a cui è associata l'azione e l'entità che ha creato il job.

I seguenti agenti di servizio includono questi dettagli aggiuntivi nei loro log di controllo:

Questi dettagli aggiuntivi si trovano nel campo serviceDelegationHistory del log di controllo, che è nidificato nel campo authenticationInfo. Questo campo contiene le seguenti informazioni:

  • L'amministratore originale che ha creato il job
  • L'agente di servizio che ha eseguito l'azione
  • Il servizio a cui appartiene l'agente di servizio
  • L'ID job

Ad esempio, supponiamo che example-user@example.com crei un job utilizzando l'API BigQuery Connection. Questo job richiede uno degli agenti di servizio dell'API BigQuery Connection per eseguire un'azione. In questo caso, il log di controllo dell'azione dell'agente di servizio conterrà un campo serviceDelegationHistory simile al seguente:

{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "authenticationInfo": {
      "principalEmail": "bqcx-442188550395-jujw@gcp-sa-bigquery-condel.iam.gserviceaccount.com",
      "serviceDelegationHistory": {
        "originalPrincipal": "user:my-user@example.com",
        "serviceMetadata": [
          {
            "principalSubject": "serviceAccount:bqcx-442188550395-jujw@gcp-sa-bigquery-condel.iam.gserviceaccount.com",
            "serviceDomain": "bigquery.googleapis.com",
          }
        ]
      }
    }
  }
}

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