Les clés API sont obligatoires pour les projets et les applications qui utilisent les API et les SDK Google Maps Platform. Pour un maximum de sécurité et un minimum d'effort, sécurisez vos clés API au moment où vous les créez.
Même s'il est possible de les sécuriser par la suite lorsqu'elles sont en cours d'utilisation, différentes contraintes peuvent s'appliquer selon la manière dont vous les utilisez. Le plus compliqué est de mettre à jour ou de remplacer des clés dans des applications mobiles (Android et iOS), car pour qu'elles soient toutes modifiées, tous les clients doivent avoir mis à jour leur application. L'opération est beaucoup plus simple dans des applications JavaScript ou dans des services Web, mais elle doit tout de même être soigneusement planifiée, puis réalisée rapidement.
Les pratiques de sécurité applicables à un produit Google Maps Platform spécifique, comme l'API Maps JavaScript, sont listées dans la section En savoir plus.
Restreindre vos clés API
Lorsque vous créez vos clés API pour la première fois, limitez-les en ajoutant une restriction d'application et une ou plusieurs restrictions d'API.
Les restrictions d'application limitent l'utilisation d'une clé API à une plate-forme spécifique (Android ou iOS) ou à des sites en particulier (adresse IP publique et site Web). Un seul type de restriction d'application peut être ajouté à une clé API spécifique.
Les restrictions d'API limitent l'utilisation des clés API à un SDK ou à une API Google Maps Platform, ou à plusieurs d'entre eux. Seules les demandes d'utilisation d'API ou de SDK associés à une clé API seront traitées. Vous pouvez associer à chaque clé API autant de restrictions d'API que nécessaire.
Si vous n'avez pas sécurisé votre clé API lorsque vous l'avez créée, ajoutez de nouvelles clés API et restreignez-les, puis mettez-les à jour dans toutes vos applications. Bien qu'une clé par application soit idéale pour des raisons de sécurité, vous pouvez utiliser des clés restreintes dans plusieurs applications, à condition que les types de restrictions d'application sur la clé n'entraînent pas de problèmes d'incompatibilité avec les applications qui la partagent.
Si vous restreignez les clés API après les avoir créées, vérifiez leur utilisation pour vous assurer que les restrictions n'affecteront aucune de vos applications existantes.
Accédez à la page "Métriques" de la console Google Cloud.
Sélectionnez Afficher les filtres.
Dans Critère de regroupement, sélectionnez Identifiant. Vous verrez quelles clés API sont utilisées avec chaque service Google.
Cliquez sur Identifiants.
Désélectionnez tous les identifiants.
Pour chaque clé affichée, sélectionnez la clé et cliquez sur OK.
Dans Critère de regroupement, sélectionnez API. Vous verrez quelles restrictions d'API s'appliquent à la clé.
Si vous sélectionnez Méthode API dans Critère de regroupement, vous pourrez obtenir des indications sur le type de restriction d'application qui convient le mieux à une clé.
Définir une restriction d'application pour une clé API
- Accédez à la page Identifiants.
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 Restrictions relatives aux applications.
Sélectionnez l'un des types de restrictions et fournissez les informations demandées après la liste des restrictions.
Type de restriction Description Référents HTTP Spécifiez un ou plusieurs sites Web référents. Vous pouvez utiliser des caractères génériques pour autoriser tous les sous-domaines (par exemple, *.google.com
accepte tous les sites se terminant par.google.com
). Spécifiezhttps://
ethttp://
tels quels. Vous devez utiliser une représentation spéciale pour les autres types de protocoles d'URL de provenance. Par exemple, formatezfile:///path/to/
en__file_url__//path/to/*
. Une fois que vous avez activé les référents, veillez à surveiller votre utilisation pour vous assurer qu'elle correspond à vos attentes. Les protocoles de référent suivants sont acceptés :about://, app://, applewebdata://, asset://, chrome://, content://, file://, ftp://, ionic://, local://, ms-appx://, ms-appx-web://, ms-local-stream://, prism://, qrc://, res://, saphtmlp://
.Adresses IP Spécifiez une adresse IPv4 ou IPv6, ou un sous-réseau au format CIDR. Étant donné qu'une requête de service Web vérifie l'adresse IP externe et la compare à la restriction de clé API, utilisez l'adresse IP publique du serveur. Applications Android Ajoutez votre empreinte de certificat de signature SHA-1 et le nom de votre package Android à partir du fichier AndroidManifest.xml
.Applications iOS Sous les types, sélectionnez l'identifiant du bundle iOS approprié dans la liste. Sélectionnez Enregistrer.
Définir une restriction d'API pour une clé API
Accédez à la page Identifiants.
Sélectionnez la clé API que vous souhaitez restreindre. La page Restreindre et renommer la clé API s'affiche.
Sous Restrictions relatives aux API :
Cliquez sur Restreindre la clé.
Cliquez sur la liste déroulante Sélectionner des API, puis sélectionnez les API ou les SDK auxquels votre application doit accéder à l'aide de la clé API.
Si une API ou un SDK ne figure pas dans la liste, vous devez l'activer.
Cliquez sur Enregistrer.
La restriction est alors intégrée à la définition de la clé API. Si vous ne fournissez pas les informations appropriées ou ne cliquez pas sur "Enregistrer", la clé API ne sera pas restreinte. Pour plus d'informations, consultez le guide Obtenir une clé API correspondant à l'API ou au SDK qui vous intéresse.
Supprimer les clés API inutilisées
Avant de supprimer une clé API, assurez-vous qu'elle n'est pas utilisée en production. Si elle n'enregistre aucun trafic, vous pouvez probablement la supprimer sans risque.
Pour supprimer une clé API :
Accédez à la page Identifiants.
Sélectionnez la clé API à supprimer.
Cliquez sur le bouton Supprimer en haut de la page.
Lorsque la boîte de dialogue Supprimer l'identifiant s'affiche, sélectionnez Supprimer.
Propager la suppression d'une clé API prend quelques minutes. Après la propagation, le trafic utilisant la clé API supprimée sera refusé.
Autres moyens de sécuriser vos API
Soyez prudent lorsque vous regénérez des clés API
Lorsque vous générez à nouveau une clé API, une clé comportant toutes les restrictions liées à l'ancienne est créée. L'ancienne clé API est désactivée 24 heures après cette opération.
Pendant ce délai, l'ancienne clé et la nouvelle sont acceptées, ce qui vous permet de migrer vos applications afin qu'elles utilisent la nouvelle clé. En revanche, toutes les applications qui utilisent encore l'ancienne clé API cesseront de fonctionner à la fin de cette période.
Accédez à la page Clés API.
Sélectionnez Rétablir la clé précédente.
Dans la boîte de dialogue Rétablir, cliquez sur Rétablir la clé.
Après un rollback, l'ancienne "nouvelle" version de la clé devient la version précédente et elle est désactivée dans un délai de 24 heures. Vous pouvez revenir à l'une de ces deux valeurs de clé jusqu'à ce que vous génériez à nouveau la clé.
Cette seconde génération écrase l'ancienne valeur de clé inactive.
Contrôler l'utilisation de vos API
Pour contrôler l'utilisation de vos clés API :
Accédez à la page Métriques.
Cliquez sur Afficher les filtres.
Dans Critère de regroupement, sélectionnez Méthode API.
Sous Code de réponse, sélectionnez 2xx pour afficher toutes les requêtes adressées à cette clé.
Si vous détectez une utilisation non autorisée :
Limitez vos clés.
Si la même clé est utilisée dans plusieurs applications, migrez vers plusieurs clés API, de préférence à l'aide de clés API distinctes pour chaque application.
Si l'utilisation non autorisée continue, supprimez les clés concernées ou générez-les à nouveau.
Utiliser des clés API distinctes pour chaque application
Cela permet de limiter le champ d'application de chaque clé. Si la sécurité d'une clé API est compromise, vous pouvez la supprimer et la générer à nouveau sans mettre à jour vos autres clés API.
Migrer vers plusieurs clés API
Afin de passer d'une même clé API pour plusieurs applications à une clé API pour chaque application :
Identifiez les applications qui nécessiteront de nouvelles clés.
- Les applications Web sont les plus faciles à mettre à jour, car vous contrôlez l'intégralité du code. Prévoyez de mettre à jour toutes les clés de vos applications Web.
- Les applications mobiles sont bien plus complexes, car vos clients doivent mettre à jour leurs applications afin que les nouvelles clés puissent être utilisées.
Créez et restreignez les nouvelles clés.
- Ajoutez à la fois une restriction d'application et au moins une restriction d'API.
Ajoutez les nouvelles clés à vos différentes applications.
- Pour les applications mobiles, plusieurs mois peuvent s'écouler avant que tous vos utilisateurs ne soient passés à l'application avec la nouvelle clé API.
Méthodes de protection des applications utilisant les API de services Web Maps ou les API Web statiques
Stockez les clés API et les secrets de signature en dehors du code source de votre application. Si vous placez vos clés API ou toute autre information confidentielle dans des variables d'environnement, ou que vous incluez des fichiers stockés séparément avant de partager votre code, les clés API ou les secrets de signature ne seront pas inclus dans les fichiers partagés.
Stockez les clés API ou les secrets de signature dans des fichiers en dehors de l'arborescence source de votre application. Si vous stockez des clés API ou toute autre information confidentielle dans des fichiers, conservez ces fichiers en dehors de l'arborescence source de votre application pour que vos clés ne se retrouvent pas dans le système de contrôle de votre code source. C'est particulièrement important si vous utilisez un système de gestion de code source public tel que GitHub.
Méthodes de protection des applications mobiles d'API de services Web ou d'API Web statiques
Utilisez un serveur proxy. Le serveur proxy fournit une source fiable d'interaction avec l'API Google Maps Platform appropriée. Pour savoir comment utiliser un serveur proxy, consultez Living Vicariously: Using Proxy Servers with the Google Data API Client Libraries (Vivre par procuration : utiliser des serveurs proxy avec les bibliothèques clientes des Google Data APIs).
Obscurcissez ou chiffrez la clé API ou le secret de signature. Il est ainsi plus compliqué de détourner directement des clés API et d'autres données confidentielles depuis l'application.
En savoir plus
Les tableaux suivants répertorient les restrictions de clés API et les bonnes pratiques liées à la sécurité des API pour chaque service, SDK ou API Google Maps Platform.
Sites Web comportant des API Maps JavaScript, Embed ou Static
Applications et serveurs utilisant des services Web
Applications Android
API/SDK/Service | Restriction d'application 1 | Restriction d'API 1 | Bonnes pratiques |
---|---|---|---|
SDK Maps pour Android | Restriction Android | SDK Maps pour Android | |
SDK Places pour Android | Restriction Android | API Places |
Applications iOS
API/SDK/Service | Restriction d'application 1 | Restriction d'API 1 | Bonnes pratiques |
---|---|---|---|
SDK Maps pour iOS | Restriction iOS | SDK Maps pour iOS | |
SDK Places pour iOS | Restriction iOS | API Places |
1 Vous pouvez utiliser une clé API sans restriction avec n'importe quel SDK ou n'importe quelle API Google Maps Platform. Toutefois, nous vous recommandons vivement de restreindre vos clés API, en particulier dans les scénarios suivants :
L'environnement de test est ou sera visible publiquement.
L'application avec une clé API est prête à être utilisée dans un environnement de production.
2 Pour les applications mobiles, vous pouvez utiliser les SDK Maps pour Android et SDK Maps pour iOS natifs.
3 Pour l'API Maps Static et l'API Street View Static, vous devez fournir une signature numérique en plus de la clé API si vous comptez dépasser le quota quotidien de 25 000 chargements de cartes.
Si vous signez vos requêtes, déterminez le nombre de requêtes non signées que vous souhaitez autoriser par jour et ajustez vos quotas de requêtes non signées en conséquence.
4 Les restrictions d'adresses IP peuvent parfois être irréalisables, par exemple dans les applications mobiles et les environnements cloud qui reposent sur des adresses IP dynamiques. Si vous utilisez des API Maps de services Web dans ces scénarios, sécurisez vos applications à l'aide d'un serveur proxy ou d'un obscurcissement.
5 Pour les applications mobiles, vous pouvez utiliser les SDK Places pour Android et SDK Places pour iOS natifs.