Questa pagina spiega come elencare e ottenere le chiavi del account di servizio utilizzando la consoleCloud de Confiance , Google Cloud CLI , l'API Identity and Access Management o una delle librerie client di Google Cloud .
Prima di iniziare
Abilita l'API IAM.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (
roles/serviceusage.serviceUsageAdmin), che include l'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli.Configurare l'autenticazione.
Seleziona la scheda relativa a come intendi utilizzare i campioni in questa pagina:
Console
Quando utilizzi la console Cloud de Confiance per accedere ai servizi Cloud de Confiance by S3NS e alle API, non devi configurare l'autenticazione.
gcloud
Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud initC#
Per utilizzare gli esempi di .NET in questa pagina in 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.
-
Configura gcloud CLI per utilizzare la tua identità federata.
Per ulteriori informazioni, vedi Accedi a gcloud CLI con la tua identità federata.
-
Crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Cloud de Confiance .
C++
Per utilizzare gli esempi di C++ in questa pagina in 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.
-
Configura gcloud CLI per utilizzare la tua identità federata.
Per ulteriori informazioni, vedi Accedi a gcloud CLI con la tua identità federata.
-
Crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Cloud de Confiance .
Go
Per utilizzare gli esempi di Go in questa pagina in 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.
-
Configura gcloud CLI per utilizzare la tua identità federata.
Per ulteriori informazioni, vedi Accedi a gcloud CLI con la tua identità federata.
-
Crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Cloud de Confiance .
Java
Per utilizzare gli esempi Java in questa pagina in 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.
-
Configura gcloud CLI per utilizzare la tua identità federata.
Per ulteriori informazioni, vedi Accedi a gcloud CLI con la tua identità federata.
-
Crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Cloud de Confiance .
Python
Per utilizzare gli esempi di Python in questa pagina in 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.
-
Configura gcloud CLI per utilizzare la tua identità federata.
Per ulteriori informazioni, vedi Accedi a gcloud CLI con la tua identità federata.
-
Crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Cloud de Confiance .
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Cloud de Confiance .
-
Comprendi le credenziali del service account.
Ruoli obbligatori
Per ottenere le autorizzazioni
necessarie per elencare e ottenere le chiavi del account di servizio,
chiedi all'amministratore di concederti il ruolo IAM
Visualizzatore service account (roles/iam.serviceAccountViewer)
sul progetto o sul account di servizio di cui vuoi gestire le chiavi.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
I ruoli di base IAM contengono anche le autorizzazioni per gestire le chiavi dei service account. Non devi concedere ruoli di base in un ambiente di produzione, ma puoi concederli in un ambiente di sviluppo o di test.
Elenca le chiavi degli account di servizio
Puoi elencare le chiavi del account di servizio per un account di servizio utilizzando la consoleCloud de Confiance , gcloud CLI, il metodo serviceAccount.keys.list() o una delle librerie client.
Il metodo serviceAccount.keys.list() viene comunemente utilizzato per controllare service account e chiavi o per creare strumenti personalizzati per la gestione dei service account.
Per scoprire a quale progetto appartiene la chiave, puoi scaricarla come file JSON e consultarlo.
Potresti visualizzare chiavi elencate che non hai creato. Si tratta di chiavi create da Google e utilizzate dall'API Service Account Credentials. Per saperne di più, consulta Coppie diGoogle Cloud-powered key .
Console
- Nella Cloud de Confiance console, vai alla pagina Service account.
- 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 Cloud de Confiance mostra un elenco di chiavi per il service account
gcloud
Esegui il comando gcloud iam service-accounts keys list
per elencare le chiavi del account di servizio.
Sostituisci i seguenti valori:
SA_NAME: Il nome del account di servizio per cui elencare le chiavi.PROJECT_ID: l'ID progetto Cloud de Confiance .
gcloud iam service-accounts keys list \
--iam-account=SA_NAME@PROJECT_ID.s3ns.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 | AVVIATO DALL'UTENTE | |
| 937c98f870f5c8db970af527aa3c12fd88b1c20a | 2021-01-01T20:55:40Z | 9999-12-31T23:59:59Z | Vero | ESPOSTE | ['key':'SERVICE_ACCOUNT_KEY_EXTENDED_STATUS_KEY_EXPOSED' 'value':'{exposure URL}'] |
C++
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C++.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
C#
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM C#.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Go.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Per eseguire l'autenticazione in IAM, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
REST
Il metodo
projects.serviceAccounts.keys.list
elenca tutte le chiavi del account di servizio per un account di servizio.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
PROJECT_ID: il tuo ID progetto Cloud de Confiance . Gli ID progetto sono stringhe alfanumeriche, comemy-project.SA_NAME: il nome del account di servizio di cui vuoi elencare le chiavi.KEY_TYPES: (Facoltativo) Un elenco separato da virgole di tipi di chiavi che vuoi includere nella risposta. Il tipo di chiave indica se una chiave è gestita dall'utente (USER_MANAGED) o dal sistema (SYSTEM_MANAGED). Se lasciato vuoto, vengono restituite tutte le chiavi.
Metodo HTTP e URL:
GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.s3ns.iam.gserviceaccount.com/keys?keyTypes=KEY_TYPES
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"keys": [
{
"name": "projects/my-project/serviceAccounts/my-service-account@my-project.s3ns.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.s3ns.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.s3ns.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"
}
]
}
Genera una chiave account di servizio
Puoi utilizzare gcloud CLI o l'API REST per ottenere i dati della chiave pubblica per una chiave delaccount di serviziot. Inoltre, puoi utilizzare la console Cloud de Confiance , gcloud CLI o l'API REST per ottenere i metadati della chiave, ad esempio l'algoritmo utilizzato dalla chiave e se quest'ultima è gestita da te o da Google.
Alcune applicazioni o alcuni strumenti potrebbero aver bisogno di accedere ai dati della chiave pubblica o ai metadati per una chiaveaccount di serviziot per attività come l'audit e l'interoperabilità con sistemi esterni. Ad esempio, Terraform potrebbe dover verificare che lo stato di una chiave del account di servizio in Cloud de Confiance by S3NS corrisponda a quanto definito nel file di configurazione Terraform.
Console
Per ottenere i dati della chiave pubblica di una chiave del service account:
Utilizza l'interfaccia a riga di comando gcloud o l'API REST. Questi dati non sono disponibili nella consoleCloud de Confiance .
Per ottenere i metadati per una chiave dell'account di servizio:
- Nella Cloud de Confiance console, vai alla pagina Service account.
- 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 Cloud de Confiance mostra un elenco di chiavi per il service account, inclusi i metadati per ogni chiave.
gcloud
Per ottenere i dati della chiave pubblica di una chiave del service account:
Esegui il comando gcloud beta iam service-accounts keys get-public-key:
gcloud beta iam service-accounts keys get-public-key KEY_ID \ --iam-account=SA_NAME@PROJECT_ID.s3ns.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 del service account, identifica la chiave che vuoi ottenere e poi copia il relativo ID.SA_NAME: il nome del account di servizio di cui vuoi ottenere la chiave pubblica.PROJECT_ID: il tuo ID progetto Cloud de Confiance .FILENAME: il file in cui salvare i dati della chiave pubblica.
Per impostazione predefinita, i dati della chiave pubblica vengono salvati in formato X.509 PEM. 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 chiave
c97cc34494c07c9b483701f28368f20145b9ef97, che appartiene al account di servizio
my-service-account@my-project.s3ns.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.s3ns.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 del account di servizio per cui vuoi i metadati della chiave.KEY_ID: l'ID della chiave per cui vuoi i metadati.
Ad esempio, il seguente comando recupera i metadati per la chiave
c97cc34494c07c9b483701f28368f20145b9ef97, che appartiene al account di servizio
my-service-account@my-project.s3ns.iam.gserviceaccount.com:
gcloud iam service-accounts keys list \
--iam-account=my-service-account@my-project.s3ns.iam.gserviceaccount.com \
--filter="name~c97cc34494c07c9b483701f28368f20145b9ef97" --format=json
REST
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 sostituzioni seguenti:
PROJECT_ID: il tuo ID progetto Cloud de Confiance . Gli ID progetto sono stringhe alfanumeriche, comemy-project.SA_NAME: il nome del account di servizio di cui vuoi ottenere la chiave pubblica.-
KEY_ID: l'ID della chiave pubblica che vuoi ottenere. Per trovare l'ID della chiave, elenca tutte le chiavi del service account, 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_FILEper il formato PEM X.509 oTYPE_RAW_PUBLIC_KEYper la chiave pubblica non elaborata. Se ometti questo parametro di query, il metodo restituisce i metadati per la 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.s3ns.iam.gserviceaccount.com/keys/KEY_ID?publicKeyType=KEY_TYPE
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"name": "projects/my-project/serviceAccounts/my-service-account@my-project.s3ns.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 account di servizio account.
- Scopri come disattivare e attivare le account di servizio account.
- Scopri le alternative alle chiavi delaccount di serviziot per l'autenticazione.
- Scopri come utilizzare le chiavi del account di servizio per autenticarti come service account.
- Comprendere le best practice per la gestione delle chiavi degli account di servizio.