Questa pagina spiega come creare ed eliminare le chiavi degli account di servizio utilizzando la console Google Cloud, Google Cloud CLI, l'API Identity and Access Management o una delle librerie client di Google Cloud.
Prima di iniziare
Attiva IAM API.
Configurare l'autenticazione.
Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.
gcloud
In questa pagina puoi utilizzare gli esempi di gcloud CLI da uno dei seguenti ambienti di sviluppo:
-
Cloud Shell: per utilizzare un terminale online con gcloud CLI già configurato, attiva Cloud Shell.
In fondo a questa pagina viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. L'inizializzazione della sessione può richiedere alcuni secondi.
-
shell locale: per utilizzare gcloud CLI in un ambiente di sviluppo locale, installa e initialize gcloud CLI.
C++
Per utilizzare gli esempi C++ in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud.
C#
Per utilizzare gli esempi .NET in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud.
Go
Per utilizzare gli esempi Go in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud.
Java
Per utilizzare gli esempi Java in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud.
Python
Per utilizzare gli esempi Python in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
-
Informazioni sulle credenziali degli account di servizio.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare ed eliminare le chiavi degli account di servizio, chiedi all'amministratore di concederti il ruolo IAM Amministratore chiavi account di servizio (roles/iam.serviceAccountKeyAdmin
) sul progetto o all'account di servizio di cui vuoi gestire le chiavi.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Per maggiori informazioni, consulta la pagina relativa ai ruoli degli account di servizio.
I ruoli IAM di base contengono anche le autorizzazioni per gestire le chiavi degli account di servizio. Non devi concedere ruoli di base in un ambiente di produzione, ma puoi concederli in un ambiente di sviluppo o test.
Crea una chiave dell'account di servizio
Per utilizzare un account di servizio dall'esterno di Google Cloud, ad esempio su altre piattaforme o on-premise, devi prima stabilire l'identità dell'account di servizio. Le coppie di chiavi pubbliche/private forniscono un modo sicuro per raggiungere questo obiettivo. Quando crei una chiave dell'account di servizio, la parte pubblica viene archiviata in Google Cloud, mentre la parte privata è disponibile solo per te. Per ulteriori informazioni sulle coppie di chiave pubblica/privata, consulta Chiavi degli account di servizio.
Puoi creare una chiave dell'account di servizio utilizzando la console Google Cloud, gcloud CLI, il metodo serviceAccounts.keys.create()
o una delle librerie client.
Un account di servizio può avere fino a 10 chiavi.
Per impostazione predefinita, le chiavi degli account di servizio non hanno scadenza. Puoi utilizzare un vincolo dei criteri dell'organizzazione per specificare il periodo di tempo durante il quale una chiave dell'account di servizio è valida. Per maggiori dettagli, consulta Tempi di scadenza per le chiavi gestite dall'utente.
Negli esempi riportati di seguito, SA_NAME
è il nome del tuo
account di servizio e PROJECT_ID
è l'ID del tuo
progetto Google Cloud. Puoi recuperare la stringa SA_NAME@PROJECT_ID.iam.gserviceaccount.com
dalla pagina Account di servizio nella console Google Cloud.
Console
- Nella console Google Cloud, vai alla pagina Account di servizio.
I passaggi rimanenti verranno visualizzati automaticamente nella console Google Cloud.
- Seleziona un progetto.
- Fai clic sull'indirizzo email dell'account di servizio per cui vuoi creare una chiave.
- Fai clic sulla scheda
Chiavi . - Fai clic sul menu a discesa Aggiungi chiave, quindi seleziona Crea nuova chiave.
- In Tipo di chiave, seleziona JSON e fai clic su Crea.
Facendo clic su Crea viene scaricato un file della chiave dell'account di servizio. Una volta scaricato, il file della chiave non potrà essere scaricato di nuovo.
La chiave scaricata ha il seguente formato, dove PRIVATE_KEY
è la parte privata della coppia di chiavi pubbliche/private:
{
"type": "service_account",
"project_id": "PROJECT_ID",
"private_key_id": "KEY_ID",
"private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n",
"client_email": "SERVICE_ACCOUNT_EMAIL",
"client_id": "CLIENT_ID",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL"
}
Assicurati di archiviare il file della chiave in modo sicuro perché può essere utilizzato per l'autenticazione come account di servizio. Puoi spostare e rinominare il file come preferisci.
Puoi utilizzare i file della chiave dell'account di servizio per autenticare un'applicazione come account di servizio.
gcloud
Esegui il comando gcloud iam service-accounts keys create
per creare chiavi degli account di servizio.
Sostituisci i seguenti valori:
KEY_FILE
: il percorso di un nuovo file di output per la chiave privata, ad esempio~/sa-private-key.json
.SA_NAME
: il nome dell'account di servizio per cui creare una chiave.PROJECT_ID
: l'ID del tuo progetto Google Cloud.
gcloud iam service-accounts keys create KEY_FILE \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Output:
created key [e44da1202f82f8f4bdd9d92bc412d1d8a837fa83] of type [json] as [/usr/home/username/KEY_FILE] for [SA_NAME@PROJECT_ID.iam.gserviceaccount.com]
Il file della chiave dell'account di servizio viene scaricato sul computer. Dopo aver scaricato il file della chiave, non puoi scaricarlo di nuovo.
La chiave scaricata ha il seguente formato, dove PRIVATE_KEY
è la parte privata della coppia di chiavi pubbliche/private:
{ "type": "service_account", "project_id": "PROJECT_ID", "private_key_id": "KEY_ID", "private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n", "client_email": "SERVICE_ACCOUNT_EMAIL", "client_id": "CLIENT_ID", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL" }
Assicurati di archiviare il file della chiave in modo sicuro perché può essere utilizzato per l'autenticazione come account di servizio. Puoi spostare e rinominare il file come preferisci.
Puoi utilizzare i file della chiave dell'account di servizio per autenticare un'applicazione come account di servizio.
C++
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM C++.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
C#
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM C#.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Go.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Java.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Python.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
REST
Il metodo projects.serviceAccounts.keys.create
crea una chiave per un account di servizio.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
PROJECT_ID
: l'ID del tuo progetto Google Cloud. Gli ID progetto sono stringhe alfanumeriche comemy-project
.SA_NAME
: il nome dell'account di servizio per cui vuoi creare una chiave.KEY_ALGORITHM
: facoltativo. L'algoritmo della chiave da utilizzare per la chiave. L'impostazione predefinita, soggetta a modifiche, è una chiave RSA a 2048 bit. Per un elenco di tutti i valori possibili, consulta il riferimentoServiceAccountKeyAlgorithm
.
Metodo HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys
Corpo JSON della richiesta:
{ "keyAlgorithm": "KEY_ALGORITHM" }
Per inviare la richiesta, espandi una di queste opzioni:
La risposta contiene una chiave per il tuo account di servizio. La chiave restituita ha il formato seguente, dove ENCODED_PRIVATE_KEY
è la parte privata della coppia di chiave pubblica/privata, codificata in base64.
{ "name": "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL/keys/KEY_ID", "privateKeyType": "TYPE_GOOGLE_CREDENTIALS_FILE", "privateKeyData": "ENCODED_PRIVATE_KEY", "validAfterTime": "DATE", "validBeforeTime": "DATE", "keyAlgorithm": "KEY_ALG_RSA_2048" }
Per creare un file della chiave da utilizzare per l'autenticazione come account di servizio, decodifica i dati della chiave privata e salvali in un file:
Linux
Esegui questo comando:
echo 'ENCODED_PRIVATE_KEY' | base64 --decode > PATH
Sostituisci PATH
con il percorso del file in cui vuoi salvare la chiave. Utilizza l'estensione del file .json
.
macOS
Esegui questo comando:
echo 'ENCODED_PRIVATE_KEY' | base64 --decode > PATH
Sostituisci PATH
con il percorso del file in cui vuoi salvare la chiave. Utilizza l'estensione del file .json
.
PowerShell
Salva i dati della chiave privata codificati (
ENCODED_PRIVATE_KEY
) in un file.Utilizza
certutil
per decodificare il file:certutil -decode ENCODED_FILE DECODED_FILE
Sostituisci i seguenti valori:
ENCODED_FILE
: il percorso del file contenente i dati della chiave privata codificata.DECODED_FILE
: il percorso del file in cui vuoi salvare la chiave. Utilizza l'estensione del file.json
.
Assicurati di archiviare i dati della chiave in modo sicuro, poiché possono essere utilizzati per autenticarsi come account di servizio.
Puoi utilizzare i file della chiave dell'account di servizio per autenticare un'applicazione come account di servizio.
Elimina una chiave dell'account di servizio
L'eliminazione di una chiave dell'account di servizio ti impedisce in modo permanente di utilizzare la chiave per l'autenticazione con le API di Google.
Non puoi annullare l'eliminazione di una chiave eliminata. Prima di eliminare una chiave, ti consigliamo di disabilitarla e di attendere fino a quando non hai la certezza che non sia più necessaria. Puoi quindi eliminare la chiave.
Come best practice, ruota regolarmente le chiavi dell'account di servizio. Per scoprire di più sulla rotazione delle chiavi degli account di servizio, consulta Rotazione delle chiavi dell'account di servizio.
Console
- Nella console Google Cloud, vai alla pagina Account di servizio.
I passaggi rimanenti verranno visualizzati automaticamente nella console Google Cloud.
- Seleziona un progetto.
- Nella pagina Account di servizio, fai clic sull'indirizzo email dell'account di servizio di cui vuoi eliminare la chiave.
- Fai clic sulla scheda Chiavi.
- Nell'elenco delle chiavi, fai clic su Elimina per ogni chiave da eliminare.
gcloud
Esegui il comando gcloud iam service-accounts keys delete
per eliminare le chiavi degli account di servizio.
Sostituisci i seguenti valori:
KEY_ID
: l'ID della chiave da eliminare. Per trovare l'ID della chiave, elenca tutte le chiavi per l'account di servizio, identifica la chiave che vuoi eliminare e copiane l'ID.SA_NAME
: il nome dell'account di servizio a cui appartiene la chiave.PROJECT_ID
: l'ID del tuo progetto Google Cloud.
gcloud iam service-accounts keys delete KEY_ID \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Output:
Deleted key [KEY_ID] for service account [SA_NAME@PROJECT_ID.iam.gserviceaccount.com]
C++
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM C++.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
C#
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM C#.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Go.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Java.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Python.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
REST
Il metodo projects.serviceAccounts.keys.delete
elimina una chiave dell'account di servizio.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
PROJECT_ID
: l'ID del tuo progetto Google Cloud. Gli ID progetto sono stringhe alfanumeriche comemy-project
.SA_NAME
: il nome dell'account di servizio di cui vuoi eliminare la chiave.KEY_ID
: l'ID della chiave che vuoi eliminare. Per trovare l'ID della chiave, elenca tutte le chiavi dell'account di servizio, identifica la chiave che vuoi eliminare e copia il relativo ID dalla fine del camponame
. L'ID della chiave è tutto ciò che seguekeys/
.
Metodo HTTP e URL:
DELETE https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/KEY_ID
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ }
Passaggi successivi
- Scopri come elencare e ottenere le chiavi degli account di servizio.
- Scopri come caricare le chiavi pubbliche degli account di servizio.
- Consulta le best practice per la gestione delle chiavi degli account di servizio.
- Scopri le alternative alle chiavi degli account di servizio per l'autenticazione.
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