Utiliser des clés API

Ce guide explique comment créer des clés API et configurer des restrictions de clés API pour les applications Google Cloud. Pour en savoir plus sur l'authentification auprès d'une API Google Cloud, consultez la page Présentation de l'authentification. Pour obtenir des informations sur les clés API pour les API et les SDK Google Maps Platform, consultez la documentation de Google Maps.

Une clé API est une simple chaîne chiffrée utilisable lors de l'appel de certaines API qui n'ont pas besoin d'accéder à des données utilisateur privées. Les clés API sont utiles pour les clients tels que les applications mobiles et de navigateur qui ne disposent pas d'un serveur backend. La clé API permet de suivre les requêtes API associées à votre projet pour le quota et la facturation.

Les clés API présentent des limitations importantes :

C'est pourquoi nous vous recommandons d'utiliser plutôt le flux d'authentification standard. Cependant, il existe des cas bien particuliers où les clés API sont plus appropriées. Par exemple, si vous développez une application mobile qui doit utiliser l'API Cloud Translation sans utiliser de serveur backend, les clés API constituent le moyen le plus simple de s'authentifier. Dans la plupart des cas, nous vous recommandons de faire en sorte que votre application communique avec un serveur backend qui gère l'authentification et l'appel des services Google Cloud.

Créer une clé API

Pour créer une clé API, votre compte doit disposer du rôle primitif Éditeur (roles/editor) sur le projet en cours. Pour en savoir plus, consultez la section Rôles primitifs.

Pour créer une clé API :

  1. Accédez au panneau API et services → Identifiants dans Cloud Console.

  2. Sélectionnez Créer des identifiants, puis sélectionnez Clé API dans le menu déroulant.

  3. La boîte de dialogue Clé API créée affiche la nouvelle clé.

Vous voudrez peut-être copier la clé et la conserver à un emplacement sécurisé. Si vous n'utilisez pas une clé de test que vous prévoyez de supprimer ultérieurement, ajoutez des restrictions d'application et de clé API.

Utiliser une clé API

Transmettez la clé API dans un appel d'API REST en tant que paramètre de requête au format suivant. Remplacez API_KEY par votre clé API.

key=API_KEY

Par exemple, pour transmettre une clé API pour une requête API Cloud Natural Language pour documents.analyzeEntities, procédez comme suit :

POST https://language.googleapis.com/v1/documents:analyzeEntities?key=API_KEY

Sécuriser une clé API

Lorsque vous utilisez des clés API dans vos applications, veillez à les sécuriser. L'exposition publique de vos identifiants peut compromettre votre compte, ce qui pourrait entraîner des frais inattendus. Pour contribuer à la sécurité de vos clés API, appliquez les bonnes pratiques suivantes :

  • N'intégrez pas les clés API directement dans le code. Les clés API intégrées dans le code peuvent être exposées au public par accident. Par exemple, vous pouvez oublier de supprimer les clés du code que vous partagez. Au lieu d'intégrer vos clés API dans vos applications, stockez-les dans des variables d'environnement ou dans des fichiers hors de l'arborescence source de l'application.

  • Ne stockez pas les clés API dans des fichiers dans l'arborescence source de votre application. Si vous stockez les clés API dans des fichiers, conservez ces fichiers en dehors de l'arborescence source de l'application pour vous assurer que les clés ne se retrouvent pas dans votre système de contrôle de code source. Cette pratique est particulièrement importante si vous utilisez un système de gestion de code source public tel que GitHub.

  • Configurez des restrictions sur vos applications et clés API. En ajoutant des restrictions, vous pouvez réduire l'impact d'une clé API compromise.

  • Supprimez les clés API inutiles pour réduire l'exposition aux attaques.

  • Regénérez vos clés API régulièrement. Vous pouvez regénérer les clés API à partir de la page "Identifiants" en cliquant sur Regénérer la clé pour chacune d'entre elles. Ensuite, mettez à jour vos applications afin qu'elles utilisent les clés nouvellement générées. Les anciennes clés continueront à fonctionner pendant 24 heures après la génération des clés de remplacement.

  • Vérifiez le code avant de le publier. Assurez-vous qu'il ne contient aucune clé API ou autre information privée avant de le rendre accessible au public.

Ajouter des restrictions aux clés API

Une clé API ne présente aucune restriction par défaut. Les clés sans restriction ne sont pas sécurisées, car elles peuvent être affichées publiquement, par exemple à partir d'un navigateur, ou accessibles sur un appareil hébergeant la clé.

Pour les applications de production, définissez des restrictions d'application et d'API.

Pour ajouter des restrictions de clé API :

  1. Accédez au panneau API et services → Identifiants dans Cloud Console.

  2. Sélectionnez le nom d'une clé API existante.

Restrictions relatives aux applications

Les restrictions relatives aux applications spécifient les sites Web, adresses IP ou applications qui peuvent utiliser une clé API. Ajoutez des restrictions d'application en fonction du type d'application. Vous ne pouvez définir qu'un seul type de restriction par clé API.

Choisissez le type de restriction en fonction des besoins de votre application.

  • Sélectionnez Aucun à des fins de test uniquement.

  • Sélectionnez Référents HTTP pour les clients API qui s'exécutent sur un navigateur Web, afin que seules les pages spécifiées puissent appeler l'API. Ces types d'applications exposant publiquement leurs clés API, nous vous recommandons d'utiliser plutôt un compte de service. Consultez la section Ajouter des restrictions HTTP pour obtenir des exemples.

  • Sélectionnez IP addresses (Adresses IP) pour limiter l’accès aux clés API à certaines adresses IP.

  • Sélectionnez Android apps (Applications Android) pour les applications Android. Cette option nécessite l'ajout du nom du package et de l'empreinte du certificat de signature SHA-1.

  • Sélectionnez iOS apps (Applications iOS) pour les applications iOS. Cette option nécessite l'ajout d'au moins un identifiant de groupe iOS pour limiter les appels d'API à des groupes iOS spécifiques.

Ajouter des restrictions HTTP

Pour ajouter des restrictions HTTP :

  • Sélectionnez Référents HTTP {sites Web} dans la section Restrictions liées aux applications.

  • Saisissez au moins une restriction dans la section Restrictions liées aux sites Web.

  • Si votre domaine est compatible avec HTTP et HTTPS, les deux restrictions doivent être ajoutées séparément.

  • Vous pouvez éventuellement utiliser des caractères génériques (*) pour le sous-domaine et/ou le chemin d'accès.

Le tableau suivant présente des exemples de scénarios et de restrictions, du plus restrictif au moins restrictif. Nous vous recommandons d'utiliser l'exemple le plus restrictif convenant à votre cas d'utilisation.

Scénario Restrictions
Autoriser une URL spécifique.

Ajoutez une seule restriction avec un chemin d'accès exact. Exemple :

  • https://www.example.com/path
  • http://www.example.com/path/path
Autoriser n'importe quelle URL dans un seul sous-domaine ou domaine nu.

Vous devez définir au moins deux restrictions pour autoriser l'ensemble d'un domaine.

  1. Définissez une restriction pour le domaine, sans la barre oblique finale. Par exemple :
    • https://www.example.com
    • http://sub.example.com
    • http://example.com
  2. Définissez une deuxième restriction pour le domaine, qui inclut un caractère générique pour le chemin d'accès. Par exemple :
    • https://www.example.com/*
    • http://sub.example.com/*
    • http://example.com/*
  3. Si votre domaine autorise HTTP et HTTPS, vous devez ajouter des restrictions supplémentaires séparément.
Autoriser toutes les URL de sous-domaine dans un seul domaine.

Vous devez définir au moins deux restrictions.

  1. Définissez une restriction pour le domaine, avec un caractère générique pour le sous-domaine et sans barre oblique finale. Par exemple :
    • https://*.example.com
  2. Définissez une deuxième restriction pour le domaine, qui inclut un caractère générique pour le chemin d'accès, par exemple :
    • https://*.example.com/*
  3. Si votre domaine autorise HTTP et HTTPS, vous devez ajouter des restrictions supplémentaires séparément.

Restrictions relatives aux API

Les restrictions relatives aux API définissent les API qui peuvent être appelées à l'aide de la clé API. Toutes les clés API utilisées dans des applications de production doivent employer des restrictions d'API.

Pour définir des restrictions d'API :

  1. Sélectionnez Restreindre la clé dans la section Restrictions liées aux API.

  2. Sélectionnez tous les noms d'API que votre clé API doit appeler dans la liste déroulante.

  3. Cliquez sur le bouton Enregistrer.

Afficher les clés API existantes

Utilisez Cloud Console pour afficher les clés API existantes. Après avoir accédé au panneau API et services → Identifiants dans Cloud Console, vous pouvez visualiser les clés API existantes sous l'en-tête Clés API.

Étape suivante