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 nell'account in modo programmatico a gestire i progetti. Puoi aggiornare, disattivare, abilitare ed eliminare questi account di servizio all'indirizzo a tua discrezione. Puoi anche gestire il traffico di altre entità l'accesso a questi servizi .

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 servizi gestiti dall'utente account in un progetto. Se questa quota non soddisfa le tue esigenze, puoi utilizzare 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 consentono al servizio di eseguire il deployment di job che accedono ad altre dell'accesso a specifiche 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 con 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 vedi Configurare le credenziali predefinite dell'applicazione.

A seconda della configurazione dei criteri dell'organizzazione, l'account di servizio predefinito potrebbe automaticamente il ruolo Editor 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 utilizza App Engine Service account predefinito di App Engine project-id@appspot.gserviceaccount.com
Compute Engine e qualsiasi servizio Google Cloud che Google 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 container, il servizio deve accedere a qualsiasi argomento Pub/Sub che 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 account di servizio agenti. 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 progetti, quindi non li vedrai quando la visualizzazione dei progetti account di servizio. Non puoi accedervi direttamente.

Per impostazione predefinita, gli agenti di servizio non sono elencati nella pagina IAM nella console Google Cloud, anche se dispone di un ruolo nel tuo progetto. A visualizzare le concessioni dei ruoli per gli agenti di servizio, seleziona Includi il ruolo fornito da Google delle concessioni.

Google Cloud include i 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 associate 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 dell'organizzazione.
  • Se l'agente di servizio è associato a una risorsa specifica del servizio, il relativo 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 con 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 processi interni di Google Cloud per tuo conto. Viene automaticamente assegnato il ruolo Editor (roles/editor) per il progetto.

Gestore ruoli per gli agenti di servizio

I tuoi audit log per IAM potrebbero fare riferimento al servizio l'account 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 creare un nuovo agente di servizio e assegnargli dei ruoli nel progetto. La concessione di questi ruoli genera una voce del 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 configurare questi agenti di servizio, consultare la documentazione per i risorsa.

Gli agenti di servizio associati a progetti, cartelle e organizzazioni vengono vengono create in base alle tue esigenze, in genere al primo utilizzo di un servizio. 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 Dataproc un cluster, l'agente di servizio Dataproc necessita dell'autorizzazione per creare istanze di Compute Engine nel progetto per 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 individuare gli agenti di servizio concessi ruoli, consulta il riferimento per l'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 vengono automaticamente. Questo perché agli agenti di servizio creati su richiesta di un utente non vengono concessi automaticamente i ruoli. Se non concedi il 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 il cui indirizzo email viene restituito quando attivi l'agente di servizio creazione di 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 i log di controllo di un agente di servizio, sia difficile stabilire chi fosse l'agente di servizio e perché.

Per aiutarti a comprendere il contesto delle azioni di un agente di servizio, alcuni agenti includono ulteriori dettagli negli audit log, come il job a cui è associata l'azione 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
  • ID job

Ad esempio, supponiamo che example-user@example.com crei un job utilizzando l'API BigQuery Connection. Questo job richiede che uno degli agenti di servizio dell'API BigQuery Connection esegua un'azione. In questo caso, il log di controllo per l'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