Gli account di servizio possono essere suddivisi nelle seguenti categorie:
- Service account gestiti dall'utente, che crei e gestisci autonomamente
- Agenti di servizio, che Google Cloud creano e gestiscono
In questa pagina viene descritto 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, disabilitare, attivare ed eliminare questi service account a tua discrezione. Puoi anche gestire l'accesso di altri principal a questi service account.
Puoi creare service account 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 consoleGoogle Cloud per richiedere un aggiustamento della quota. Ai fini di questa quota vengono conteggiati solo gli account di servizio creati dall'utente. 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 il account di servizio. Questo nome viene visualizzato nell'indirizzo email che identifica ilaccount di serviziot, che utilizza il seguente formato:
service-account-name@project-id.iam.gserviceaccount.com
Per scoprire come creare un account di servizio, vedi Creare service account.
Service account predefiniti
I service account predefiniti sono service account gestiti dall'utente che vengono creati automaticamente quando abiliti o utilizzi determinati servizi Google Cloud . Questi service account consentono al servizio di eseguire il deployment di job che accedono ad altre risorseGoogle Cloud . Sei responsabile della gestione degli account di 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 un 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 della policy dell'organizzazione, al account di servizio predefinito potrebbe
essere concesso automaticamente il ruolo Editor nel tuo
progetto. Ti consigliamo vivamente di disattivare la concessione automatica dei ruoli
applicando il vincolo iam.automaticIamGrantsForDefaultServiceAccounts
del criterio 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 e poi concederli personalmente.
Se l'account di servizio predefinito dispone già del ruolo Editor, ti consigliamo di sostituirlo con ruoli meno permissivi.Per modificare in modo sicuro i ruoli dell'account di servizio, utilizza Policy Simulator per visualizzare l'impatto della modifica, quindi concedi e revoca i ruoli appropriati.
La tabella seguente elenca i servizi che creano service account 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 che utilizza Compute Engine Google Cloud | Account di servizio predefinito Compute Engine |
project-number-compute@developer.gserviceaccount.com
|
Agenti di servizio
Alcuni servizi Google Cloud hanno bisogno di accedere alle tue risorse per poter agire per tuo conto. Ad esempio, quando utilizzi Cloud Run per eseguire un container, il servizio deve accedere a tutti gli argomenti Pub/Sub che possono attivare il container.
Per soddisfare questa esigenza, Google Cloud crea e gestisce gli account di servizio per molti servizi Google Cloud . Questi service account sono noti come agenti di servizio. Potresti visualizzare gli agenti di servizio nella policy di autorizzazione del tuo progetto, nei log di audit o nella pagina IAM della console Google Cloud . Per un elenco completo degli agenti di servizio, vedi Agenti di servizio.
Gli agenti di servizio non vengono creati nei tuoi progetti, quindi 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 consoleGoogle Cloud , anche se è stato concesso loro un ruolo nel tuo 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
- Agente di servizio API di Google
- Gestore dei ruoli per gli agenti di servizio
Agenti di servizio specifici per il servizio
La maggior parte degli agenti di servizio sono specifici per il servizio, ovvero agiscono per conto di singoli servizi. In molti casi, questi agenti di servizio sono necessari per il corretto funzionamento dei servizi. Ad esempio, gli agenti di servizio consentono ai sink Cloud Logging di scrivere i log nei bucket Cloud Storage.
Ogni agente di servizio è associato a una risorsa. Questa risorsa è in genere un progetto, una cartella o un'organizzazione, anche se può essere anche una risorsa specifica del servizio, ad esempio un'istanza Cloud SQL. Questa risorsa definisce l'ambito delle azioni dell'agente di servizio. Ad esempio, se un service agent è 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 suo indirizzo email:
- Se l'agente di servizio è associato a un progetto, una cartella o 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 del servizio, il suo indirizzo email contiene un ID progetto numerico e un identificatore univoco. L'ID progetto numerico indica il progetto proprietario della 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 la policy di autorizzazione del tuo progetto faccia riferimento a un account di servizio denominato
agente di servizio delle 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.
A questo account viene automaticamente concesso il ruolo Editor (roles/editor
) sul progetto.
Gestione dei ruoli per gli agenti di servizio
I log di controllo per IAM potrebbero fare riferimento al service account service-agent-manager@system.gserviceaccount.com
.
Questo account di servizio gestisce i ruoli concessi ad altri agenti di servizio. È visibile solo nei log di controllo.
Ad esempio, se utilizzi una nuova API, Google Cloud potrebbe creare automaticamente
un nuovo service agent e concedergli ruoli nel tuo progetto. La concessione di questi ruoli
genera unavoce di logg di controllo, che mostra che service-agent-manager@system.gserviceaccount.com
ha impostato
la policy di autorizzazione per il progetto.
Creazione dell'agente di servizio
L'ora esatta 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 saperne di più 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 service agent per un servizio prima di utilizzarlo. Per saperne di più, vedi Creare e concedere ruoli agli agenti di servizio.
Ruoli IAM per gli agenti 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 ha bisogno dell'autorizzazione per creare istanze Compute Engine nel tuo progetto per creare il cluster.
Per ottenere questo accesso, gli agenti di servizio hanno bisogno 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 in genere terminano con serviceAgent
o ServiceAgent
. Per gli altri agenti di servizio, devi concedere loro i ruoli in modo che il servizio funzioni correttamente. Per scoprire a quali service agent vengono concessi
ruoli automaticamente, consulta il riferimento al service agent.
Se devi negare determinate autorizzazioni a insiemi di entità che includono
agenti di servizio, ad esempio l'insieme di entità
principalSet://goog/public:all
, ti consigliamo di aggiungere gli agenti di servizio
come eccezioni nella regola di negazione. Ciò consente di garantire che i tuoi servizi
continuino a funzionare correttamente. Quando aggiungi agenti di servizio come eccezioni, utilizza il set di entità agente di servizio del progetto, della cartella o dell'organizzazione.
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 ruoli. Se non concedi questi ruoli agli agenti di servizio, alcuni servizi potrebbero non funzionare correttamente. Per scoprire come concedere questi ruoli agli agenti di servizio, consulta Creare e concedere 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.
Log di controllo dell'agente di servizio
A volte, quando un principal avvia un'operazione, un agente di servizio esegue un'azione per conto del principal. Tuttavia, quando esamini i log di controllo per 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, come 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 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:
- Il preside originale che ha creato il lavoro
- 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 a uno degli agenti di servizio dell'API BigQuery Connection di eseguire un'azione. In questo caso, l'audit log dell'azione dell'agente del 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
- Scopri come creare e gestire i service account.
- Scopri come creare e gestire le account di servizio account.
- Scopri le best practice per lavorare con gli account di servizio.
- Consulta le best practice per la gestione delle chiavi degli account di servizio.
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