Questa pagina spiega come elencare e ottenere 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
Enable the IAM API.
Configurare l'autenticazione.
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
C#
Per utilizzare gli .NET esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Per ulteriori informazioni, consulta Configurare l'ADC per un ambiente di sviluppo locale nella Google Cloud documentazione sull'autenticazione.
C++
Per utilizzare gli C++ esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Per ulteriori informazioni, consulta Configurare l'ADC per un ambiente di sviluppo locale nella Google Cloud documentazione sull'autenticazione.
Vai
Per utilizzare gli Go esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Per ulteriori informazioni, consulta Configurare l'ADC per un ambiente di sviluppo locale nella Google Cloud documentazione sull'autenticazione.
Java
Per utilizzare gli Java esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Per ulteriori informazioni, consulta Configurare l'ADC per un ambiente di sviluppo locale nella Google Cloud documentazione sull'autenticazione.
Python
Per utilizzare gli Python esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Per ulteriori informazioni, consulta Configurare l'ADC per un ambiente di sviluppo locale nella Google Cloud documentazione sull'autenticazione.
REST
Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione Google Cloud sull'autenticazione.
Scopri di più sulle credenziali del service account.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per elencare e ottenere le chiavi degli account di servizio,
chiedi all'amministratore di concederti il ruolo IAM Visualizza account di servizio (roles/iam.serviceAccountViewer
) nel progetto o nell'account di servizio di cui vuoi gestire le chiavi.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Per ulteriori informazioni, consulta Ruoli degli account di servizio.
I ruoli di base IAM contengono anche le autorizzazioni per gestire le chiavi degli account di servizio. Non dovresti concedere ruoli di base in un ambiente di produzione, ma puoi farlo in un ambiente di sviluppo o di test.
Elenca le chiavi degli account di servizio
Puoi elencare le chiavi dell'account di servizio per un account di servizio utilizzando la console Google Cloud, l'gcloud CLI, il metodo serviceAccount.keys.list()
o una delle librerie client.
Il metodo serviceAccount.keys.list()
viene comunemente utilizzato per eseguire il controllo di chiavi e account di servizio o per creare strumenti personalizzati per la gestione degli account di servizio.
Per scoprire a quale progetto appartiene la chiave, puoi scaricarla come file JSON e esaminarla.
Potresti vedere chiavi non create da te. Si tratta di chiavi create da Google e utilizzate dall'API Service Account Credentials. Per saperne di più, consulta Google-owned and managed key coppie.
- Nella console Google Cloud, vai alla pagina Account di servizio.
I passaggi rimanenti vengono visualizzati nella console Google Cloud.
- Seleziona un progetto.
- Nella pagina Account di servizio, fai clic sull'indirizzo email dell'account di servizio di cui vuoi elencare le chiavi.
- Fai clic su Chiavi. La console Google Cloud mostra un elenco di chiavi per l'account di servizio.
Esegui il comando gcloud iam service-accounts keys list
per elencare le chiavi degli account di servizio.
Sostituisci i seguenti valori:
SA_NAME
: il nome dell'account di servizio per cui elencare le chiavi.PROJECT_ID
: il tuo Google Cloud ID progetto.
gcloud iam service-accounts keys list \ --iam-account=SA_NAME @PROJECT_ID .iam.gserviceaccount.com
Output:
KEY_ID | CREATED_AT | EXPIRES_AT | DISATTIVATO | DISABLE_REASON | EXTENDED_STATUS |
8e6e3936d7024646f8ceb39792006c07f4a9760c | 2021-01-01T21:01:42Z | 9999-12-31T23:59:59Z | |||
937c98f870f5c8db970af527aa3c12fd88b1c20a | 2021-01-01T20:55:40Z | 9999-12-31T23:59:59Z | Vero | INITIATED | |
937c98f870f5c8db970af527aa3c12fd88b1c20a | 2021-01-01T20:55:40Z | 9999-12-31T23:59:59Z | Vero | ESPOSTO | ['key':'SERVICE_ACCOUNT_KEY_EXTENDED_STATUS_KEY_EXPOSED' 'value':'{exposure URL}'] |
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API IAM C++.
Per autenticarti in IAM, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Prima di iniziare.
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API IAM C#.
Per autenticarti in IAM, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Prima di iniziare.
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API IAM Go.
Per autenticarti in IAM, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Prima di iniziare.
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API IAM Java.
Per autenticarti in IAM, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Prima di iniziare.
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API IAM Python.
Per autenticarti in IAM, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Prima di iniziare.
Il metodo projects.serviceAccounts.keys.list
elenca tutte le chiavi dell'account di servizio per un account di servizio.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: il tuo Google Cloud ID progetto. Gli ID progetto sono stringhe alfanumeriche, comemy-project
.SA_NAME
: il nome dell'account di servizio di cui vuoi elencare le chiavi.KEY_TYPES
: facoltativo. Un elenco separato da virgole di tipi di chiavi da includere nella risposta. Il tipo di chiave indica se una chiave è gestita dall'utente (USER_MANAGED
) o dal sistema (SYSTEM_MANAGED
). Se non viene specificato, vengono restituite tutte le chiavi.
Metodo HTTP e URL:
GET https://iam.googleapis.com/v1/projects/PROJECT_ID /serviceAccounts/SA_NAME @PROJECT_ID .iam.gserviceaccount.com/keys?keyTypes=KEY_TYPES
Per inviare la richiesta, espandi una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://iam.googleapis.com/v1/projects/PROJECT_ID /serviceAccounts/SA_NAME @PROJECT_ID .iam.gserviceaccount.com/keys?keyTypes=KEY_TYPES "
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://iam.googleapis.com/v1/projects/PROJECT_ID /serviceAccounts/SA_NAME @PROJECT_ID .iam.gserviceaccount.com/keys?keyTypes=KEY_TYPES " | Select-Object -Expand Content
Explorer API (browser)
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Esplora API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
{ "keys": [ { "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/90c48f61c65cd56224a12ab18e6ee9ca9c3aee7c", "validAfterTime": "2020-03-04T17:39:47Z", "validBeforeTime": "9999-12-31T23:59:59Z", "keyAlgorithm": "KEY_ALG_RSA_2048", "keyOrigin": "GOOGLE_PROVIDED", "keyType": "USER_MANAGED" }, { "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/e5e3800831ac1adc8a5849da7d827b4724b1fce8", "validAfterTime": "2020-03-31T23:50:09Z", "validBeforeTime": "9999-12-31T23:59:59Z", "keyAlgorithm": "KEY_ALG_RSA_2048", "keyOrigin": "GOOGLE_PROVIDED", "keyType": "USER_MANAGED" }, { "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/b97699f042b8eee6a846f4f96259fbcd13e2682e", "validAfterTime": "2020-05-17T18:58:13Z", "validBeforeTime": "9999-12-31T23:59:59Z", "keyAlgorithm": "KEY_ALG_RSA_2048", "keyOrigin": "GOOGLE_PROVIDED", "keyType": "USER_MANAGED", "disabled": true "disable_reason": "SERVICE_ACCOUNT_KEY_DISABLE_REASON_EXPOSED" "extended_status": "SERVICE_ACCOUNT_KEY_EXTENDED_STATUS_KEY_EXPOSED" "extended_status_message": "exposed at: https://www.github.com/SomePublicRepo" } ] }
Generazione di una chiave dell'account di servizio
Puoi utilizzare gcloud CLI o l'API REST per recuperare i dati della chiave pubblica per una chiave dell'account di servizio. Inoltre, puoi utilizzare la console Google Cloud, gcloud CLI o l'API REST per ottenere i metadati della chiave, ad esempio l'algoritmo utilizzato dalla chiave e se la chiave è gestita da te o da Google.
Per ottenere i dati della chiave pubblica di una chiave dell'account di servizio:
Utilizza l'interfaccia a riga di comando gcloud o l'API REST. Questi dati non sono disponibili nella console Google Cloud.
Per ottenere i metadati per una chiave dell'account di servizio:
- Nella console Google Cloud, vai alla pagina Account di servizio.
I passaggi rimanenti vengono visualizzati nella console Google Cloud.
- Seleziona un progetto.
- Nella pagina Account di servizio, fai clic sull'indirizzo email dell'account di servizio di cui vuoi elencare le chiavi.
- Fai clic su Chiavi. Nella console Google Cloud viene visualizzato un elenco delle chiavi dell'account di servizio, inclusi i metadati di ciascuna chiave.
Per ottenere i dati della chiave pubblica di una chiave dell'account di servizio:
Esegui il comando
gcloud beta iam service-accounts keys get-public-key
:
gcloud beta iam service-accounts keys get-public-keyKEY_ID \ --iam-account=SA_NAME @PROJECT_ID .iam.gserviceaccount.com \ --output-file=FILENAME
Fornisci i seguenti valori:
KEY_ID
: l'ID della chiave pubblica che vuoi ottenere. Per trovare l'ID della chiave, elenca tutte le chiavi per l'account di servizio, identificate la chiave che vuoi ottenere e poi copia il relativo ID.SA_NAME
: il nome dell'account di servizio di cui vuoi recuperare la chiave pubblica.PROJECT_ID
: il tuo Google Cloud ID progetto.FILENAME
: il file in cui salvare i dati della chiave pubblica.
Per impostazione predefinita, i dati della chiave pubblica vengono salvati in formato PEM X.509. Per ottenere la chiave pubblica non elaborata, esegui il comando con il flag aggiuntivo --type=raw
.
Ad esempio, il seguente comando recupera i dati della chiave pubblica per la chiavec97cc34494c07c9b483701f28368f20145b9ef97
, che appartiene all'account di serviziomy-service-account@my-project.iam.gserviceaccount.com
, quindi salva i dati della chiave pubblica nel file public_key.pem
:
gcloud beta iam service-accounts keys get-public-key \
c97cc34494c07c9b483701f28368f20145b9ef97 \
--iam-account=my-service-account@my-project.iam.gserviceaccount.com \
--output-file=public_key.pem
Per ottenere i metadati per una chiave dell'account di servizio:
Esegui il comando gcloud iam service-accounts keys list
:
gcloud iam service-accounts keys list --iam-account=SA_NAME \ --filter="name~KEY_ID " --format=json
Fornisci i seguenti valori:
SA_NAME
: il nome dell'account di servizio per cui vuoi i metadati principali.KEY_ID
: l'ID della chiave per cui vuoi i metadati.
Ad esempio, il seguente comando recupera i metadati per la chiavec97cc34494c07c9b483701f28368f20145b9ef97
, che appartiene all'account di serviziomy-service-account@my-project.iam.gserviceaccount.com
:
gcloud iam service-accounts keys list \
--iam-account=my-service-account@my-project.iam.gserviceaccount.com \
--filter="name~c97cc34494c07c9b483701f28368f20145b9ef97" --format=json
Il metodo projects.serviceAccounts.keys.get
restituisce informazioni su una chiave pubblica per un account di servizio.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: il tuo Google Cloud ID progetto. Gli ID progetto sono stringhe alfanumeriche, comemy-project
.SA_NAME
: il nome dell'account di servizio di cui vuoi recuperare la chiave pubblica.-
KEY_ID
: l'ID della chiave pubblica che vuoi ottenere. Per trovare l'ID della chiave, elenca tutte le chiavi per l'account di servizio, identifica la chiave che vuoi recuperare e poi copia il relativo ID dalla fine del camponame
. L'ID della chiave è tutto ciò che seguekeys/
. KEY_TYPE
: il formato in cui restituire la chiave pubblica. UtilizzaTYPE_X509_PEM_FILE
per il formato PEM X.509 oTYPE_RAW_PUBLIC_KEY
per la chiave pubblica non elaborata. Se ometti questo parametro di query, il metodo restituisce i metadati della chiave, ma non restituisce i dati della chiave pubblica.
Metodo HTTP e URL:
GET https://iam.googleapis.com/v1/projects/PROJECT_ID /serviceAccounts/SA_NAME @PROJECT_ID .iam.gserviceaccount.com/keys/KEY_ID ?publicKeyType=KEY_TYPE
Per inviare la richiesta, espandi una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://iam.googleapis.com/v1/projects/PROJECT_ID /serviceAccounts/SA_NAME @PROJECT_ID .iam.gserviceaccount.com/keys/KEY_ID ?publicKeyType=KEY_TYPE "
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://iam.googleapis.com/v1/projects/PROJECT_ID /serviceAccounts/SA_NAME @PROJECT_ID .iam.gserviceaccount.com/keys/KEY_ID ?publicKeyType=KEY_TYPE " | Select-Object -Expand Content
Explorer API (browser)
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Esplora API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/f4a83933ac07cf52bb74e0e66d99662a09f51a36", "validAfterTime": "2021-12-10T17:32:06Z", "validBeforeTime": "9999-12-31T23:59:59Z", "publicKeyData": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMvRENDQWVTZ0F3SUJBZ0lJT2lCdm9hR09nV0F3RFFZSktvWklodmNOQVFFRkJRQXdJREVlTUJ3R0ExVUUKQXhNVk1UQXhNVGsxTlRFMk5UWXlPRGszTmpFek1qQXpNQ0FYRFRJeE1USXhNREUzTXpJd05sb1lEems1T1RreApNak14TWpNMU9UVTVXakFnTVI0d0hBWURWUVFERXhVeE1ERXhPVFUxTVRZMU5qSTRPVGMyTVRNeU1ETXdnZ0VpCk1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRQzdzeDBFcXVUMGNwSXhlczl1SW0yRy9DS3EKdnc4YTl2a2JkaWZZbDZHSDh1ZUxEWDhGNHVUeEVQMkNzU3JLTHZtOFo2My9IVUxnWjBtQXByb0JlM08vaVR1ZwpmYVZ0NVNtakhvWm9YQ1lpbjR0MS93SkpvdDhrRFdPeDZhOEdieUdqZ215ak8yYk1XdEtaQ2dqeGZ3cUV0MmN3CklnajA5VzJKYTlHTWRsdVA0VGVubTRKSkJoaFpFbTJ1bVAwYVZZdkRnUWF5d0RCYnJuNG8yY0EzSWplRDZGM1gKK0VHRDNKU0s4VW02Sk5sM21adGp6VWNZSHBrYkF0U1A2ZDI5d1RmZkdIRFY0THJRWlM3bG15d3hsb3p5WnpaawpCOFpHckMzSkF1MVNVRTdQOTN6bWtFb1B6MlRUNWhaYXZMWFQ5TGM2SExiRklRVHFnVEJVWHlNMkpIcGZBZ01CCkFBR2pPREEyTUF3R0ExVWRFd0VCL3dRQ01BQXdEZ1lEVlIwUEFRSC9CQVFEQWdlQU1CWUdBMVVkSlFFQi93UU0KTUFvR0NDc0dBUVVGQndNQ01BMEdDU3FHU0liM0RRRUJCUVVBQTRJQkFRQkhPNXlpUDY3NkE4UEN2RjdRSzdFMApYZVljbzdsSStFZkowaGJrWVlmdUtnSENPcXcvd3FBbCtOSithanljT2FPWDFPMlRZN3ZOc05pR2t3eWc2QXdqCklhL1NHVjd3NkxpS2JldFRuSVp4UlhRY25lcnVvZEwycUR5eWphMDJJSXJVTmVKY1o0MVJBNXRTL3NkcTFGNm4KM0NjSXFoZTI1OTA4TUNna3cwaFB1K0VLbFF6R1B5T3pVRHBLdXg0cnRBaHJTYTBUVW1wbEMxdTJnUk1YRkF6aApWUjU0V2dNa2tabURyalBNeWdBS3JmNkd0bHo2VHRTYTVLb1BWdGpsWExUQkxaSnlhdk4zc1F2dFlBK1NFQWpWCnA1N1ZabFBYZmR0dWN4ekJaOC9zS25SOHNyYU5hVWFjamg1NEE1Nm1URTE3b0IyUWkrTHBJUTYvNnVqVnNXaUYKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=", "keyAlgorithm": "KEY_ALG_RSA_2048", "keyOrigin": "GOOGLE_PROVIDED", "keyType": "USER_MANAGED" }
Passaggi successivi
- Scopri come creare ed eliminare le chiavi dell'account di servizio.
- Scopri come disattivare e attivare le chiavi dell'account di servizio.
- Scopri le alternative alle chiavi dell'account di servizio per l'autenticazione.
- Scopri come utilizzare le chiavi dell'account di servizio per autenticarti come 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