Utiliser des clés API

Cet article explique aux développeurs d'applications comment utiliser des clés API avec les API Google Cloud.

Présentation

Les clés API sont une chaîne chiffrée simple qui identifie une application sans aucun compte principal. Elles permettent d'accéder aux données publiques de manière anonyme et d'associer des requêtes API à votre projet pour les quotas et la facturation.

Pour en savoir plus sur l'authentification auprès des API Google Cloud, consultez la page Présentation de l'authentification. Pour en savoir plus sur l'utilisation des clés API pour les API et les SDK Google Maps Platform, consultez la documentation de Google Maps Platform.

Gérer les clés API

Nous vous recommandons d'utiliser Cloud Console pour gérer les clés API. Accédez à la page API et services → Identifiants de Cloud Console. Vos clés API apparaissent dans la section Clés API. Depuis cette page, vous pouvez créer des clés API, définir des restrictions de clé API, alterner des chaînes de clés API et effectuer d'autres actions.

Créer une clé API

Pour créer une clé API au sein d'un projet, l'utilisateur doit disposer du rôle primitif Éditeur (roles/editor) sur le projet. 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, afin de 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 d'application et de clé 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.

Appliquer des restrictions de clé API

Les clés API ne sont pas restreintes par défaut. Les clés sans restriction ne sont pas sécurisées, car elles peuvent être utilisées par n'importe qui et depuis n'importe quel emplacement. Pour les applications de production, vous devez définir des restrictions d'application et des restrictions 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.

Ajouter des restrictions d'application

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 Adresses IP pour limiter l’accès aux clés API à certaines adresses IP.

  • Sélectionnez 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 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

Les clés API utilisées par les applications Web doivent comporter 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.

Ajouter des restrictions d'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 relatives 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.

Étapes suivantes