Best practice per la produzione

Google consiglia di seguire queste best practice per l'amministrazione e l'esecuzione dell'app.

Protezione delle chiavi API

Hai bisogno di una chiave API per utilizzare i nostri servizi online e il suo utilizzo consente a Google di misurare il tuo utilizzo. Ti consigliamo di limitare le chiavi API per impedire l'uso non autorizzato.

Tipi di limitazioni relative alle chiavi API

Esistono due tipi di limitazioni relative alle chiavi API ed è possibile utilizzarli contemporaneamente.

Tipo di restrizioneLimita l'utilizzo delle chiavi a
Restrizione delle API Un'API specifica.
Limitazione delle applicazioni Indirizzi IP, siti web o app specifici.

Suggerimenti sulle restrizioni delle chiavi API

Ti consigliamo di richiedere chiavi API separate per gli scenari riportati di seguito.

ScenarioSuggerimento
I server di gioco di backend chiamano l'API Playable locations per recuperare i luoghi in cui è possibile giocare. Configura una chiave con due limitazioni:
  • Restrizione API: consenti chiamate solo all'API Playable locations.
  • Limitazione delle applicazioni: consenti le chiamate provenienti solo dagli indirizzi IP del server di gioco backend.
La versione per Android della tua app chiama l'SDK Maps for Unity per recuperare i dati geografici. Configura una chiave con una limitazione delle applicazioni per consentire le chiamate solo dalla versione Android della tua app.
La versione iOS della tua app chiama l'API Maps SDK for Unity per recuperare i dati geografici. Configura una chiave con una limitazione delle applicazioni per consentire le chiamate solo dalla versione iOS della tua app.

Per ulteriori informazioni, consulta le best practice per la sicurezza delle API.

Per configurare le limitazioni relative alle chiavi API

  1. Visita il riquadro delle credenziali nella console Google Cloud.
  2. Seleziona la chiave API per la quale vuoi impostare una restrizione. Viene visualizzata la pagina della proprietà della chiave API.
  3. In Limitazioni chiave, seleziona la scheda Limitazioni delle applicazioni, quindi seleziona uno dei quattro tipi di restrizione delle applicazioni.
    Tipo di restrizione Descrizione
    Referrer HTTP Accetta le richieste dall'elenco dei siti web che fornisci.
    Indirizzi IP Accetta le richieste dall'elenco di indirizzi IP dei server web da te forniti.
    App Android Aggiungi il nome del pacchetto e l'impronta digitale per il certificato di firma SHA-1 per limitare l'utilizzo alla tua app per Android.
    App per iOS Accetta le richieste dall'app per iOS con l'identificatore bundle da te fornito.
  4. In Limitazioni relative alle chiavi, seleziona la scheda Limitazioni API, quindi seleziona l'API a cui vuoi limitare la chiave API.
  5. Fai clic su Salva.

Supporto degli aggiornamenti delle chiavi API

Assicurati di disporre dell'infrastruttura necessaria per aggiornare le chiavi API nello stack di pubblicazione. In questo modo il tuo gioco può recuperare se la tua chiave API è compromessa e devi rinnovarla rapidamente.

Usa chiavi separate per ogni applicazione, in modo da poter scambiare facilmente una chiave in una senza influire sulle altre app.

Consigli sulla sicurezza dei server di gioco

Quando per qualsiasi motivo il server dell'API Playable locations si interrompe, si verificano problemi quando il server torna online, ovvero quando più server di gioco tentano di riconnettersi contemporaneamente. Un tale picco di QPS può portare il server in modalità DoS, il che aggrava la situazione bloccando il traffico in entrata.

Per attenuare questa situazione, Google richiede di implementare il backoff esponenziale binario sul tuo server di gioco. È un approccio sistematico per distanziare i nuovi tentativi di connessione. Nello specifico, implementerai un algoritmo che attende N secondi dopo un tentativo di riconnessione non riuscito prima di riprovare. Se il tentativo successivo ha esito negativo, l'algoritmo raddoppia il periodo di attesa e riprova. Se il tentativo successivo non va a buon fine, l'algoritmo raddoppia di nuovo il periodo di attesa, quindi riprova. Continui a raddoppiare il periodo di attesa dopo ogni tentativo, finché l'ultimo tentativo non va a buon fine.

Gestione dei codici di stato restituiti HTTP

Dovresti implementare il backoff esponenziale binario per alcuni codici restituiti HTTP, ma non per tutti.

400s
Si tratta di errori del client che in genere non possono essere ripristinati, quindi riprovare le richieste non riuscite che generano questi codici di errore non funzionerà. Dovresti rilevare questo tipo di errori durante i test.
429
Questo è un errore di risorse esaurite che si verifica quando inizi a esaurire la quota API. Per visualizzare i limiti QPS delle API del tuo progetto, consulta la pagina Quote delle API di Google.
500
Si tratta degli errori lato server, il tipo di errori per i quali il backoff esponenziale è più utile.