Le chiavi API sono obbligatorie 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 in uso, possono esistere limiti diversi in base a come viene utilizzata la chiave. L'aggiornamento o la sostituzione delle chiavi nelle app per dispositivi mobili (Android e iOS) sono le più complesse, poiché tutte le chiavi non verranno sostituite fino a quando tutti i clienti non aggiorneranno le proprie 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 comunque richiedere un'attenta pianificazione e un lavoro rapido.
Le misure 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 dell'applicazione 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 pubblico e sito web). È possibile aggiungere un solo tipo di limitazione dell'applicazione a ogni singola chiave API.
Le limitazioni API limitano l'utilizzo delle chiavi API a uno o più SDK o API di Google Maps Platform. Verranno elaborate solo le richieste di utilizzo di API o 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 altre chiavi API e limitale, quindi aggiorna tutte le tue app con le nuove chiavi API. Sebbene una chiave per applicazione sia la soluzione ideale per motivi di sicurezza, puoi utilizzare le chiavi limitate su più app purché i tipi di restrizioni delle app sulla chiave non causino problemi di incompatibilità con le app che condividono una chiave.
Se limiti le chiavi API dopo che sono state create, controlla l'utilizzo della chiave API per assicurarti che le limitazioni non compromettano nessuna delle app esistenti.
Vai alla pagina Metriche della console Google Cloud.
Seleziona Mostra filtri.
Da Grouped by (Raggruppato da), seleziona Credential. Vedrai quali chiavi API sono utilizzate con determinati servizi Google.
Fai clic su Credenziali.
Deseleziona tutte le credenziali.
Seleziona una chiave per ogni chiave visualizzata e fai clic su OK.
Da Grouped by (Raggruppato da), seleziona API. Vedrai quali limitazioni API applicare alla chiave.
Se selezioni Metodo API da Raggruppato per, potresti avere indizi sul tipo di restrizione dell'applicazione più adatta per una chiave.
Imposta una limitazione delle applicazioni per una chiave API
- Vai alla pagina Credenziali.
Seleziona la chiave API per cui vuoi impostare una restrizione. Viene visualizzata la pagina di proprietà della chiave API.
In Limitazioni principali, seleziona Restrizioni delle applicazioni.
Seleziona uno dei tipi di limitazione e fornisci le informazioni richieste seguendo l'elenco delle limitazioni.
Tipo di restrizione Descrizione referer HTTP Specifica uno o più siti web di referral. 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 di riferimento. Ad esempio, formattafile:///path/to/
come__file_url__//path/to/*
. Dopo aver abilitato i referral, assicurati di monitorarne l'utilizzo per assicurarti che soddisfi le tue aspettative. Sono supportati i seguenti protocolli di riferimento: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 oppure una subnet utilizzando la notazione CIDR. Poiché una richiesta di un servizio web verifica e confronta l'indirizzo IP esterno con la limitazione della chiave API,utilizza l'indirizzo IP pubblico del server. App per Android Aggiungi l'impronta del certificato di firma SHA-1 e il nome del pacchetto Android dal file AndroidManifest.xml
.App per iOS Sotto i tipi, seleziona l'identificatore pacchetto iOS appropriato dall'elenco. Seleziona Salva.
Imposta una limitazione API 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 Limitazioni delle 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 all'applicazione utilizzando la chiave API.
Se un'API o un SDK non sono presenti nell'elenco, devi abilitarli.
Fai clic su Salva.
Questo passaggio 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 verrà limitata. Per ulteriori informazioni, consulta la guida per ottenere una chiave API relativa all'API o all'SDK specifico 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.
L'eliminazione di una chiave API richiede alcuni minuti. Dopo la propagazione, il traffico utilizzando la chiave API eliminata verrà rifiutato.
Altri modi per proteggere le API
Fai attenzione quando rigeneri le chiavi API
La rigenerazione di una chiave API crea una nuova chiave con tutte le restrizioni della vecchia chiave. Questo avvia anche un timer di 24 ore per disattivare la vecchia chiave API.
Durante questo intervallo di tempo vengono accettate sia la vecchia che la nuova chiave, dandoti la possibilità di eseguire la migrazione delle tue applicazioni per l'utilizzo della nuova chiave. Tuttavia, le app che usano ancora la vecchia chiave API smetteranno di funzionare dopo la scadenza di questo periodo.
Vai alla pagina Chiavi API.
Seleziona Ripristina chiave precedente.
Nella finestra di dialogo Ripristina, fai clic su Ripristina chiave.
Al rollback, la versione "nuova" della chiave diventa la versione precedente e viene impostato un nuovo timer di disattivazione di 24 ore. È possibile tornare tra queste due coppie chiave-valore fino a rigenerare la chiave.
Questa seconda rigenerazione sovrascrive il vecchio valore della chiave inattiva.
Monitora l'utilizzo dell'API
Per controllare l'utilizzo della chiave API:
Vai alla pagina Metriche.
Fai clic su Mostra filtri.
In Raggruppati per, seleziona Metodo API.
In Codice di risposta, seleziona 2xx per visualizzare tutte le richieste andate a buon fine per questa chiave.
Se rilevi un utilizzo non autorizzato, procedi nel seguente modo:
Limitare le chiavi.
Se la stessa chiave viene utilizzata in più app, esegui la migrazione a più chiavi API, preferibilmente utilizzando chiavi API separate 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 è 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, segui questi passaggi:
Identifica le app che richiederanno nuove chiavi.
- Le app web sono le più facili da aggiornare perché controlli tutto il codice. Pianifica di aggiornare tutte le chiavi delle tue app basate sul Web.
- Le app mobile sono molto più difficili, poiché i tuoi clienti devono aggiornare le app prima di poter utilizzare le nuove chiavi.
Crea e limita le nuove chiavi.
- Aggiungi sia una restrizione dell'applicazione sia almeno una restrizione dell'API.
Aggiungi le nuove chiavi alle varie app.
- Per le app per dispositivi mobili, questo processo può richiedere mesi per tutti gli utenti che vengono aggiornati all'app più recente con la nuova chiave API.
Metodi di protezione delle app API Web Web di Maps o API web statiche
Archiviazione di chiavi API e firma dei secret al di fuori del codice sorgente della tua 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.
Archivia le chiavi API o firma i secret nei file al di fuori della struttura di origine della tua applicazione. Se archivi chiavi API o altre informazioni private nei file, tieni i file al di fuori della struttura di origine dell'applicazione per tenere le chiavi fuori 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 mobile per le API Web Service o le API web statiche
Utilizza un server proxy. Il server proxy fornisce una fonte solida per interagire con l'API Google Maps Platform appropriata. Per ulteriori informazioni sull'utilizzo di un server proxy, consulta Living Vicariious: Utilizzo di server proxy con le librerie client dell'API di dati di Google.
Oscura o cripta la chiave API o la firma del secret. Questo complica la creazione di chiavi API e altri dati privati direttamente dall'applicazione.
Ulteriori informazioni
In queste tabelle sono elencate le restrizioni chiave dell'API e le best practice relative alla sicurezza dell'API per ogni API, SDK o servizio di Google Maps Platform.
Siti web con API Maps, Embed o Static di Maps
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 | Restrizione di Android | Maps SDK for Android | |
SDK Places per Android | Restrizione di Android | API Places |
App per iOS
API/SDK/servizio | Limitazione delle applicazioni (1) | Limitazione API (1) | Best practice |
---|---|---|---|
SDK Maps per iOS | Restrizione per iOS | Maps SDK for iOS | |
SDK Places per iOS | Restrizione per 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 casi:
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 l'SDK Maps per Android e l'SDK Maps per iOS.
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, rivedi quante richieste non firmate vuoi consentire al giorno e modifica le quote delle richieste non firmate di conseguenza.
4 Le limitazioni IP potrebbero non essere pratiche in alcuni scenari, ad esempio nelle applicazioni per dispositivi mobili e in ambienti cloud che si basano su indirizzi IP dinamici. Quando utilizzi le API di servizi web di Maps in questi scenari, proteggi le tue app utilizzando un server proxy o un'offuscamento.
5 Per le app per dispositivi mobili, valuta la possibilità di utilizzare l'SDK Places per Android e l'SDK Places per iOS.