Google vous recommande de suivre ces bonnes pratiques lorsque vous gérez et exécutez votre application.
Sécuriser les clés API
Vous avez besoin d'une clé API pour utiliser nos services en ligne. Son utilisation permet à Google de mesurer votre utilisation. Nous vous recommandons de restreindre vos clés API pour éviter toute utilisation non autorisée.
Types de restrictions de clé d'API
Il existe deux types de restrictions de clés API. Vous pouvez les utiliser tous les deux en même temps.
Type de restriction | Limite l'utilisation des clés aux |
---|---|
Restriction d'API | Une API spécifique |
Restriction d'application | Adresses IP, sites Web ou applications particuliers. |
Recommandations de restriction de clé API
Nous vous recommandons de commander des clés API distinctes dans les cas suivants.
Scénario | Recommandation |
---|---|
Vos serveurs de jeu backend appellent l'API Playable Locations pour récupérer les positions jouables. | Configurez une clé avec deux restrictions:
|
La version Android de votre application appelle le SDK Maps pour Unity afin de récupérer les données géographiques. | Configurez une clé avec une restriction d'application pour n'autoriser les appels que depuis la version Android de votre application. |
La version iOS de votre application appelle le SDK Maps pour l'API Unity afin de récupérer les données géographiques. | Configurez une clé avec une restriction d'application pour n'autoriser les appels que depuis la version iOS de votre application. |
Pour en savoir plus, consultez les bonnes pratiques de sécurité pour les API.
Pour configurer des restrictions de clé API
- Accédez au panneau des identifiants dans la console Google Cloud.
- Sélectionnez la clé API pour laquelle vous souhaitez définir une restriction. La page des propriétés de la clé API s'affiche.
- Sous Restrictions relatives aux clés, sélectionnez l'onglet Restrictions relatives aux applications, puis sélectionnez l'un des quatre types de restrictions d'application.
Type de restriction Description Référents HTTP Avec cette méthode, vous acceptez les requêtes provenant de la liste des sites Web que vous fournissez. Adresses IP Acceptez les requêtes provenant de la liste d'adresses IP de serveurs Web que vous fournissez. Applications Android Ajoutez le nom du package et l'empreinte du certificat de signature SHA-1 pour limiter l'utilisation de votre application Android. Applications iOS Avec cette méthode, vous acceptez les requêtes provenant de l'application iOS avec l'identifiant de groupe que vous fournissez. - Sous Restrictions relatives aux clés, sélectionnez l'onglet Restrictions relatives aux API, puis sélectionnez l'API à laquelle vous souhaitez limiter votre clé API.
- Cliquez sur Enregistrer.
Prendre en charge les mises à jour des clés API
Assurez-vous de disposer d'une infrastructure en place pour mettre à jour les clés API sur l'ensemble de votre pile de diffusion. Votre jeu pourra ainsi récupérer si votre clé API est compromise, et vous devez la renouveler rapidement.
Utilisez des clés distinctes pour chaque application afin de pouvoir facilement interchanger une clé dans une application sans affecter les autres applications.
Recommandations de sécurité pour les serveurs de jeu
En cas d'indisponibilité du serveur de l'API Playable Locations pour une raison quelconque, des problèmes surviennent lorsqu'il se reconnecte, c'est-à-dire lorsque plusieurs serveurs de jeu tentent de s'y reconnecter en même temps. Un tel pic de QPS peut envoyer le serveur en mode DoS, ce qui aggrave la situation en bloquant le trafic entrant.
Pour atténuer cette situation, Google vous demande de mettre en œuvre l'intervalle exponentiel entre les tentatives binaire sur votre serveur de jeu. Il s'agit d'une approche systématique permettant d'espacer les tentatives de connexion. Plus précisément, vous mettrez en œuvre un algorithme qui attend N secondes après une tentative de reconnexion ayant échoué avant de réessayer. Si la prochaine tentative échoue, votre algorithme double le délai d'attente, puis effectue une nouvelle tentative. Si la prochaine tentative échoue, votre algorithme double le délai d'attente, puis effectue une nouvelle tentative. Continuez de doubler le délai d'attente après chaque tentative, jusqu'à ce que votre dernière tentative aboutisse.
Gérer les codes d'état HTTP renvoyés
Vous devez mettre en œuvre un intervalle exponentiel entre les tentatives binaire pour certains codes renvoyés HTTP, mais pas pour tous.
- 400
- Il s'agit d'erreurs client qui ne se redressent généralement pas. Par conséquent, toute nouvelle tentative de requête ayant échoué qui génère ce code d'erreur ne fonctionnera pas. Vous devez détecter ce type d'erreurs lors des tests.
- 429
- Il s'agit d'une erreur de ressource épuisée qui se produit lorsque vous commencez à manquer de quota d'API. Pour connaître les limites de RPS de l'API de votre projet, consultez la page Quotas des API Google.
- 500
- Il s'agit des erreurs côté serveur, pour lesquelles l'intervalle exponentiel entre les tentatives est le plus utile.