Questa pagina descrive come creare, modificare e limitare le chiavi API. Per informazioni su come utilizzare le chiavi API per accedere alle API di Google, consulta Utilizzare le chiavi API per accedere alle API.
Introduzione alle chiavi API
Esistono due tipi di chiavi API: chiavi API standard e chiavi API associate a un account di servizio.
Chiavi API standard
Le chiavi API standard forniscono un modo per associare una richiesta a un progetto a fini di fatturazione e quota. Quando utilizzi una chiave API standard (una chiave API non associata a un account di servizio) per accedere a un'API, la chiave API non identifica un principal. Senza un principal, la richiesta non può utilizzare Identity and Access Management (IAM) per verificare se il chiamante è autorizzato a eseguire l'operazione richiesta.
Le chiavi API standard possono essere utilizzate con qualsiasi API che le accetta, a meno che non siano state aggiunte limitazioni API alla chiave. Le chiavi API standard non possono essere utilizzate con servizi che non accettano chiavi API, inclusa la modalità express.
Chiavi API associate a un account di servizio
Le chiavi API associate a un account di servizio forniscono l'identità e l'autorizzazione delaccount di serviziot a una richiesta. Quando utilizzi una chiave API associata a un account di servizio per accedere a un'API, la tua richiesta viene elaborata come se avessi utilizzato il account di servizio associato per effettuare la richiesta.
L'unica API che supporta le chiavi API associate è aiplatform.googleapis.com
.
L'associazione di chiavi a un account di servizio è impedita da un vincolo dei criteri dell'organizzazione predefinito. Per modificare questa impostazione, consulta la sezione Attivare il binding delle chiavi ai service account.
Componenti della chiave API
Una chiave API è composta dai seguenti componenti, che ti consentono di gestire e utilizzare la chiave:
- Stringa
- La stringa della chiave API è una stringa criptata, ad esempio,
AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe
. Quando utilizzi una chiave API per accedere a un'API, utilizzi sempre la stringa della chiave. Le chiavi API non hanno un file JSON associato. - ID
- L'ID chiave API viene utilizzato dagli Google Cloud strumenti amministrativi per identificare in modo univoco la chiave. L'ID chiave non può essere utilizzato per accedere alle API. L'ID chiave si trova nell'URL della pagina di modifica della chiave nella console Google Cloud . Puoi anche ottenere l'ID chiave utilizzando Google Cloud CLI per elencare le chiavi nel tuo progetto.
- Nome visualizzato
- Il nome visualizzato è un nome descrittivo facoltativo per la chiave, che puoi impostare quando crei o aggiorni la chiave.
- Account di servizio associato
- Le chiavi API associate a un account di servizio includono l'indirizzo email del account di servizio.
Prima di iniziare
Completa le seguenti attività per utilizzare gli esempi in questa pagina.
Configura 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
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Amministratore chiavi API (
roles/serviceusage.apiKeysAdmin
) -
Limita una chiave API a API specifiche utilizzando la console Google Cloud :
Visualizzatore utilizzo servizio (
roles/serviceusage.serviceUsageViewer
) Nella console Google Cloud , vai alla pagina Policy dell'organizzazione.
Passa all'organizzazione, alla cartella o al progetto per cui vuoi modificare i criteri.
Nella casella Filtro, inserisci
Block service
e fai clic sul nome del filtro Blocca i binding delle chiavi API dell'account di servizio.Fai clic su Gestisci policy.
Nella sezione Origine policy, seleziona Esegui override della policy dell'unità organizzativa principale.
Fai clic su Aggiungi una regola e imposta Applicazione su Off.
Fai clic su Fine.
(Facoltativo) Fai clic su Testa modifiche per avere un'idea di come la policy proposta potrebbe causare violazioni o interruzioni della conformità.
Fai clic su Imposta criterio.
Crea un file denominato
spec.yaml
con il seguente contenuto:name: SCOPE/SCOPE_ID/policies/iam.managed.disableServiceAccountApiKeyCreation spec: rules: - enforce: false
Fornisci i seguenti valori:
SCOPE
:organizations
,folders
oprojects
.SCOPE_ID
: a seconda di SCOPE, l'ID dell'organizzazione, della cartella o del progetto a cui si applica la policy dell'organizzazione.
Esegui il comando
gcloud
seguente per consentire il binding delle chiavi API agli account di servizio:gcloud org-policies set-policy spec.yaml \ --update-mask spec
Nella console Google Cloud , vai alla pagina Credenziali:
Fai clic su Crea credenziali e poi seleziona Chiave API dal menu.
(Facoltativo) Per associare la chiave API a un account di servizio, seleziona la casella di controllo Autentica le chiamate API tramite un service account e poi fai clic su Seleziona un service account per selezionare il account di servizio che vuoi associare alla chiave.
Per saperne di più, consulta la sezione Chiavi API associate a un service account.
Aggiungi limitazioni relative alle chiavi API.
La limitazione delle chiavi API è una best practice. Per maggiori informazioni, vedi Applicare le limitazioni relative alle chiavi API.
Fai clic su Crea. La finestra di dialogo Chiave API creata mostra la stringa per la chiave appena creata.
DISPLAY_NAME
: (Facoltativo). Un nome descrittivo per la chiave.PROJECT_ID
: il tuo ID progetto o nome del progetto Google Cloud .-
URL per il dominio, senza un sottodominio e con un carattere jolly per
il percorso. Ad esempio:
example.com/*
-
Un secondo URL che include un carattere jolly per il sottodominio e un
carattere jolly per il percorso. Ad esempio:
*.example.com/*
-
URL del dominio, senza barra finale. Ad esempio:
www.example.com
sub.example.com
example.com
-
Un secondo URL per il dominio che include un carattere jolly per il percorso.
Ad esempio:
www.example.com/*
sub.example.com/*
example.com/*
Nella console Google Cloud , vai alla pagina Credenziali:
Fai clic sul nome della chiave API che vuoi limitare.
Nella sezione Restrizioni delle applicazioni, seleziona Referrer HTTP.
Per ogni limitazione da aggiungere, fai clic su Aggiungi un elemento, inserisci la limitazione e fai clic su Fine.
Fai clic su Salva per salvare le modifiche e tornare all'elenco delle chiavi API.
Recupera l'ID della chiave che vuoi limitare.
L'ID non è uguale al nome visualizzato o alla stringa della chiave. Puoi ottenere l'ID utilizzando il comando
gcloud services api-keys list
per elencare le chiavi nel tuo progetto.Utilizza il comando
gcloud services api-keys update
per aggiungere limitazioni dei referrer HTTP a una chiave API.Sostituisci i seguenti valori:
KEY_ID
: l'ID della chiave che vuoi limitare.ALLOWED_REFERRER_1
: la tua restrizione del referrer HTTP.Puoi aggiungere tutte le limitazioni necessarie; utilizza le virgole per separarle. Devi fornire tutte le limitazioni dei referrer con il comando di aggiornamento; le limitazioni dei referrer fornite sostituiscono quelle esistenti sulla chiave.
gcloud services api-keys update KEY_ID \ --allowed-referrers="ALLOWED_REFERRER_1"
Recupera l'ID della chiave che vuoi limitare.
L'ID non è uguale al nome visualizzato o alla stringa della chiave. Puoi ottenere l'ID utilizzando il metodo keys.list. L'ID è elencato nel campo
uid
della risposta.Sostituisci
PROJECT_ID
con l'ID o il nome del tuo progetto Google Cloud .curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Utilizza il metodo keys.patch per aggiungere limitazioni di referrer HTTP alla chiave API.
Questa richiesta restituisce un'operazione a lunga esecuzione; devi eseguire il polling dell'operazione per sapere quando viene completata e ottenere lo stato dell'operazione.
Sostituisci i seguenti valori:
ALLOWED_REFERRER_1
: la tua restrizione del referrer HTTP.Puoi aggiungere tutte le limitazioni necessarie; utilizza le virgole per separarle. Devi fornire tutte le limitazioni referrer con la richiesta; le limitazioni referrer fornite sostituiscono quelle esistenti sulla chiave.
PROJECT_ID
: il tuo ID progetto o il tuo nome Google Cloud .KEY_ID
: l'ID della chiave che vuoi limitare.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "browserKeyRestrictions": { "allowedReferrers": ["ALLOWED_REFERRER_1"] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
- IPv4 (
198.51.100.1
) - IPv6 (
2001:db8::1
) - Una subnet che utilizza la notazione CIDR (
198.51.100.0/24
,2001:db8::/64
) Nella console Google Cloud , vai alla pagina Credenziali:
Fai clic sul nome della chiave API che vuoi limitare.
Nella sezione Limitazioni dell'applicazione, seleziona Indirizzi IP.
Per ogni indirizzo IP da aggiungere, fai clic su Aggiungi un elemento, inserisci l'indirizzo e fai clic su Fine.
Fai clic su Salva per salvare le modifiche e tornare all'elenco delle chiavi API.
Recupera l'ID della chiave che vuoi limitare.
L'ID non è uguale al nome visualizzato o alla stringa della chiave. Puoi ottenere l'ID utilizzando il comando
gcloud services api-keys list
per elencare le chiavi nel tuo progetto.Utilizza il comando
gcloud services api-keys update
per aggiungere limitazioni del server (indirizzo IP) a una chiave API.Sostituisci i seguenti valori:
KEY_ID
: l'ID della chiave che vuoi limitare.ALLOWED_IP_ADDR_1
: L'indirizzo IP consentito.Puoi aggiungere tutti gli indirizzi IP che ti servono; utilizza le virgole per separarli.
gcloud services api-keys update KEY_ID \ --allowed-ips="ALLOWED_IP_ADDR_1"
Recupera l'ID della chiave che vuoi limitare.
L'ID non è uguale al nome visualizzato o alla stringa della chiave. Puoi ottenere l'ID utilizzando il metodo keys.list. L'ID è elencato nel campo
uid
della risposta.Sostituisci
PROJECT_ID
con l'ID o il nome del tuo progetto Google Cloud .curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Utilizza il metodo keys.patch per aggiungere limitazioni del server (indirizzo IP) a una chiave API.
Questa richiesta restituisce un'operazione a lunga esecuzione; devi eseguire il polling dell'operazione per sapere quando viene completata e ottenere lo stato dell'operazione.
Sostituisci i seguenti valori:
ALLOWED_IP_ADDR_1
: L'indirizzo IP consentito.Puoi aggiungere tutti gli indirizzi IP che ti servono; utilizza le virgole per separare le limitazioni. Devi fornire tutti gli indirizzi IP con la richiesta; le limitazioni dei referrer fornite sostituiscono eventuali limitazioni degli indirizzi IP esistenti nella chiave.
PROJECT_ID
: il tuo ID progetto o il tuo nome Google Cloud .KEY_ID
: l'ID della chiave che vuoi limitare.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "serverKeyRestrictions": { "allowedIps": ["ALLOWED_IP_ADDR_1"] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
X-Android-Package
X-Android-Cert
Nella console Google Cloud , vai alla pagina Credenziali:
Fai clic sul nome della chiave API che vuoi limitare.
Nella sezione Restrizioni delle applicazioni, seleziona App per Android.
Per ogni app per Android che vuoi aggiungere, fai clic su Aggiungi un elemento e inserisci il nome del pacchetto e l'impronta del certificato SHA-1, quindi fai clic su Fine.
Fai clic su Salva per salvare le modifiche e tornare all'elenco delle chiavi API.
Recupera l'ID della chiave che vuoi limitare.
L'ID non è uguale al nome visualizzato o alla stringa della chiave. Puoi ottenere l'ID utilizzando il comando
gcloud services api-keys list
per elencare le chiavi nel tuo progetto.Utilizza il comando
gcloud services api-keys update
per specificare le app per Android che possono utilizzare una chiave API.Sostituisci i seguenti valori:
KEY_ID
: l'ID della chiave che vuoi limitare.SHA1_FINGERPRINT
ePACKAGE_NAME
: le informazioni sull'app per un'app Android che può utilizzare la chiave.Puoi aggiungere tutte le app che vuoi; utilizza flag
--allowed-application
aggiuntivi.
gcloud services api-keys update KEY_ID \ --allowed-application=sha1_fingerprint=SHA1_FINGERPRINT_1,package_name=PACKAGE_NAME_1 \ --allowed-application=sha1_fingerprint=SHA1_FINGERPRINT_2,package_name=PACKAGE_NAME_2
Recupera l'ID della chiave che vuoi limitare.
L'ID non è uguale al nome visualizzato o alla stringa della chiave. Puoi ottenere l'ID utilizzando il metodo keys.list. L'ID è elencato nel campo
uid
della risposta.Sostituisci
PROJECT_ID
con l'ID o il nome del tuo progetto Google Cloud .curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Utilizza il metodo keys.patch per specificare le app per Android che possono utilizzare una chiave API.
Questa richiesta restituisce un'operazione a lunga esecuzione; devi eseguire il polling dell'operazione per sapere quando viene completata e ottenere lo stato dell'operazione.
Sostituisci i seguenti valori:
SHA1_FINGERPRINT_1
ePACKAGE_NAME_1
: le informazioni sull'app per un'app Android che può utilizzare la chiave.Puoi aggiungere le informazioni per tutte le app necessarie; utilizza le virgole per separare gli oggetti AndroidApplication. Devi fornire tutte le applicazioni con la richiesta; le applicazioni fornite sostituiscono le applicazioni consentite esistenti nella chiave.
PROJECT_ID
: il tuo ID progetto o il tuo nome Google Cloud .KEY_ID
: l'ID della chiave che vuoi limitare.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "androidKeyRestrictions": { "allowedApplications": [ { "sha1Fingerprint": "SHA1_FINGERPRINT_1", "packageName": "PACKAGE_NAME_1" }, ] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
Nella console Google Cloud , vai alla pagina Credenziali:
Fai clic sul nome della chiave API che vuoi limitare.
Nella sezione Restrizioni delle applicazioni, seleziona App per iOS.
Per ogni app per iOS da aggiungere, fai clic su Aggiungi un elemento e inserisci l'ID pacchetto, quindi fai clic su Fine.
Fai clic su Salva per salvare le modifiche e tornare all'elenco delle chiavi API.
Recupera l'ID della chiave che vuoi limitare.
L'ID non è uguale al nome visualizzato o alla stringa della chiave. Puoi ottenere l'ID utilizzando il comando
gcloud services api-keys list
per elencare le chiavi nel tuo progetto.Utilizza il metodo
gcloud services api-keys update
per specificare le app per iOS che possono utilizzare la chiave.Sostituisci i seguenti valori:
KEY_ID
: l'ID della chiave che vuoi limitare.ALLOWED_BUNDLE_ID
: l'ID bundle di un'app per iOS che vuoi poter utilizzare questa chiave API.Puoi aggiungere tutti gli ID bundle necessari; utilizza le virgole per separarli.
gcloud services api-keys update KEY_ID \ --allowed-bundle-ids=ALLOWED_BUNDLE_ID_1,ALLOWED_BUNDLE_ID_2
Recupera l'ID della chiave che vuoi limitare.
L'ID non è uguale al nome visualizzato o alla stringa della chiave. Puoi ottenere l'ID utilizzando il metodo keys.list. L'ID è elencato nel campo
uid
della risposta.Sostituisci
PROJECT_ID
con l'ID o il nome del tuo progetto Google Cloud .curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Utilizza il metodo keys.patch per specificare le app per iOS che possono utilizzare una chiave API.
Questa richiesta restituisce un'operazione a lunga esecuzione; devi eseguire il polling dell'operazione per sapere quando viene completata e ottenere lo stato dell'operazione.
Sostituisci i seguenti valori:
ALLOWED_BUNDLE_ID
: l'ID bundle di un'app per iOS che può utilizzare la chiave.Puoi aggiungere le informazioni per tutte le app che ti servono; utilizza le virgole per separare gli ID bundle. Devi fornire tutti gli ID bundle con la richiesta; gli ID bundle forniti sostituiscono le applicazioni consentite esistenti nella chiave.
PROJECT_ID
: il tuo ID progetto o il tuo nome Google Cloud .KEY_ID
: l'ID della chiave che vuoi limitare.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "iosKeyRestrictions": { "allowedBundleIds": ["ALLOWED_BUNDLE_ID_1","ALLOWED_BUNDLE_ID_2"] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
Nella console Google Cloud , vai alla pagina Credenziali:
Fai clic sul nome della chiave API che vuoi limitare.
Nella sezione Restrizioni delle API, fai clic su Limita chiave.
Seleziona tutte le API a cui verrà utilizzata la tua chiave API per accedere.
Fai clic su Salva per salvare le modifiche e tornare all'elenco delle chiavi API.
Recupera l'ID della chiave che vuoi limitare.
L'ID non è uguale al nome visualizzato o alla stringa della chiave. Puoi ottenere l'ID utilizzando il comando
gcloud services api-keys list
per elencare le chiavi nel tuo progetto.Utilizza il comando
gcloud services api-keys update
per specificare a quali servizi è possibile accedere con una chiave API.Sostituisci i seguenti valori:
KEY_ID
: l'ID della chiave che vuoi limitare.SERVICE_1
,SERVICE_2
...: I nomi dei servizi delle API a cui è possibile accedere con la chiave.Devi fornire tutti i nomi dei servizi con il comando di aggiornamento; i nomi dei servizi forniti sostituiscono tutti i servizi esistenti sulla chiave.
Puoi trovare il nome del servizio cercando l'API nella dashboard delle API. I nomi dei servizi sono stringhe come
bigquery.googleapis.com
.gcloud services api-keys update KEY_ID \ --api-target=service=SERVICE_1 --api-target=service=SERVICE_2
Recupera l'ID della chiave che vuoi limitare.
L'ID non è uguale al nome visualizzato o alla stringa della chiave. Puoi ottenere l'ID utilizzando il metodo keys.list. L'ID è elencato nel campo
uid
della risposta.Sostituisci
PROJECT_ID
con l'ID o il nome del tuo progetto Google Cloud .curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Utilizza il metodo keys.patch per specificare a quali servizi può essere utilizzata una chiave API per accedere.
Questa richiesta restituisce un'operazione a lunga esecuzione; devi eseguire il polling dell'operazione per sapere quando viene completata e ottenere lo stato dell'operazione.
Sostituisci i seguenti valori:
SERVICE_1
,SERVICE_2
...: I nomi dei servizi delle API a cui è possibile accedere con la chiave.Devi fornire tutti i nomi dei servizi con la richiesta; i nomi dei servizi forniti sostituiscono tutti i servizi esistenti nella chiave.
Puoi trovare il nome del servizio cercando l'API nella dashboard delle API. I nomi dei servizi sono stringhe come
bigquery.googleapis.com
.PROJECT_ID
: il tuo ID progetto o il tuo nome Google Cloud .KEY_ID
: l'ID della chiave che vuoi limitare.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "apiTargets": [ { "service": "SERVICE_1" }, { "service" : "SERVICE_2" }, ] } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
Nella console Google Cloud , vai alla pagina Credenziali:
Fai clic sul nome della chiave API che vuoi copiare.
Viene visualizzata la pagina dei dettagli della chiave API.
Fai clic su Crea una copia.
Inserisci un nome per la nuova chiave API e conferma che le limitazioni siano corrette.
Fai clic su Crea.
Nella console Google Cloud , vai alla pagina Credenziali:
Fai clic sul nome della chiave API che vuoi ruotare per aprire la relativa pagina dei dettagli.
Fai clic su Ruota la chiave.
Inserisci un nome per la nuova chiave API e conferma che le limitazioni siano corrette.
Fai clic su Crea.
Copia la stringa della chiave e aggiorna le tue applicazioni in modo che utilizzino la nuova stringa.
Dopo aver aggiornato tutte le applicazioni in modo che utilizzino la nuova chiave, torna alla pagina dei dettagli della nuova chiave. Nella sezione Chiave precedente, fai clic su Elimina la chiave precedente per eliminare la vecchia chiave.
Se ti accorgi di aver eliminato la vecchia chiave prima del tempo, puoi annullare l'eliminazione.
Nella console Google Cloud , vai alla pagina Credenziali:
Fai clic su Ripristina credenziali eliminate.
Individua la chiave API eliminata che vuoi ripristinare e fai clic su Ripristina.
La ripristino di una chiave API potrebbe richiedere alcuni minuti. Dopo la propagazione, la chiave API ripristinata viene visualizzata nell'elenco delle chiavi API.
Recupera l'ID della chiave che vuoi ripristinare.
L'ID non è uguale al nome visualizzato o alla stringa della chiave. Puoi ottenere l'ID utilizzando il comando
gcloud services api-keys list --show-deleted
per elencare le chiavi eliminate nel progetto.Utilizza il comando
gcloud services api-keys undelete
per ripristinare una chiave API.gcloud services api-keys undelete KEY_ID
Sostituisci i seguenti valori:
KEY_ID
: l'ID della chiave che vuoi recuperare.
Recupera l'ID della chiave che vuoi ripristinare.
L'ID non è uguale al nome visualizzato o alla stringa della chiave. Puoi ottenere l'ID utilizzando il metodo keys.list, con il parametro di query
showDeleted
impostato sutrue
. L'ID chiave è elencato nel campouid
della risposta.Sostituisci
PROJECT_ID
con l'ID o il nome del tuo progetto Google Cloud .curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys?showDeleted=true"
Utilizza il metodo undelete per annullare l'eliminazione della chiave API.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID:undelete"
Questa richiesta restituisce un'operazione a lunga esecuzione; devi eseguire il polling dell'operazione per sapere quando viene completata e ottenere lo stato dell'operazione.
Sostituisci i seguenti valori:
PROJECT_ID
: il tuo ID progetto o il tuo nome Google Cloud .KEY_ID
: l'ID della chiave che vuoi limitare.
Nella console Google Cloud , vai alla pagina Credenziali:
Se la chiave API è associata a un account di servizio, viene visualizzato l'identificatore del account di servizio.
Recupera l'ID della chiave.
L'ID non è uguale al nome visualizzato o alla stringa della chiave. Puoi ottenere l'ID utilizzando il comando
gcloud services api-keys list
per elencare le chiavi nel tuo progetto.Utilizza il comando
gcloud services api-keys describe
per descrivere la chiave API.gcloud services api-keys describe KEY_ID
Se la chiave API è associata a un account di servizio, viene visualizzato il campo
serviceAccountEmail
.- Scopri di più sulle best practice per proteggere le chiavi API.
- Scopri di più sull'API API Keys.
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 esempi di C++ questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione Google Cloud .
Java
Per utilizzare gli esempi di Java questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione Google Cloud .
Python
Per utilizzare gli esempi di Python questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione Google Cloud .
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.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Per saperne di più, consulta la sezione Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per gestire le chiavi API, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto:
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.
Attiva l'associazione delle chiavi ai service account
Prima di poter associare una chiave API a un service account, devi
prima impostare il
vincolo dei criteri dell'organizzazione constraints/iam.managed.disableServiceAccountApiKeyCreation
su false
. La modifica del criterio dell'organizzazione richiede una
risorsa organizzazione associata.
I progetti senza un'organizzazione non sono supportati.
Per modificare il vincolo di policy, completa le seguenti istruzioni.
Console
gcloud
Crea una chiave API
Per creare una chiave API, utilizza una delle seguenti opzioni:
Console
gcloud
Utilizza il comando gcloud services api-keys create
per creare una chiave API.
Sostituisci DISPLAY_NAME
con un nome descrittivo per la chiave.
gcloud services api-keys create \
--display-name=DISPLAY_NAME
(Facoltativo) Per associare la chiave API a un account di servizio, utilizza gcloud beta
invece, con il flag --service-account
:
gcloud beta services api-keys create \
--display-name=DISPLAY_NAME \
--service-account=SERVICE_ACCOUNT_EMAIL_ADDRESS
Per ulteriori informazioni, consulta la sezione Chiavi API associate a un service account.
C++
Per eseguire questo esempio, devi installare la libreria client API Keys.
Java
Per eseguire questo esempio, devi installare la
libreria client google-cloud-apikeys
.
Python
Per eseguire questo esempio, devi installare la libreria client API Keys.
REST
Utilizza il
metodo keys.create
per creare una chiave API. Questa richiesta restituisce un'operazione di lunga durata; devi eseguire il polling dell'operazione per ottenere le informazioni per la nuova chiave.
Sostituisci i seguenti valori:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d {'"displayName" : "DISPLAY_NAME"'} \ "https://apikeys.googleapis.com/v2/projects/PROJECT/locations/global/keys"
(Facoltativo) Per associare la chiave API a un account di servizio, utilizza il seguente comando:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d {'"displayName" : "DISPLAY_NAME", "serviceAccountEmail" : "SERVICE_ACCOUNT_EMAIL"'} \ "https://apikeys.googleapis.com/v2/projects/PROJECT/locations/global/keys"
Per saperne di più, consulta la sezione Chiavi API associate a un service account.
Per saperne di più sulla creazione di chiavi API utilizzando l'API REST, consulta la sezione Creazione di una chiave API nella documentazione dell'API API Keys.
Applica le limitazioni relative alle chiavi API
Per impostazione predefinita, le chiavi API non sono soggette a restrizioni. Le chiavi senza limitazioni non sono sicure perché possono essere utilizzate da chiunque e ovunque. Per le applicazioni di produzione, devi impostare sia le limitazioni delle applicazioni sia le limitazioni delle API.
Aggiungere limitazioni delle applicazioni
Le limitazioni delle applicazioni specificano quali siti web, indirizzi IP o app possono utilizzare una chiave API.
Puoi applicare un solo tipo di limitazione delle applicazioni alla volta. Scegli il tipo di limitazione in base al tipo di applicazione:
Opzione | Tipo di applicazione | Note |
---|---|---|
Referrer HTTP | Applicazioni web | Specifica i siti web che possono utilizzare la chiave. |
Indirizzi IP | Applicazioni chiamate da server specifici | Specifica i server o i cron job che possono utilizzare la chiave. Questa è l'unica limitazione disponibile se associ la chiave API a un account di servizio. |
App per Android | App Android | Specifica l'applicazione Android che può utilizzare la chiave. |
App per iOS | Applicazioni iOS | Specifica i bundle iOS che possono utilizzare la chiave. |
Referrer HTTP
Per limitare i siti web che possono utilizzare la tua chiave API, aggiungi una o più limitazioni del referrer HTTP.
Puoi sostituire un carattere jolly (*
) con il sottodominio o il percorso, ma
non puoi inserire un carattere jolly al centro dell'URL. Ad esempio,
*.example.com
è valido e accetta tutti i siti che terminano con .example.com
. Tuttavia,
mysubdomain*.example.com
non è una limitazione valida.
I numeri di porta possono essere inclusi nelle limitazioni referrer HTTP. Se includi un numero di porta, vengono abbinate solo le richieste che utilizzano quella porta. Se non specifica un numero di porta, le richieste provenienti da qualsiasi numero di porta vengono abbinate.
La tabella seguente mostra alcuni scenari di esempio e le limitazioni del browser:
Scenario | Restrizioni |
---|---|
Consentire un URL specifico | Aggiungi un URL con un percorso esatto. Ad esempio:www.example.com/path www.example.com/path/path Alcuni browser implementano un criterio referrer che invia solo l'URL di origine per le richieste multiorigine. Gli utenti di questi browser non possono utilizzare chiavi con limitazioni degli URL specifiche per la pagina. |
Consenti qualsiasi URL nel tuo sito | Devi impostare due URL nell'elenco allowedReferers . |
Consenti qualsiasi URL in un singolo sottodominio o dominio nudo |
Devi impostare due URL nell'elenco |
Per limitare la tua chiave API a siti web specifici, utilizza una delle seguenti opzioni:
Console
gcloud
Java
Per eseguire questo esempio, devi installare la
libreria client google-cloud-apikeys
.
Python
Per eseguire questo esempio, devi installare la libreria client API Keys.
REST
Per ulteriori informazioni sull'aggiunta di limitazioni dei referrer HTTP a una chiave utilizzando l'API REST, consulta Aggiunta di limitazioni del browser nella documentazione dell'API API Keys.
Indirizzi IP
Puoi specificare uno o più indirizzi IP dei chiamanti, ad esempio un server web o un cron job, autorizzati a utilizzare la tua chiave API. Puoi specificare gli indirizzi IP in uno dei seguenti formati:
L'utilizzo di localhost
non è supportato per le limitazioni del server.
Per limitare la chiave API a indirizzi IP specifici, utilizza una delle seguenti opzioni:
Console
gcloud
Java
Per eseguire questo esempio, devi installare la
libreria client google-cloud-apikeys
.
Python
Per eseguire questo esempio, devi installare la libreria client API Keys.
REST
Per saperne di più sull'aggiunta di limitazioni degli indirizzi IP a una chiave utilizzando l'API REST, consulta la sezione Aggiunta di limitazioni del server nella documentazione dell'API API Keys.
App Android
Puoi limitare l'utilizzo di una chiave API ad app per Android specifiche. Devi fornire il nome del pacchetto e la fingerprint del certificato SHA-1 a 20 byte per ciascuna app.
Quando utilizzi la chiave API in una richiesta, devi specificare il nome del pacchetto e l'impronta del certificato utilizzando le seguenti intestazioni HTTP:
Per limitare la chiave API a una o più app per Android, utilizza una delle seguenti opzioni:
Console
gcloud
Java
Per eseguire questo esempio, devi installare la
libreria client google-cloud-apikeys
.
Python
Per eseguire questo esempio, devi installare la libreria client API Keys.
REST
Per saperne di più sull'aggiunta di limitazioni per le app per Android a una chiave utilizzando l'API REST, consulta Aggiunta di limitazioni per Android nella documentazione dell'API API Keys.
App per iOS
Puoi limitare l'utilizzo di una chiave API a specifiche app per iOS fornendo l'ID pacchetto di ciascuna app.
Quando utilizzi la chiave API in una richiesta, devi specificare l'ID pacchetto utilizzando
l'intestazione HTTP X-Ios-Bundle-Identifier
.
Per limitare la tua chiave API a una o più app per iOS, utilizza una delle seguenti opzioni:
Console
gcloud
Java
Per eseguire questo esempio, devi installare la
libreria client google-cloud-apikeys
.
Python
Per eseguire questo esempio, devi installare la libreria client API Keys.
REST
Per ulteriori informazioni sull'aggiunta di limitazioni alle app per iOS a una chiave utilizzando l'API REST, consulta la sezione Aggiunta di limitazioni per iOS nella documentazione dell'API API Keys.
Aggiungi limitazioni dell'API
Le restrizioni delle API specificano quali API possono essere chiamate utilizzando la chiave API.
Per aggiungere restrizioni API, utilizza una delle seguenti opzioni:
Console
gcloud
Java
Per eseguire questo esempio, devi installare la
libreria client google-cloud-apikeys
.
Python
Per eseguire questo esempio, devi installare la libreria client API Keys.
REST
Per ulteriori informazioni sull'aggiunta di limitazioni API a una chiave utilizzando l'API REST, consulta Aggiunta di limitazioni API nella documentazione dell'API API Keys.
Recuperare le informazioni del progetto da una stringa chiave
Puoi determinare a quale Google Cloud progetto è associata una chiave API dalla relativa stringa.
Sostituisci KEY_STRING
con la stringa della chiave per cui hai bisogno delle informazioni sul progetto.
gcloud
Utilizza il
comando gcloud services api-keys lookup
per ottenere l'ID progetto da una stringa di chiave.
gcloud services api-keys lookup KEY_STRING
Java
Per eseguire questo esempio, devi installare la
libreria client google-cloud-apikeys
.
Python
Per eseguire questo esempio, devi installare la libreria client API Keys.
REST
Utilizza il
metodo lookupKey
per ottenere l'ID progetto da una stringa di chiave.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://apikeys.googleapis.com/v2/keys:lookupKey?keyString=KEY_STRING"
Creare una copia di una chiave API
Se hai bisogno di una nuova chiave API con le stesse limitazioni di una chiave API esistente, puoi crearne una copia. Questa operazione crea una nuova chiave API con una stringa e un ID chiave unici, con le limitazioni della chiave API esistente.
L'operazione di copia è disponibile solo nella Google Cloud console. Per utilizzare altri metodi, segui i passaggi per creare una chiave API e poi applica le stesse limitazioni della chiave API alla chiave API appena generata.
Ruotare una chiave API
Ruotando periodicamente le chiavi API, puoi limitare l'impatto di eventuali chiavi API compromesse.
Quando ruoti una chiave API, crei una nuova chiave con le stesse limitazioni della chiave precedente e aggiorni le tue applicazioni in modo che utilizzino la nuova chiave. Dopo aver aggiornato tutte le applicazioni, elimina la vecchia chiave.
L'operazione di rotazione è disponibile solo nella Google Cloud console. Per utilizzare altri metodi, segui i passaggi per creare una chiave API e poi applica le stesse limitazioni della chiave API alla chiave API appena generata. Dopo aver aggiornato le applicazioni in modo che utilizzino la nuova chiave, puoi eliminare la vecchia chiave.
Annullamento eliminazione di una chiave API
Se elimini una chiave API per errore, puoi annullare l'eliminazione (ripristinarla) entro 30 giorni dall'eliminazione. Dopo 30 giorni, non puoi annullare l'eliminazione della chiave API.
Console
gcloud
Java
Per eseguire questo esempio, devi installare la
libreria client google-cloud-apikeys
.
REST
Determinare il tipo di chiave API
Puoi determinare se la chiave API è associata a un account di servizio ispezionando la chiave.
Console
gcloud
Eseguire il polling delle operazioni a lunga esecuzione
I metodi dell'API API Keys utilizzano operazioni a lunga esecuzione. Se utilizzi l'API REST per creare e gestire le chiavi API, viene restituito un oggetto operazione dalla richiesta di metodo iniziale. Utilizzi il nome dell'operazione per eseguire il polling dell'operazione a lunga esecuzione. Al termine della richiesta a lunga esecuzione, il polling dell'operazione restituisce i dati della richiesta a lunga esecuzione.
Per eseguire il polling di un'operazione a lunga esecuzione dell'API API Keys, utilizza il metodo
operations.get
.
Sostituisci OPERATION_NAME
con il nome dell'operazione restituito
dall'operazione a lunga esecuzionea. Ad esempio,
operations/akmf.p7-358517206116-cd10a88a-7740-4403-a8fd-979f3bd7fe1c
.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://apikeys.googleapis.com/v2/OPERATION_NAME"
Limiti per le chiavi API
Puoi creare fino a 300 chiavi API per progetto. Questo limite è un limite di sistema e non può essere modificato utilizzando una richiesta di aumento della quota. Se sono necessarie più chiavi API, devi utilizzare più di un progetto.
Puoi aggiungere fino a 1200 limitazioni delle applicazioni a una chiave API.
Passaggi successivi
Salvo 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 2025-07-15 UTC.