Questa pagina spiega come creare e gestire gli account di servizio utilizzando l'API Identity and Access Management (IAM), la console Google Cloud e lo strumento a riga di comando gcloud
.
Per impostazione predefinita, ogni progetto può avere fino a 100 account di servizio che controllano l'accesso alle risorse. Se necessario, puoi richiedere un aumento della quota. Scopri di più su quote e limiti.
Prima di iniziare
Attiva IAM API.
Comprendere gli account di servizio IAM
Installa Google Cloud CLI
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per gestire gli account di servizio, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto:
-
Per visualizzare gli account di servizio e i relativi metadati:
Visualizza gli account di servizio (
roles/iam.serviceAccountViewer
) -
Per visualizzare e creare account di servizio:
Crea account di servizio (
roles/iam.serviceAccountCreator
) -
Per visualizzare ed eliminare gli account di servizio:
Elimina gli account di servizio (
roles/iam.serviceAccountDeleter
) -
Per gestire completamente (visualizzare, creare, aggiornare, disabilitare, abilitare, eliminare, annullare l'eliminazione e gestire l'accesso) gli account di servizio:
Amministratore account di servizio (
roles/iam.serviceAccountAdmin
)
Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestire l'accesso.
Per saperne di più su questi ruoli, consulta Ruoli account di servizio.
I ruoli IAM di base contengono anche le autorizzazioni per gestire gli account di servizio. Non devi concedere ruoli di base in un ambiente di produzione, ma puoi farlo in un ambiente di sviluppo o test.
Creazione di un account di servizio
Quando crei un account di servizio, devi fornire un ID alfanumerico (SA_NAME
negli esempi riportati di seguito), ad esempio my-service-account
. L'ID deve essere compreso tra 6 e 30 caratteri e può contenere caratteri alfanumerici minuscoli e trattini. Dopo aver creato un account di servizio, non puoi modificarne il nome.
Il nome dell'account di servizio viene visualizzato nell'indirizzo email di cui è stato eseguito il provisioning
durante la creazione, nel formato
SA_NAME@PROJECT_ID.iam.gserviceaccount.com
.
Ogni account di servizio ha anche un ID numerico univoco permanente, che viene generato automaticamente.
Quando crei un account di servizio, fornisci anche le seguenti informazioni:
SA_DESCRIPTION
è una descrizione facoltativa per l'account di servizio.SA_DISPLAY_NAME
è un nome intuitivo per l'account di servizio.PROJECT_ID
è l'ID del tuo progetto Google Cloud.
Dopo aver creato un account di servizio, potrebbe essere necessario attendere almeno 60 secondi prima di utilizzare l'account di servizio. Questo comportamento si verifica perché le operazioni di lettura alla fine sono coerenti; può essere necessario attendere un po' di tempo prima che il nuovo account di servizio diventi visibile. Se provi a leggere o utilizzare un account di servizio subito dopo averlo creato e ricevi un errore, puoi riprovare la richiesta con backoff esponenziale.
Console
- Nella console Google Cloud, vai alla pagina Crea account di servizio.
Vai a Crea account di servizio
I passaggi rimanenti verranno visualizzati automaticamente nella console Google Cloud. - Seleziona un progetto Cloud.
- Inserisci il nome di un account di servizio da visualizzare in Google Cloud Console.
La console Google Cloud genera un ID account di servizio in base a questo nome. Modifica l'ID, se necessario. Non potrai modificare l'ID in un secondo momento.
- (Facoltativo) Inserisci una descrizione dell'account di servizio.
- Se non vuoi impostare i controlli dell'accesso, fai clic su Fine per completare la creazione dell'account di servizio. Per impostare i controlli dell'accesso ora, fai clic su Crea e continua e vai al passaggio successivo.
- (Facoltativo) Scegli uno o più ruoli IAM da concedere all'account di servizio nel progetto.
- Quando hai finito di aggiungere i ruoli, fai clic su Continua.
- (Facoltativo) Nel campo Ruolo degli utenti dell'account di servizio, aggiungi i membri che possono rubare l'identità all'account di servizio.
- (Facoltativo) Nel campo Ruolo degli amministratori dell'account di servizio, aggiungi i membri che possono gestire l'account di servizio.
- Fai clic su Fine per completare la creazione dell'account di servizio.
gcloud CLI
Per creare l'account di servizio, esegui il comando
gcloud iam service-accounts create
:gcloud iam service-accounts create SA_NAME \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME"
Sostituisci i seguenti valori:
SA_NAME
: nome dell'account di servizioDESCRIPTION
: una descrizione facoltativa dell'account di servizioDISPLAY_NAME
: il nome di un account di servizio da visualizzare nella console Google Cloud
(Facoltativo) Per concedere al tuo account di servizio un ruolo IAM sul progetto, esegui il comando
gcloud projects add-iam-policy-binding
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SA_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role="ROLE_NAME"
Sostituisci i seguenti valori:
PROJECT_ID
: l'ID progettoSA_NAME
: nome dell'account di servizioROLE_NAME
: un nome di ruolo, ad esempioroles/compute.osLogin
(Facoltativo) Per consentire agli utenti di rubare l'identità dell'account di servizio, esegui il comando
gcloud iam service-accounts add-iam-policy-binding
per concedere a un utente il ruolo Utente account di servizio (roles/iam.serviceAccountUser
) nell'account di servizio:gcloud iam service-accounts add-iam-policy-binding \ SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountUser"
Sostituisci i seguenti valori:
PROJECT_ID
: l'ID progettoSA_NAME
: nome dell'account di servizioUSER_EMAIL
: l'indirizzo email dell'utente.
REST
Il metodo
serviceAccounts.create
crea un account di servizio.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: il tuo ID progetto Google Cloud. Gli ID progetto sono stringhe alfanumeriche comemy-project
.SA_NAME
: l'ID alfanumerico del tuo account di servizio. Questo nome deve essere compreso tra 6 e 30 caratteri e può contenere caratteri alfanumerici minuscoli e trattini.SA_DESCRIPTION
: facoltativo. Una descrizione dell'account di servizio.SA_DISPLAY_NAME
: un nome leggibile per l'account di servizio.
Metodo e URL HTTP:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts
Testo JSON richiesta:
{ "accountId": "SA_NAME", "serviceAccount": { "description": "SA_DESCRIPTION", "displayName": "SA_DISPLAY_NAME" } }
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com", "projectId": "my-project", "uniqueId": "123456789012345678901", "email": "my-service-account@my-project.iam.gserviceaccount.com", "displayName": "My service account", "etag": "BwUp3rVlzes=", "description": "A service account for running jobs in my project", "oauth2ClientId": "987654321098765432109" }
C++
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C++.
C#
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C#.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Go.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Dopo aver creato un account di servizio, concedi uno o più ruoli all'account di servizio in modo che possa agire per tuo conto.
Inoltre, se l'account di servizio deve accedere alle risorse in altri progetti, solitamente devi abilitare le API per quelle risorse nel progetto in cui hai creato l'account di servizio.
Elenco degli account di servizio
Puoi elencare gli account di servizio gestiti dall'utente in un progetto per aiutarti a controllare gli account e le chiavi di servizio oppure come parte di uno strumento personalizzato per la gestione degli account di servizio.
Non puoi elencare gli agenti di servizio o altri account di servizio gestiti da Google che potrebbero comparire nei log di controllo e dei criteri di autorizzazione del progetto. Gli account di servizio gestiti da Google non si trovano nel progetto e non puoi accedervi direttamente.
Console
Nella console Google Cloud, vai alla pagina Account di servizio.
Seleziona un progetto.
La pagina Account di servizio elenca tutti gli account di servizio gestiti dall'utente nel progetto selezionato.
gcloud CLI
Eseguire il comando gcloud iam service-accounts list
per elencare tutti gli account di servizio gestiti dall'utente in un progetto.
Comando:
gcloud iam service-accounts list
L'output è l'elenco di tutti gli account di servizio gestiti dall'utente nel progetto:
NAME EMAIL SA_DISPLAY_NAME_1 SA_NAME_1@PROJECT_ID.iam.gserviceaccount.com SA_DISPLAY_NAME_2 SA_NAME_2@PROJECT_ID.iam.gserviceaccount.com
REST
Il metodo
serviceAccounts.list
elenca ogni account di servizio gestito dall'utente nel tuo progetto.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: il tuo ID progetto Google Cloud. Gli ID progetto sono stringhe alfanumeriche comemy-project
.
Metodo e URL HTTP:
GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "accounts": [ { "name": "projects/my-project/serviceAccounts/sa-1@my-project.iam.gserviceaccount.com", "projectId": "my-project", "uniqueId": "123456789012345678901", "email": "sa-1@my-project.iam.gserviceaccount.com", "description": "My first service account", "displayName": "Service account 1", "etag": "BwUpTsLVUkQ=", "oauth2ClientId": "987654321098765432109" }, { "name": "projects/my-project/serviceAccounts/sa-2@my-project.iam.gserviceaccount.com", "projectId": "my-project", "uniqueId": "234567890123456789012", "email": "sa-2@my-project.iam.gserviceaccount.com", "description": "My second service account", "displayName": "Service account 2", "etag": "UkQpTwBVUsL=", "oauth2ClientId": "876543210987654321098" } ] }
C++
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C++.
C#
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C#.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Go.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Aggiornamento di un account di servizio
Il nome visualizzato (nome semplice) e la descrizione di un account di servizio vengono comunemente utilizzati per acquisire ulteriori informazioni sull'account di servizio, ad esempio lo scopo dell'account di servizio o una persona di contatto per l'account.
Console
Nella console Google Cloud, vai alla pagina Account di servizio.
Seleziona un progetto.
Fai clic sull'indirizzo email dell'account di servizio che vuoi rinominare.
Inserisci il nuovo nome nella casella Nome, quindi fai clic su Salva.
gcloud CLI
Esegui il comando gcloud iam service-accounts update
per aggiornare un account di servizio.
Comando:
gcloud iam service-accounts update \ SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --description="UPDATED_SA_DESCRIPTION" \ --display-name="UPDATED_DISPLAY_NAME"
L'output è l'account di servizio rinominato:
description: UPDATED_SA_DESCRIPTION displayName: UPDATED_DISPLAY_NAME name: projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com
REST
Il metodo
serviceAccounts.patch
aggiorna un account di servizio.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: il tuo ID progetto Google Cloud. Gli ID progetto sono stringhe alfanumeriche comemy-project
.SA_ID
: l'ID del tuo account di servizio. Può essere l'indirizzo email dell'account di servizio nel moduloSA_NAME@PROJECT_ID.iam.gserviceaccount.com
o l'ID numerico univoco dell'account di servizio.SA_NAME
: l'ID alfanumerico del tuo account di servizio. Questo nome deve essere compreso tra 6 e 30 caratteri e può contenere caratteri alfanumerici minuscoli e trattini.- Sostituisci almeno una delle seguenti opzioni:
UPDATED_DISPLAY_NAME
: un nuovo nome visualizzato per il tuo account di servizio.UPDATED_DESCRIPTION
: una nuova descrizione per il tuo account di servizio.
Metodo e URL HTTP:
PATCH https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID
Testo JSON richiesta:
{ "serviceAccount": { "email": "SA_NAME@PROJECT_ID.iam.gserviceaccount.com", "displayName": "UPDATED_DISPLAY_NAME", "description": "UPDATED_DESCRIPTION" }, "updateMask": "displayName,description" }
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com", "displayName": "My updated service account", "description": "An updated description of my service account" }
C++
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C++.
C#
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C#.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Go.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Disattivazione di un account di servizio
Analogamente a quanto accade per l'eliminazione di un account di servizio, quando disattivi un account di servizio le applicazioni non avranno più accesso alle risorse Google Cloud tramite tale account di servizio. Se disabiliti gli account di servizio predefiniti di App Engine e Compute Engine, le istanze non avranno più accesso alle risorse del progetto. Il tentativo di disabilitare un account di servizio già disattivato non avrà alcun effetto.
A differenza dell'eliminazione di un account di servizio, gli account di servizio disattivati possono essere facilmente riattivati secondo necessità. Ti consigliamo di disattivarlo prima di eliminarlo, per assicurarti che nessuna applicazione critica stia utilizzando l'account di servizio.
Console
Nella console Google Cloud, vai alla pagina Account di servizio.
Seleziona un progetto.
Fai clic sul nome dell'account di servizio che vuoi disattivare.
In Stato account di servizio, fai clic su Disattiva account di servizio, quindi su Disattiva per confermare la modifica.
gcloud CLI
Esegui il comando gcloud iam service-accounts disable
per disabilitare un account di servizio.
Comando:
gcloud iam service-accounts disable SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Output:
Disabled service account SA_NAME@PROJECT_ID.iam.gserviceaccount.com
REST
Il metodo
serviceAccounts.disable
disattiva immediatamente un account di servizio.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: il tuo ID progetto Google Cloud. Gli ID progetto sono stringhe alfanumeriche comemy-project
.SA_ID
: l'ID del tuo account di servizio. Può essere l'indirizzo email dell'account di servizio nel moduloSA_NAME@PROJECT_ID.iam.gserviceaccount.com
o l'ID numerico univoco dell'account di servizio.
Metodo e URL HTTP:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID:disable
Per inviare la richiesta, espandi una delle seguenti opzioni:
Se l'operazione ha esito positivo, il corpo della risposta sarà vuoto.
C++
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C++.
C#
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C#.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Go.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Attivazione di un account di servizio
Dopo aver abilitato un account di servizio disattivato, le applicazioni potranno accedere nuovamente alle risorse di Google Cloud tramite tale account di servizio.
Puoi attivare un account di servizio disattivato ogni volta che ne hai bisogno. L'attivazione di un account di servizio già attivato non avrà alcun effetto.
Console
Nella console Google Cloud, vai alla pagina Account di servizio.
Seleziona un progetto.
Fai clic sul nome dell'account di servizio che vuoi abilitare.
In Stato account di servizio, fai clic su Abilita account di servizio, quindi fai clic su Attiva per confermare la modifica.
gcloud CLI
Esegui il comando gcloud iam service-accounts enable
per abilitare un account di servizio.
Comando:
gcloud iam service-accounts enable SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Output:
Enabled service account SA_NAME@PROJECT_ID.iam.gserviceaccount.com
REST
Il metodo
serviceAccounts.enable
consente di disabilitare un account di servizio disattivato in precedenza.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: il tuo ID progetto Google Cloud. Gli ID progetto sono stringhe alfanumeriche comemy-project
.SA_ID
: l'ID del tuo account di servizio. Può essere l'indirizzo email dell'account di servizio nel moduloSA_NAME@PROJECT_ID.iam.gserviceaccount.com
o l'ID numerico univoco dell'account di servizio.
Metodo e URL HTTP:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID:enable
Per inviare la richiesta, espandi una delle seguenti opzioni:
Se l'operazione ha esito positivo, il corpo della risposta sarà vuoto.
C++
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C++.
C#
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C#.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Go.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Eliminare un account di servizio
Quando elimini un account di servizio, le applicazioni non avranno più accesso alle risorse Google Cloud tramite quell'account di servizio. Se elimini gli account di servizio predefiniti di App Engine e Compute Engine, le istanze non avranno più accesso alle risorse del progetto.
Elimina con cautela; assicurati che le applicazioni critiche non utilizzino più un account di servizio prima di eliminarlo. Se non hai la certezza che sia in uso un account di servizio, ti consigliamo di disabilitarlo prima di eliminarlo. Gli account di servizio disattivati possono essere facilmente riattivati se sono ancora in uso.
Se elimini un account di servizio e poi crei un nuovo account di servizio con lo stesso nome, il nuovo account di servizio viene considerato come un'identità a parte e non eredita i ruoli concessi all'account di servizio eliminato. Al contrario, quando elimini un account di servizio e poi lo elimini, l'identità dell'account di servizio non cambia e l'account di servizio ne conserva i ruoli.
Quando un account di servizio viene eliminato, le associazioni dei ruoli non vengono rimosse immediatamente, ma vengono eliminate automaticamente dal sistema dopo un massimo di 60 giorni. Fino a quel momento, l'account di servizio compare nelle associazioni di ruoli con un prefisso deleted:
e un suffisso ?uid=NUMERIC_ID
, dove NUMERIC_ID
è un ID numerico univoco per l'account di servizio.
Gli account di servizio eliminati non vengono conteggiati ai fini della quota dell'account di servizio.
Console
Nella console Google Cloud, vai alla pagina Account di servizio.
Seleziona un progetto.
Seleziona l'account di servizio che vuoi eliminare, quindi fai clic su Elimina
.
gcloud CLI
Esegui il comando gcloud iam service-accounts delete
per eliminare un account di servizio.
Comando:
gcloud iam service-accounts delete \ SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Output:
Deleted service account SA_NAME@PROJECT_ID.iam.gserviceaccount.com
REST
Il metodo
serviceAccounts.delete
elimina un account di servizio.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: il tuo ID progetto Google Cloud. Gli ID progetto sono stringhe alfanumeriche comemy-project
.SA_ID
: l'ID del tuo account di servizio. Può essere l'indirizzo email dell'account di servizio nel moduloSA_NAME@PROJECT_ID.iam.gserviceaccount.com
o l'ID numerico univoco dell'account di servizio.
Metodo e URL HTTP:
DELETE https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID
Per inviare la richiesta, espandi una delle seguenti opzioni:
Se l'operazione ha esito positivo, il corpo della risposta sarà vuoto.
C++
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C++.
C#
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C#.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Go.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Annullamento dell'eliminazione di un account di servizio
In alcuni casi, puoi utilizzare il comando undelete
per annullare l'eliminazione di un account di servizio eliminato. In genere, puoi annullare l'eliminazione di un account di servizio eliminato se soddisfa i seguenti criteri:
L'account di servizio è stato eliminato meno di 30 giorni fa.
Dopo 30 giorni, IAM rimuove definitivamente l'account di servizio. Una volta rimosso definitivamente, l'account di servizio non potrà essere ripristinato da Google Cloud, anche se hai inviato una richiesta di assistenza.
Non esiste un account di servizio con lo stesso nome dell'account di servizio eliminato.
Ad esempio, supponiamo che tu abbia eliminato accidentalmente l'account di servizio
my-service-account@project-id.iam.gserviceaccount.com
. È comunque necessario un account di servizio con lo stesso nome, quindi creerai un nuovo account di servizio con lo stesso nome,my-service-account@project-id.iam.gserviceaccount.com
.Il nuovo account di servizio non eredita le autorizzazioni dell'account di servizio eliminato. Di fatto è completamente separato dall'account di servizio eliminato. Tuttavia, non puoi annullare l'eliminazione dell'account di servizio originale, perché il nuovo account di servizio ha lo stesso nome.
Per risolvere questo problema, elimina il nuovo account di servizio, quindi prova ad annullarne l'eliminazione originale.
Se non puoi annullare l'eliminazione dell'account di servizio, puoi creare un nuovo account di servizio con lo stesso nome; revocare tutti i ruoli dall'account di servizio eliminato e concedere gli stessi ruoli al nuovo account di servizio. Per maggiori dettagli, consulta Criteri con entità eliminate.
Trovare l'ID numerico di un account di servizio eliminato
Quando annulli l'eliminazione di un account di servizio, devi fornire il suo ID numerico. L'ID numerico è un numero di 21 cifre, come 123456789012345678901
, che identifica in modo univoco l'account di servizio. Ad esempio, se elimini un account di servizio, quindi crei un nuovo account di servizio con lo stesso nome, l'account di servizio originale e il nuovo account di servizio avranno ID numerici diversi.
Se sai che un'associazione in un criterio di autorizzazione include l'account di servizio eliminato, puoi ottenere il criterio di autorizzazione, quindi trovare l'ID numerico nel criterio di autorizzazione. L'ID numerico viene aggiunto al nome dell'account di servizio eliminato. Ad esempio, in questo criterio di autorizzazione, l'ID numerico per l'account di servizio eliminato è 123456789012345678901
:
{ "version": 1, "etag": "BwUjMhCsNvY=", "bindings": [ { "members": [ "deleted:serviceAccount:my-service-account@project-id.iam.gserviceaccount.com?uid=123456789012345678901" ], "role": "roles/iam.serviceAccountUser" }, ] }
Gli ID numerici vengono aggiunti solo ai nomi delle entità eliminate.
In alternativa, puoi cercare nei log di controllo l'operazione DeleteServiceAccount
che ha eliminato l'account di servizio:
Nella console Google Cloud, vai alla pagina Esplora log.
Nell'Editor query, inserisci la query seguente, sostituendo
SERVICE_ACCOUNT_EMAIL
con l'indirizzo email del tuo account di servizio (ad esempiomy-service-account@project-id.iam.gserviceaccount.com
):resource.type="service_account" resource.labels.email_id="SERVICE_ACCOUNT_EMAIL" "DeleteServiceAccount"
Se l'account di servizio è stato eliminato più di un'ora fa, fai clic su
Ultima ora, seleziona un periodo di tempo più lungo dall'elenco a discesa, quindi fai clic su Applica.Fai clic su Esegui query. Esplora log visualizza le operazioni
DeleteServiceAccount
che interessano gli account di servizio con il nome specificato.Individua e annota l'ID numerico dell'account di servizio eliminato procedendo in uno dei seguenti modi:
Se i risultati di ricerca includono solo un'operazione
DeleteServiceAccount
, trova l'ID numerico nel campo ID univoco del riquadro Campi log.Se i risultati di ricerca mostrano più di un log, procedi nel seguente modo:
Trova la voce di log corretta. Per trovare la voce di log corretta, fai clic sulla freccia di espansione
accanto a una voce di log. Esamina i dettagli della voce di log e determina se la voce mostra l'operazione che vuoi annullare. Ripeti questa procedura finché non trovi la voce di log corretta.Nella voce di log corretta, individua l'ID numerico dell'account di servizio. Per individuare l'ID numerico, espandi il campo
protoPayload
della voce di log, quindi trova il camporesourceName
.L'ID numerico è tutto quello che segue
serviceAccounts
nel camporesourceName
.
Annullamento dell'eliminazione dell'account di servizio in base all'ID numerico
Dopo aver trovato l'ID numerico per l'account di servizio eliminato, puoi provare ad annullarne l'eliminazione.
gcloud CLI
Esegui il comando gcloud beta iam service-accounts undelete
per annullare l'eliminazione di un account di servizio.
Comando:
gcloud beta iam service-accounts undelete ACCOUNT_ID
Output:
restoredAccount: email: SA_NAME@PROJECT_ID.iam.gserviceaccount.com etag: BwWWE7zpApg= name: projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com oauth2ClientId: '123456789012345678901' projectId: PROJECT_ID uniqueId: 'ACCOUNT_ID'
REST
Il metodo
serviceAccounts.undelete
ripristina un account di servizio eliminato.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: il tuo ID progetto Google Cloud. Gli ID progetto sono stringhe alfanumeriche comemy-project
.SA_NUMERIC_ID
: l'ID numerico univoco dell'account di servizio.
Metodo e URL HTTP:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NUMERIC_ID:undelete
Per inviare la richiesta, espandi una delle seguenti opzioni:
Se è possibile annullare l'eliminazione dell'account, riceverai un codice di risposta 200 OK
con i dettagli relativi all'account di servizio ripristinato, come indicato di seguito:
{ "restoredAccount": { "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com", "projectId": "my-project", "uniqueId": "123456789012345678901", "email": "my-service-account@my-project.iam.gserviceaccount.com", "displayName": "My service account", "etag": "BwUp3rVlzes=", "description": "A service account for running jobs in my project", "oauth2ClientId": "987654321098765432109" } }
Passaggi successivi
- Consulta la procedura per concedere ruoli IAM a tutti i tipi di entità, inclusi gli account di servizio.
- Scopri come utilizzare i consigli sui ruoli per eseguire il downgrade delle autorizzazioni per tutte le entità, inclusi gli account di servizio.
- Scopri come consentire alle entità di impersonare account di servizio.
- Scopri come creare e gestire le chiavi dell'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