Questa pagina descrive come utilizzare le chiavi API per l'autenticazione nelle API e nei servizi Google Cloud che supportano le chiavi API.
La maggior parte delle API Google Cloud non supporta le chiavi API. Verifica che l'API che vuoi utilizzare supporti le chiavi API prima di utilizzare questo metodo di autenticazione.
Per informazioni sull'utilizzo delle chiavi API per l'autenticazione su Google Maps Platform, consulta la documentazione di Google Maps Platform. Per ulteriori informazioni sull'API API Keys, consulta la documentazione relativa all'API API Keys.Introduzione alle chiavi API
Quando utilizzi una chiave API per l'autenticazione in un'API, questa non identifica un'entità né fornisce informazioni di autorizzazione. Di conseguenza, la richiesta non utilizza Identity and Access Management (IAM) per verificare se il chiamante dispone dell'autorizzazione per eseguire l'operazione richiesta.
La chiave API associa la richiesta a un progetto Google Cloud ai fini della fatturazione e delle quote. Poiché le chiavi API non identificano il chiamante, vengono spesso utilizzate per accedere a dati o risorse pubblici.
Molte API Google Cloud non accettano chiavi API per l'autenticazione. Consulta la documentazione sull'autenticazione per il servizio o l'API che vuoi utilizzare per determinare se supporta le chiavi API.
Una chiave API include i seguenti componenti, che puoi utilizzare per 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 l'autenticazione, usi sempre la stringa della chiave. Le chiavi API non hanno un file JSON associato. - ID
- L'ID chiave API viene utilizzato dagli strumenti amministrativi di Google Cloud per identificare in modo univoco la chiave. L'ID chiave non può essere utilizzato per l'autenticazione. L'ID chiave è disponibile 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 della chiave, che puoi impostare quando crei o aggiorni la chiave.
Per gestire le chiavi API, devi disporre del ruolo Amministratore chiavi API (roles/serviceusage.apiKeysAdmin
) nel progetto.
Prima di iniziare
Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.
gcloud
In questa pagina puoi utilizzare gli esempi di gcloud CLI da uno dei seguenti ambienti di sviluppo:
-
Cloud Shell: per utilizzare un terminale online con gcloud CLI già configurato, attiva Cloud Shell.
In fondo a questa pagina viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. L'inizializzazione della sessione può richiedere alcuni secondi.
-
shell locale: per utilizzare gcloud CLI in un ambiente di sviluppo locale, installa e initialize gcloud CLI.
Java
Per utilizzare gli esempi Java in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud.
Python
Per utilizzare gli esempi Python in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Crea credenziali di autenticazione locali per il tuo Account Google:
gcloud auth application-default login
Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
crea una chiave API
Per creare una chiave API, utilizza una delle seguenti opzioni:
Console
Nella console Google Cloud, vai alla pagina Credenziali:
Fai clic su Crea credenziali e seleziona Chiave API dal menu.
La finestra di dialogo Chiave API creata mostra la stringa della chiave appena creata.
gcloud
Puoi usare il comando gcloud beta services api-keys create
per creare una chiave API.
Sostituisci DISPLAY_NAME
con un nome descrittivo per la
chiave.
gcloud beta services api-keys create --display-name=DISPLAY_NAME
Java
Per eseguire questo esempio, devi installare la libreria client di google-cloud-apikeys
.
Python
Per eseguire questo esempio, devi installare la libreria client delle chiavi API.
REST
Puoi usare il metodo keys.create
per creare una chiave API. Questa richiesta restituisce un'operazione a lunga esecuzione; devi eseguire il polling dell'operazione per ottenere le informazioni per la nuova chiave.
Sostituisci i seguenti valori:
DISPLAY_NAME
: facoltativo. Un nome descrittivo per la chiave.PROJECT_ID
: l'ID o il nome del tuo progetto Google Cloud.
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"
Per ulteriori informazioni sulla creazione di chiavi API utilizzando l'API REST, consulta Creazione di una chiave API nella documentazione dell'API API Keys.
Copia la stringa della chiave e proteggila. A meno che non utilizzi una chiave di test che intendi eliminare in un secondo momento, aggiungi limitazioni relative alle chiavi API e delle applicazioni.
Usa una chiave API
Se un'API supporta l'uso di chiavi API, puoi utilizzare le chiavi API per autenticare l'API. Puoi utilizzare le chiavi API con le richieste REST e con le librerie client che le supportano.
Utilizzo di una chiave API con REST
Puoi passare la chiave API in una chiamata API REST come parametro di query con il seguente formato. Sostituisci API_KEY
con la stringa chiave della
chiave API.
Ad esempio, per passare una chiave API per una richiesta API Cloud Natural Language per documents.analyzeEntities
:
POST https://language.googleapis.com/v1/documents:analyzeEntities?key=API_KEY
In alternativa, puoi utilizzare l'intestazione x-goog-api-key
per trasmettere la chiave.
Questa intestazione deve essere utilizzata con le richieste gRPC.
curl -X POST \ -H "X-goog-api-key: API_KEY" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://translation.googleapis.com/language/translate/v2"
Utilizzo di una chiave API con le librerie client
Il supporto delle librerie client per le chiavi API è specifico per la lingua.
Python
Questo esempio utilizza l'API Cloud Natural Language, che supporta le chiavi API per l'autenticazione, per dimostrare come fornire una chiave API alla libreria.
Per eseguire questo esempio, devi installare la libreria client di Natural Language e la libreria client delle chiavi API.
Proteggi una chiave API
Quando utilizzi le chiavi API nelle tue applicazioni, assicurati che siano protette sia durante l'archiviazione che la trasmissione. L'esposizione pubblica delle tue chiavi API può comportare addebiti imprevisti sul tuo account. Per proteggere le chiavi API, segui queste best practice:
Aggiungi le limitazioni relative alle chiavi API alla chiave.
Aggiungendo limitazioni, puoi limitare i modi in cui una chiave API può essere utilizzata, riducendo l'impatto di una chiave API compromessa.
Eliminare le chiavi API non necessarie per ridurre al minimo l'esposizione agli attacchi.
Ricrea le chiavi API periodicamente.
Creare periodicamente nuove chiavi API, eliminare le chiavi precedenti e aggiornare le applicazioni per utilizzare le nuove chiavi API.
Applica limitazioni relative alle chiavi API
Le chiavi API non sono limitate per impostazione predefinita. Le chiavi senza restrizioni non sono sicure perché possono essere utilizzate da chiunque, ovunque. Per le applicazioni di produzione, devi impostare sia le limitazioni delle applicazioni sia le limitazioni delle API.
Aggiungi limitazioni delle applicazioni
Le limitazioni delle applicazioni specificano i siti web, gli indirizzi IP o le app che 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. |
App per Android | App Android | Specifica l'app 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 per i 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, *.google.com
è valido e accetta tutti i siti che terminano con .google.com
. Tuttavia, mysubdomain*.google.com
non è una limitazione valida.
I numeri di porta possono essere inclusi nelle limitazioni dei referrer HTTP. Se includi un numero di porta, vengono soddisfatte solo le richieste che utilizzano tale porta. Se non specifichi un numero di porta, vengono soddisfatte le richieste da qualsiasi numero di porta.
Puoi aggiungere fino a 1200 referrer HTTP a una chiave API.
La tabella seguente mostra alcuni scenari di esempio e 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 restrizioni URL specifiche per le pagine. |
Consenti qualsiasi URL nel tuo sito | Devi impostare due URL nell'elenco allowedReferers .
|
Consenti qualsiasi URL in un singolo sottodominio o dominio semplice |
Devi impostare due URL nell'elenco
|
Per limitare la chiave API a siti web specifici, utilizza una delle seguenti opzioni:
Console
Nella console Google Cloud, vai alla pagina Credenziali:
Fai clic sul nome della chiave API che vuoi limitare.
Nella sezione Limitazioni delle applicazioni, seleziona Referrer HTTP.
Per ogni restrizione da aggiungere, fai clic su Aggiungi un elemento, inserisci la restrizione e fai clic su Fine.
Fai clic su Salva per salvare le modifiche e tornare all'elenco delle chiavi API.
gcloud
Recupera l'ID della chiave che vuoi limitare.
L'ID non corrisponde 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 beta 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 limitazione per i referrer HTTP.Puoi aggiungere tutte le restrizioni necessarie. Utilizza le virgole per separare le restrizioni. Devi specificare tutte le limitazioni relative ai referrer con il comando update. Le limitazioni relative ai referrer fornite sostituiscono eventuali limitazioni relative ai referrer esistenti per la chiave.
gcloud beta services api-keys update KEY_ID \ --allowed-referrers="ALLOWED_REFERRER_1"
Java
Per eseguire questo esempio, devi installare la libreria client di google-cloud-apikeys
.
Python
Per eseguire questo esempio, devi installare la libreria client delle chiavi API.
REST
Recupera l'ID della chiave che vuoi limitare.
L'ID non corrisponde 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 dei 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 limitazione per i referrer HTTP.Puoi aggiungere tutte le restrizioni necessarie. Utilizza le virgole per separare le restrizioni. Devi specificare tutte le limitazioni relative ai referrer con la richiesta; le limitazioni relative ai referrer fornite sostituiscono eventuali limitazioni relative ai referrer esistenti per la chiave.
PROJECT_ID
: l'ID o il nome del tuo progetto 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"
Per ulteriori informazioni sull'aggiunta delle limitazioni dei referrer HTTP a una chiave utilizzando l'API REST, consulta Aggiunta delle 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, che sono autorizzati a utilizzare la tua chiave API. Puoi specificare gli indirizzi IP in uno dei seguenti formati:
- IPv4 (
198.51.100.1
) - IPv6 (
2001:db8::1
) - Una subnet che utilizza la notazione CIDR (
198.51.100.0/24
,2001:db8::/64
)
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
Nella console Google Cloud, vai alla pagina Credenziali:
Fai clic sul nome della chiave API che vuoi limitare.
Nella sezione Limitazioni delle applicazioni, seleziona Indirizzi IP.
Per ogni indirizzo IP che vuoi 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.
gcloud
Recupera l'ID della chiave che vuoi limitare.
L'ID non corrisponde 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 beta 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
: il tuo indirizzo IP consentito.Puoi aggiungere un numero illimitato di indirizzi IP utilizzando le virgole per separarli.
gcloud beta services api-keys update KEY_ID \ --allowed-ips="ALLOWED_IP_ADDR_1"
Java
Per eseguire questo esempio, devi installare la libreria client di google-cloud-apikeys
.
Python
Per eseguire questo esempio, devi installare la libreria client delle chiavi API.
REST
Recupera l'ID della chiave che vuoi limitare.
L'ID non corrisponde 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
: il tuo indirizzo IP consentito.Puoi aggiungere tutti gli indirizzi IP che vuoi. Utilizza le virgole per separare le limitazioni. Devi fornire tutti gli indirizzi IP con la richiesta; le limitazioni per i referrer fornite sostituiscono eventuali limitazioni esistenti degli indirizzi IP sulla chiave.
PROJECT_ID
: l'ID o il nome del tuo progetto 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"
Per ulteriori informazioni sull'aggiunta di limitazioni degli indirizzi IP a una chiave mediante l'API REST, consulta Aggiunta delle limitazioni del server nella documentazione dell'API API Keys.
App per Android
Puoi limitare l'utilizzo di una chiave API a specifiche app per Android. Devi fornire il nome del pacchetto e l'impronta digitale del certificato SHA-1 a 20 byte per ogni app.
Quando utilizzi la chiave API in una richiesta, devi specificare il nome del pacchetto e la fingerprint del certificato tramite le seguenti intestazioni HTTP:
X-Android-Package
X-Android-Cert
Per limitare la chiave API a una o più app per Android, utilizza una delle seguenti opzioni:
Console
Nella console Google Cloud, vai alla pagina Credenziali:
Fai clic sul nome della chiave API che vuoi limitare.
Nella sezione Limitazioni delle applicazioni, seleziona App Android.
Per ogni app per Android che vuoi aggiungere, fai clic su Aggiungi un elemento e inserisci il nome del pacchetto e l'impronta digitale del certificato SHA-1, quindi fai clic su Fine.
Fai clic su Salva per salvare le modifiche e tornare all'elenco delle chiavi API.
gcloud
Recupera l'ID della chiave che vuoi limitare.
L'ID non corrisponde 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 beta 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 per un'app Android che può utilizzare la chiave.Puoi aggiungere tutte le app che vuoi; utilizza ulteriori flag
--allowed-application
.
gcloud beta 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
Java
Per eseguire questo esempio, devi installare la libreria client di google-cloud-apikeys
.
Python
Per eseguire questo esempio, devi installare la libreria client delle chiavi API.
REST
Recupera l'ID della chiave che vuoi limitare.
L'ID non corrisponde 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/"
Usa 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
e PACKAGE_NAME_1: le informazioni 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 eventuali applicazioni consentite esistenti sulla chiave.
PROJECT_ID
: l'ID o il nome del tuo progetto 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"
Per saperne di più sull'aggiunta di limitazioni per le app Android a una chiave utilizzando l'API REST, consulta Aggiunta delle limitazioni 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 ogni app.
Quando utilizzi la chiave API in una richiesta, devi specificare l'ID pacchetto tramite
l'intestazione HTTP X-Ios-Bundle-Identifier
.
Per limitare la chiave API a una o più app per iOS, utilizza una delle seguenti opzioni:
Console
Nella console Google Cloud, vai alla pagina Credenziali:
Fai clic sul nome della chiave API che vuoi limitare.
Nella sezione Limitazioni delle applicazioni, seleziona App per iOS.
Per ogni app per iOS da aggiungere, fai clic su Aggiungi un articolo 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.
gcloud
Recupera l'ID della chiave che vuoi limitare.
L'ID non corrisponde 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.Usa il metodo
gcloud beta 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 pacchetto di un'app per iOS che vuoi poter utilizzare con questa chiave API.Puoi aggiungere tutti gli ID pacchetto necessari; utilizza le virgole per separare gli ID.
gcloud beta services api-keys update KEY_ID \ --allowed-bundle-ids=ALLOWED_BUNDLE_ID_1,ALLOWED_BUNDLE_ID_2
Java
Per eseguire questo esempio, devi installare la libreria client di google-cloud-apikeys
.
Python
Per eseguire questo esempio, devi installare la libreria client delle chiavi API.
REST
Recupera l'ID della chiave che vuoi limitare.
L'ID non corrisponde 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/"
Usa 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 pacchetto di un'app per iOS che può utilizzare la chiave.Puoi aggiungere le informazioni per tutte le app necessarie; utilizza le virgole per separare gli ID pacchetto. Devi fornire tutti gli ID bundle insieme alla richiesta; gli ID bundle forniti sostituiscono eventuali applicazioni consentite esistenti nella chiave.
PROJECT_ID
: l'ID o il nome del tuo progetto 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"
Per saperne di più sull'aggiunta di limitazioni per le app per iOS a una chiave utilizzando l'API REST, consulta Aggiunta di limitazioni per iOS nella documentazione dell'API API Keys.
Aggiungi limitazioni delle API
Le restrizioni delle API specificano le API che è possibile chiamare utilizzando la chiave API.
Per aggiungere restrizioni delle API, utilizza una delle seguenti opzioni:
Console
Nella console Google Cloud, vai alla pagina Credenziali:
Fai clic sul nome della chiave API che vuoi limitare.
Nella sezione Limitazioni API, fai clic su Limita chiave.
Seleziona tutte le API a cui verrà utilizzata la chiave API.
Fai clic su Salva per salvare le modifiche e tornare all'elenco delle chiavi API.
gcloud
Recupera l'ID della chiave che vuoi limitare.
L'ID non corrisponde 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 beta services api-keys update
per specificare i servizi per i quali è possibile utilizzare una chiave API per l'autenticazione.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 può essere utilizzata la chiave per accedere.Devi fornire tutti i nomi di servizio con il comando update; i nomi di servizio forniti sostituiscono gli eventuali 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
.gcloud beta services api-keys update KEY_ID \ --api-target=service=SERVICE_1 --api-target=service=SERVICE_2
Java
Per eseguire questo esempio, devi installare la libreria client di google-cloud-apikeys
.
Python
Per eseguire questo esempio, devi installare la libreria client delle chiavi API.
REST
Recupera l'ID della chiave che vuoi limitare.
L'ID non corrisponde 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/"
Usa il metodo keys.patch per specificare i servizi per i quali è possibile utilizzare una chiave API per l'autenticazione.
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 può essere utilizzata la chiave per accedere.Devi fornire tutti i nomi di servizio nella richiesta. I nomi di servizio forniti sostituiscono gli eventuali 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
: l'ID o il nome del tuo progetto 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"
Per saperne di più sull'aggiunta di limitazioni delle API a una chiave utilizzando l'API REST, consulta Aggiunta delle restrizioni delle API nella documentazione dell'API API Keys.
Recupera le informazioni del progetto da una stringa chiave
Puoi determinare a quale progetto Google Cloud è associata una chiave API dalla relativa stringa.
Sostituisci KEY_STRING
con la stringa chiave per cui
ti servono le informazioni del progetto.
gcloud
Puoi usare il comando gcloud beta services api-keys lookup
per ottenere l'ID progetto da una stringa di chiave.
gcloud beta services api-keys lookup KEY_STRING
Java
Per eseguire questo esempio, devi installare la libreria client di google-cloud-apikeys
.
Python
Per eseguire questo esempio, devi installare la libreria client delle chiavi API.
REST
Puoi usare 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"
Annullamento eliminazione di una chiave API
Se elimini una chiave API per errore, puoi annullarne l'eliminazione (ripristinarla) entro 30 giorni dall'eliminazione della chiave. Dopo 30 giorni, non potrai annullare l'eliminazione della chiave API.
Console
Nella console Google Cloud, vai alla pagina Credenziali:
Fai clic su Ripristina credenziali eliminate.
Trova la chiave API eliminata di cui vuoi annullare l'eliminazione e fai clic su Ripristina.
La propagazione dell'annullamento dell'eliminazione di una chiave API potrebbe richiedere alcuni minuti. Dopo la propagazione, la chiave API non eliminata viene visualizzata nell'elenco delle chiavi API.
gcloud
Recupera l'ID della chiave di cui vuoi annullare l'eliminazione.
L'ID non corrisponde 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 tuo progetto.Utilizza il comando
gcloud beta services api-keys undelete
per annullare l'eliminazione di una chiave API.gcloud beta services api-keys undelete KEY_ID
Sostituisci i seguenti valori:
KEY_ID
: l'ID della chiave di cui vuoi annullare l'eliminazione.
REST
Recupera l'ID della chiave di cui vuoi annullare l'eliminazione.
L'ID non corrisponde 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
: l'ID o il nome del tuo progetto Google Cloud.KEY_ID
: l'ID della chiave che vuoi limitare.
Esegui sondaggi sulle operazioni a lunga esecuzione
I metodi dell'API Chiavi API utilizzano operazioni a lunga esecuzione. Se utilizzi l'API REST per creare e gestire le chiavi API, viene restituito un oggetto dell'operazione dalla richiesta iniziale del metodo. Utilizzerai il nome dell'operazione per eseguire il polling dell'operazione a lunga esecuzione. Al completamento della richiesta a lunga esecuzione, il polling dell'operazione restituisce i dati della richiesta a lunga esecuzione.
Per eseguire il polling di un'operazione dell'API Chiavi API a lunga esecuzione, utilizza il metodo operations.get
.
Sostituisci OPERATION_NAME
con il nome dell'operazione restituito
dall'operazione a lunga esecuzione. 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 delle 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.
Passaggi successivi
- Consulta una panoramica dell'autenticazione in Google.
- Scopri di più sull'API API Keys.