In questa pagina viene spiegato come creare ed eliminare le chiavi degli account di servizio utilizzando console Google Cloud, Google Cloud CLI, l'API Identity and Access Management, oppure uno 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:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
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 C++ esempi in questa pagina in una località dell'ambiente di sviluppo, installare e inizializzare gcloud CLI quindi configura 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, vedi Configurare l'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud.
C#
Per utilizzare gli .NET esempi in questa pagina in una località dell'ambiente di sviluppo, installare e inizializzare gcloud CLI quindi configura 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'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud.
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'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud.
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'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud.
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, vedi Configurare l'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud.
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, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Comprendere le 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 Amministratore chiavi account di servizio (
roles/iam.serviceAccountKeyAdmin
) nel progetto o nell'account di servizio di cui vuoi le chiavi da gestire. 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 la ruoli o altri ruoli predefiniti ruoli.
Per ulteriori informazioni, vedi Ruoli degli account di servizio.
A seconda della configurazione dei criteri dell'organizzazione, potrebbe essere necessario anche consentire la creazione di chiavi dell'account di servizio nel progetto prima di crearne una.
Per ottenere le autorizzazioni necessarie per consentire la creazione delle chiavi degli account di servizio in un progetto, chiedi all'amministratore di concederti i seguenti ruoli IAM nella tua organizzazione:
-
Amministratore criteri organizzazione (
roles/orgpolicy.policyAdmin
) -
Visualizzatore organizzazione (
roles/resourcemanager.organizationViewer
) -
Amministratore tag (
roles/resourcemanager.tagAdmin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti le autorizzazioni necessarie per consentire la creazione di chiavi degli account di servizio in un progetto. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per consentire la creazione di chiavi degli account di servizio in un progetto, sono necessarie le seguenti autorizzazioni:
-
orgpolicy.constraints.list
-
orgpolicy.customConstraints.create
-
orgpolicy.customConstraints.delete
-
orgpolicy.customConstraints.get
-
orgpolicy.customConstraints.list
-
orgpolicy.customConstraints.update
-
orgpolicy.policies.create
-
orgpolicy.policies.delete
-
orgpolicy.policies.list
-
orgpolicy.policies.update
-
orgpolicy.policy.get
-
orgpolicy.policy.set
-
resourcemanager.organizations.get
-
resourcemanager.projects.listTagBindings
-
resourcemanager.projects.listEffectiveTags
-
resourcemanager.tagKeys.get
-
resourcemanager.tagKeys.list
-
resourcemanager.tagValues.list
-
resourcemanager.tagValues.get
Potresti anche riuscire a ottenere queste autorizzazioni con ruoli personalizzati e altri ruoli predefiniti.
Consenti la creazione di chiavi dell'account di servizio
Prima di creare una chiave dell'account di servizio, assicurati che
iam.disableServiceAccountKeyCreation
vincolo del criterio dell'organizzazione non è per il tuo progetto. Se questo vincolo viene applicato al tuo progetto, non puoi creare chiavi degli account di servizio al suo interno.Consigliamo di applicare questo vincolo per la maggior parte dei progetti ed esentare solo per i progetti che richiedono effettivamente le chiavi degli account di servizio. Per saperne di più sui metodi di autenticazione alternativi, vedi Scegliere il metodo di autenticazione più adatto al tuo caso d'uso.
Per escludere un progetto dall'organizzazione
iam.disableServiceAccountKeyCreation
vincolo dei criteri, chiedi a un amministratore dei criteri dell'organizzazione di fare quanto segue:-
A livello di organizzazione, crea una chiave tag e un valore tag che utilizzerai per definire se un progetto o una cartella devono essere esentati dal criterio dell'organizzazione. Ti consigliamo di creare un tag con la chiave
disableServiceAccountKeyCreation
e i valorienforced
enot_enforced
.Per informazioni su come creare chiavi e valori dei tag, consulta la sezione Creazione e definizione di un nuovo tag.
-
Collega il tag
disableServiceAccountKeyCreation
all'organizzazione e imposta il suo valore suenforced
. Tutti i progetti o le cartelle dell'organizzazione ereditano questo valore del tag, a meno che non venga sovrascritto con un valore del tag diverso.Per scoprire come associare i tag alle risorse, consulta Associare i tag alle risorse.
-
Per ogni progetto o cartella che vuoi escludere dal criterio dell'organizzazione, allega
disableServiceAccountKeyCreation
e imposta il valore sunot_enforced
. Impostazione un valore tag per un progetto o una cartella sostituisce in questo modo il valore del tag ereditato dalla dell'organizzazione. -
Crea o aggiorna il criterio dell'organizzazione che impedisce la creazione di chiavi degli account di servizio in modo che non venga applicato il vincolo per le risorse esenti. Questo criterio deve avere le seguenti regole:
-
Configura il vincolo
iam.disableServiceAccountKeyCreation
in modo che non sia applicato a tutte le risorse con il tagdisableServiceAccountKeyCreation: not_enforced
. La condizione in questa regola dovrebbe essere la seguente:resource.matchTag(\"ORGANIZATION_ID/disableServiceAccountKeyCreation\", \"not_enforced\")
-
Configura il vincolo
iam.disableServiceAccountKeyCreation
da applicare in modo forzato tutte le altre risorse.
Per scoprire come creare criteri dell'organizzazione con condizioni dei tag, consulta l'articolo sull'impostazione di criterio dell'organizzazione con tag.
-
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. A tal fine, le coppie di chiavi pubbliche/private forniscono un modo sicuro 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 informazioni sulle coppie di chiave pubblica/privata, consulta Chiavi dell'account di servizio:
Puoi creare una chiave dell'account di servizio utilizzando la console Google Cloud, gcloud CLI,
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 scadono mai. Puoi utilizzare un vincolo dei criteri dell'organizzazione per specificare la lunghezza tempo per il quale una chiave dell'account di servizio è valida. Per maggiori dettagli, vedi Tempi di scadenza per le chiavi gestite dall'utente.
Negli esempi riportati di seguito,
SA_NAME
è il nome del tuo account di servizio ePROJECT_ID
è l'ID del tuo progetto Google Cloud. Puoi recuperare ilSA_NAME@PROJECT_ID.iam.gserviceaccount.com
dalla stringa Account di servizio nella console Google Cloud.Console
- Nella console Google Cloud, vai alla pagina Account di servizio.
I passaggi rimanenti vengono visualizzati 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
gcloud iam service-accounts keys create
. per creare le chiavi degli account di servizio.Sostituisci i seguenti valori:
KEY_FILE
: il percorso di un nuovo file di output per l'URL chiave privata, ad esempio~/sa-private-key.json
.SA_NAME
: 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 scarica il file della chiave, non potrai 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 delle chiavi degli account di servizio per autenticare un'applicazione come dell'account di servizio.
C++
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per ulteriori informazioni, consulta API IAM C++ documentazione di riferimento.
Per eseguire l'autenticazione su IAM, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Prima di iniziare.
C#
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 eseguire l'autenticazione su IAM, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Prima di iniziare.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per ulteriori informazioni, consulta API IAM Go documentazione di riferimento.
Per eseguire l'autenticazione su IAM, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Prima di iniziare.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per ulteriori informazioni, consulta API IAM Java documentazione di riferimento.
Per eseguire l'autenticazione su IAM, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Prima di iniziare.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per ulteriori informazioni, consulta API IAM Python documentazione di riferimento.
Per eseguire l'autenticazione su IAM, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Prima di iniziare.
REST
La
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
: il tuo progetto Google Cloud ID. Gli ID progetto sono stringhe alfanumeriche, ad esempiomy-project
.SA_NAME
: il nome dell'account di servizio per cui vuoi creare una chiave. .KEY_ALGORITHM
: facoltativo. L'algoritmo chiave da utilizzare per la chiave. L'impostazione predefinita, soggetta a modifiche, è una chiave RSA a 2048 bit. Per una lista di tutti i valori possibili, vediServiceAccountKeyAlgorithm
.
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 delle seguenti opzioni:
La risposta contiene una chiave per il tuo account di servizio. La chiave restituita ha il seguente formato: dove
ENCODED_PRIVATE_KEY
è la parte privata della 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, decodificare i dati della chiave privata e salvarli in un file:
Linux
Esegui questo comando:
echo 'ENCODED_PRIVATE_KEY' | base64 --decode > PATH
Sostituisci
PATH
con il percorso del file che ti interessa. in cui 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 codificata (
ENCODED_PRIVATE_KEY
) in un file.Usa
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 che ti interessa in cui salvare la chiave. Utilizza l'estensione del file.json
.
Assicurati di archiviare i dati chiave in modo sicuro, utilizzato per l'autenticazione come account di servizio.
Puoi utilizzare i file delle chiavi degli account di servizio per autenticare un'applicazione come dell'account di servizio.
Elimina una chiave dell'account di servizio
L'eliminazione di una chiave dell'account di servizio impedisce definitivamente di utilizzarla 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 disattivarla e di attendere fino a quando non avrai la certezza che non sia più necessaria. Dopodiché puoi eliminare la chiave.
Come best practice, ruota regolarmente le chiavi degli account di servizio. Per scoprire di più su la rotazione delle chiavi dell'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 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 eliminare la chiave.
- Fai clic sulla scheda Chiavi.
- Nell'elenco delle chiavi, fai clic su Elimina per ogni chiave da eliminare.
gcloud
Esegui
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 poi copia il relativo ID.SA_NAME
: il nome dell'account di servizio che la chiave a cui appartiene.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, consulta Librerie client IAM. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API IAM C++.
Per eseguire l'autenticazione su IAM, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Prima di iniziare.
C#
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per ulteriori informazioni, consulta API IAM C# documentazione di riferimento.
Per autenticarti in IAM, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Prima di iniziare.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per ulteriori informazioni, consulta API IAM Go documentazione di riferimento.
Per eseguire l'autenticazione su IAM, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Prima di iniziare.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per ulteriori informazioni, consulta API IAM Java documentazione di riferimento.
Per autenticarti in IAM, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Prima di iniziare.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per ulteriori informazioni, consulta API IAM Python documentazione di riferimento.
Per eseguire l'autenticazione su IAM, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Prima di iniziare.
REST
La
projects.serviceAccounts.keys.delete
elimina una chiave dell'account di servizio.Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
PROJECT_ID
: il tuo progetto Google Cloud ID. Gli ID progetto sono stringhe alfanumeriche, ad esempiomy-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 il codice ID, elenca tutte le chiavi per l'account di servizio, identifica la chiave vuoi eliminare, quindi copia il relativo ID dalla fine del camponame
. ID della chiave è tutto dopokeys/
.
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 delle seguenti 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 tue chiavi dell'account di servizio pubblico.
- Scopri le best practice per la gestione dell'account di servizio chiave.
- Informazioni su 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 gratuitamenteSalvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-10-14 UTC.