Le chiavi API sono necessarie per le app e i progetti che utilizzano SDK e API di Google Maps Platform. Per la massima sicurezza e il minimo sforzo, proteggi le tue chiavi API quando le crei.
Sebbene sia possibile proteggere le chiavi API dopo che sono state create e utilizzate, possono esistere vincoli diversi a seconda di come viene utilizzata la chiave. L'aggiornamento o la sostituzione delle chiavi nelle app per dispositivi mobili (Android e iOS) è il più complicato poiché non tutte le chiavi verranno sostituite fino a quando tutti i clienti non aggiornano le app. L'aggiornamento o la sostituzione delle chiavi nelle app JavaScript o del servizio web è molto più semplice, ma l'aggiornamento o la sostituzione di queste chiavi potrebbe richiedere una pianificazione attenta e un lavoro rapido.
Le pratiche di sicurezza applicabili al singolo prodotto Google Maps Platform, come l'API Maps JavaScript, sono elencate nella sezione Ulteriori informazioni.
Limitare le chiavi API
Quando crei le chiavi API per la prima volta, limitale con una restrizione delle applicazioni e una o più restrizioni API.
Le limitazioni delle applicazioni limitano l'utilizzo di una chiave API a una piattaforma specifica (Android o iOS) o a siti specifici (indirizzo IP e sito web pubblici). È possibile aggiungere un solo tipo di restrizione delle applicazioni a ogni singola chiave API.
Le limitazioni API limitano l'uso di chiavi API a uno o più SDK o API di Google Maps Platform. Verranno elaborate solo le richieste per usare le API o gli SDK associati a una chiave API. Per ogni chiave API, puoi specificare tutte le restrizioni API necessarie.
Se non hai protetto la tua chiave API al momento della creazione, crea chiavi API aggiuntive e limitale, quindi aggiorna tutte le tue app con le nuove chiavi API. Per motivi di sicurezza, una chiave per applicazione è l'ideale, ma puoi utilizzare le chiavi limitate in più app, purché i tipi di restrizioni delle app sulla chiave non causino problemi di incompatibilità con le app che condividono una chiave.
Se stai limitando le chiavi API dopo che sono state create, controlla l'utilizzo della chiave API per assicurarti che le limitazioni non interrompano nessuna delle app esistenti.
Vai alla pagina Metriche della console Google Cloud.
Seleziona Mostra filtri.
In Raggruppato per, seleziona Credenziali. Vedrai quali chiavi API vengono utilizzate con determinati servizi Google.
Fai clic su Credenziali.
Deseleziona tutte le credenziali.
Per ogni chiave visualizzata, seleziona la chiave e fai clic su OK.
Da Raggruppato per, seleziona API. Vedrai quali limitazioni API si applicano alla chiave.
La selezione del Metodo API da Grouped By può fornire indizi sul tipo di restrizione dell'applicazione più adatto per una chiave.
Imposta una restrizione delle applicazioni per una chiave API
- Vai alla pagina Credenziali.
Seleziona la chiave API per cui vuoi impostare una limitazione. Viene visualizzata la pagina della proprietà della chiave API.
In Restrizioni delle chiavi, seleziona Restrizioni delle applicazioni.
Seleziona uno dei tipi di limitazioni e fornisci le informazioni richieste in base all'elenco delle limitazioni.
Tipo di restrizione Descrizione referer HTTP Specifica uno o più siti web referer. I caratteri jolly sono accettabili per l'autorizzazione di tutti i sottodomini (ad esempio, *.google.com
accetta tutti i siti che terminano con.google.com
). Specificahttps://
ehttp://
così come sono. Devi utilizzare una rappresentazione speciale per altri tipi di protocolli URL referer. Ad esempio, formattafile:///path/to/
come__file_url__//path/to/*
. Dopo aver abilitato i referral, monitora il tuo utilizzo per assicurarti che corrisponda alle tue aspettative. Sono supportati i seguenti protocolli di referral:about://, app://, applewebdata://, asset://, chrome://, content://, file://, ftp://, ionic://, local://, ms-appx://, ms-appx-web://, ms-local-stream://, prism://, qrc://, res://, saphtmlp://
.Indirizzi IP Specifica un indirizzo IPv4 o IPv6 o una subnet utilizzando la notazione CIDR. Poiché una richiesta di servizio web verifica e confronta l'indirizzo IP esterno con la limitazione delle chiavi API,utilizza l'indirizzo IP pubblico del server. App per Android Aggiungi l'impronta per il certificato di firma SHA-1 e il nome del pacchetto Android dal tuo file AndroidManifest.xml
.App per iOS Sotto i tipi, seleziona l'identificatore pacchetto iOS appropriato dall'elenco. Seleziona Salva.
Imposta una limitazione per una chiave API
Vai alla pagina delle credenziali.
Seleziona la chiave API che vuoi limitare. Viene visualizzata la pagina Limita e rinomina chiave API.
In Restrizioni API:
Fai clic su Limita chiave.
Fai clic sul menu a discesa Seleziona API e seleziona le API o gli SDK a cui vuoi accedere per la tua applicazione, utilizzando la chiave API.
Se un'API o un SDK non è presente nell'elenco, devi abilitarlo.
Fai clic su Salva.
Dopo questo passaggio, la restrizione entra a far parte della definizione della chiave API. Se non fornisci i dettagli appropriati o non fai clic su "Salva", la chiave API non sarà sottoposta a limitazioni. Per ulteriori informazioni, consulta la guida Ottenere una chiave API per l'API specifica o l'SDK che ti interessa.
Elimina le chiavi API inutilizzate
Prima di eliminare una chiave API, assicurati che non venga utilizzata in produzione. Se il traffico non è riuscito, è probabile che la chiave venga eliminata.
Per eliminare una chiave API:
Vai alla pagina Credenziali.
Seleziona la chiave API che vuoi eliminare.
Seleziona il pulsante Elimina nella parte superiore della pagina.
Quando appare la finestra di dialogo Elimina credenziale, seleziona Elimina.
La propagazione di una chiave API richiede alcuni minuti. Dopo la propagazione, il traffico che utilizza la chiave API eliminata verrà rifiutato.
Altri modi per proteggere le tue API
Fai attenzione quando rigeneri le chiavi API
La rigenerazione di una chiave API crea una nuova chiave con tutte le limitazioni della vecchia chiave. Viene inoltre avviato un timer di 24 ore per disattivare la chiave API precedente.
Durante questo intervallo di tempo vengono accettate sia la vecchia chiave sia quella nuova, dandoti la possibilità di eseguire la migrazione delle tue app per l'utilizzo della nuova chiave. Tuttavia, tutte le app che utilizzano ancora la vecchia chiave API smetteranno di funzionare al termine di questo periodo.
Vai alla pagina Chiavi API.
Seleziona Ripristina chiave precedente.
Nella finestra di dialogo Ripristina, fai clic su Ripristina chiave.
Quando esegui il rollback, la versione "nuova" precedente della chiave diventa la versione precedente ed è impostato un nuovo timer di disattivazione di 24 ore. È possibile tornare indietro tra questi due valori chiave finché non si ricrea la chiave.
Questa seconda rigenera sovrascrive il valore della chiave precedente inattiva.
Monitorare l'utilizzo dell'API
Per controllare l'utilizzo della chiave API:
Vai alla pagina Metriche.
Fai clic su Mostra filtri.
In Raggruppato per, seleziona Metodo API.
In Codice di risposta, seleziona 2xx per visualizzare eventuali richieste riuscite a questa chiave.
Se rilevi un utilizzo non autorizzato:
Limitare le chiavi.
Se la stessa chiave viene utilizzata in più app, esegui la migrazione a più chiavi API, preferibilmente utilizzando chiavi API distinte per ogni app.
Se l'utilizzo non autorizzato continua, rigenera o elimina le chiavi interessate.
Usa chiavi API separate per ogni app
Questo limita l'ambito di ogni chiave. Se una chiave API è stata compromessa, puoi eliminarla o rigenerarla senza dover aggiornare le altre chiavi API.
Esegui la migrazione a più chiavi API
Per eseguire la migrazione dall'utilizzo di una chiave API per più app, a una singola chiave API univoca per ogni app, procedi nel seguente modo:
Identifica quali app avranno bisogno di nuove chiavi.
- Le app web sono le più facili da aggiornare perché controlli tutto il codice. Pianifica di aggiornare tutte le chiavi delle app basate sul Web.
- Le app mobile sono molto più difficili, perché i clienti devono aggiornare le app prima di poter utilizzare le nuove chiavi.
Crea e limita le nuove chiavi.
- Aggiungi sia una restrizione delle applicazioni sia almeno una restrizione delle API.
Aggiungi le nuove chiavi alle varie app.
- Per le app per dispositivi mobili, questo processo può richiedere mesi per consentire a tutti gli utenti di eseguire l'aggiornamento all'app più recente con la nuova chiave API.
Metodi di protezione delle app Maps Web Service API o Static Web API
Archiviazione di chiavi API e firma di secret al di fuori del codice sorgente dell'applicazione. Se inserisci le tue chiavi API o qualsiasi altra informazione privata in variabili di ambiente o includi file archiviati separatamente e poi condividi il codice, le chiavi API o i secret di firma non verranno inclusi nei file condivisi.
Archiviazione di chiavi API o firma di secret in file al di fuori dell'albero di origine dell'applicazione. Se memorizzi chiavi API o qualsiasi altra informazione privata nei file, tieni i file al di fuori della struttura di origine dell'applicazione per escludere le chiavi dal sistema di controllo del codice sorgente. Questo è particolarmente importante se utilizzi un sistema di gestione del codice sorgente pubblico, come GitHub.
Metodi di protezione delle app web delle API dei servizi web o delle API web statiche
Utilizza un server proxy. Il server proxy fornisce una solida fonte di interazione con l'API Google Maps Platform appropriata. Per ulteriori informazioni sull'utilizzo di un server proxy, consulta la pagina Living Vicariious: Using Proxy Servers with the Google Data API Client Libraries.
Oscurare o criptare la chiave API o la firma del secret. Ciò complica lo scraping delle chiavi API e di altri dati privati direttamente dall'applicazione.
Ulteriori informazioni
Queste tabelle elencano le limitazioni delle chiavi API e le best practice per la sicurezza delle API appropriate per ogni API, SDK o servizio di Google Maps Platform.
Siti web con API Maps, JavaScript, Embed o Static
App e server che utilizzano i servizi web
App per Android
API/SDK/servizio | Limitazione delle applicazioni (1) | Limitazione API (1) | Best practice |
---|---|---|---|
SDK Maps per Android | Limitazione Android | Maps SDK for Android | |
SDK Places per Android | Limitazione Android | API Places |
App per iOS
API/SDK/servizio | Limitazione delle applicazioni (1) | Limitazione API (1) | Best practice |
---|---|---|---|
SDK Maps per iOS | Limitazione su iOS | Maps SDK for iOS | |
SDK Places per iOS | Limitazione su iOS | API Places |
1 Puoi utilizzare una chiave API senza restrizioni con qualsiasi API o SDK di Google Maps Platform. Tuttavia, consigliamo vivamente di limitare le chiavi API, soprattutto nei seguenti scenari:
L'ambiente di test sarà o sarà visibile pubblicamente.
L'applicazione che utilizza una chiave API è pronta per essere utilizzata in un ambiente di produzione.
2 Per le applicazioni per dispositivi mobili, valuta la possibilità di utilizzare gli SDK Maps per Android e SDK Maps per iOS nativi.
3 Per l'API Maps Static e l'API Street View Static, oltre a una chiave API, devi fornire una firma digitale per superare la quota giornaliera di 25.000 caricamenti mappa.
Se firmi le tue richieste, controlla quante richieste non autorizzate vuoi consentire al giorno e modifica le quote delle richieste non firmate di conseguenza.
4 Le restrizioni IP potrebbero non essere pratiche in alcuni scenari, ad esempio nelle applicazioni per dispositivi mobili e negli ambienti cloud che si basano su indirizzi IP dinamici. Quando utilizzi le API Maps Web Service in questi scenari, proteggi le tue app utilizzando un server proxy o l'offuscamento.
5 Per le applicazioni per dispositivi mobili, valuta la possibilità di utilizzare gli annunci nativi Ads Places for Android e Places SDK for iOS.