Cette page explique comment utiliser des clés API pour s'authentifier auprès des API Google Cloud et des services compatibles avec les clés API.
La plupart des API Google Cloud ne sont pas compatibles avec les clés API. Vérifiez que l'API que vous souhaitez utiliser est compatible avec les clés API avant d'utiliser cette méthode d'authentification.
Pour en savoir plus sur l'utilisation des clés API pour vous authentifier auprès de Google Maps Platform, consultez la documentation de Google Maps Platform. Pour plus d'informations sur l'API API Keys, consultez la documentation de l'API API Keys.Présentation des clés API
Lorsque vous utilisez une clé API pour vous authentifier auprès d'une API, la clé API n'identifie pas de compte principal et ne fournit pas non plus d'informations relatives à l'autorisation. Par conséquent, la requête n'utilise pas Identity and Access Management (IAM) pour vérifier si l'appelant est autorisé à effectuer l'opération demandée.
La clé API associe la requête à un projet Google Cloud, à des fins de facturation et de quotas. Étant donné que les clés API n'identifient pas l'appelant, elles sont souvent utilisées pour accéder à des données ou aux ressources publiques.
De nombreuses API Google Cloud n'acceptent pas les clés API pour l'authentification. Consultez la documentation sur l'authentification concernant le service ou l'API que vous souhaitez utiliser pour déterminer s'il est compatible avec les clés API.
Une clé API comprend les composants suivants, que vous utilisez pour gérer et utiliser la clé :
- Chaîne
- La chaîne de clé API est une chaîne chiffrée, par exemple
AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe
. Lorsque vous utilisez une clé API pour l'authentification, vous utilisez toujours la chaîne de la clé. Les clés API ne sont pas associées à un fichier JSON. - ID
- L'ID de clé API est utilisé par les outils d'administration de Google Cloud pour identifier de manière unique la clé. Vous ne pouvez pas vous authentifier à l'aide de l'ID de clé. Vous pouvez trouver l'ID de la clé dans l'URL de la page de modification de la clé dans la console Google Cloud. Vous pouvez également obtenir l'ID de clé à l'aide de Google Cloud CLI pour répertorier les clés de votre projet.
- Nom à afficher
- Le nom à afficher est un nom descriptif facultatif pour la clé, que vous pouvez définir lorsque vous créez ou mettez à jour la clé.
Pour gérer les clés API, vous devez disposer du rôle d'administrateur de clés API (roles/serviceusage.apiKeysAdmin
) sur le projet.
Avant de commencer
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.
gcloud
Vous pouvez utiliser les exemples gcloud CLI de cette page dans l'un des environnements de développement suivants :
-
Cloud Shell : pour utiliser un terminal en ligne avec gcloud CLI déjà configuré, activez Cloud Shell.
En bas de cette page, une session Cloud Shell démarre et affiche une invite de ligne de commande. L'initialisation de la session peut prendre quelques secondes.
-
Shell local : pour utiliser gcloud CLI dans un environnement de développement local, installez et initialisez gcloud CLI.
Java
Pour utiliser les exemples Java de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local dans la documentation sur l'authentification Google Cloud.
Python
Pour utiliser les exemples Python de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local dans la documentation sur l'authentification Google Cloud.
REST
Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Créer une clé API
Appliquez l'une des procédures suivantes pour créer une clé API.
Console
Dans la console Google Cloud, accédez à la page Identifiants.
Cliquez sur Créer des identifiants, puis sélectionnez Clé API dans le menu.
La boîte de dialogue Clé API créée affiche la chaîne correspondant à la clé que vous venez de créer.
gcloud
Vous exécutez la commande gcloud services api-keys create
pour créer une clé API.
Remplacez DISPLAY_NAME
par un nom descriptif pour votre clé.
gcloud services api-keys create --display-name=DISPLAY_NAME
Java
Pour exécuter cet exemple, vous devez installer la bibliothèque cliente google-cloud-apikeys
.
Python
Pour exécuter cet exemple, vous devez installer la bibliothèque cliente des clés API.
REST
Vous utilisez la méthode keys.create
pour créer une clé API. Cette requête renvoie une opération de longue durée, que vous devez interroger pour obtenir les informations de la nouvelle clé.
Remplacez les valeurs suivantes :
DISPLAY_NAME
: facultatif. Un nom descriptif pour votre clé.PROJECT_ID
: ID ou nom de votre projet Google Cloud.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d {'"displayName" : "DISPLAY_NAME"'} \ "https://apikeys.googleapis.com/v2/projects/PROJECT/locations/global/keys"
Pour plus d'informations sur la création de clés API à l'aide de l'API REST, consultez la page Créer une clé API dans la documentation de l'API "API Keys".
Copiez votre chaîne de clé et conservez-la à 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
Si une API est compatible avec les clés API, vous pouvez l'authentifier à l'aide de clés API. Vous pouvez utiliser des clés API avec des requêtes REST et avec les bibliothèques clientes qui les prennent en charge.
Utiliser une clé API avec REST
Vous pouvez transmettre la clé API dans un appel d'API REST en tant que paramètre de requête, au format suivant. Remplacez API_KEY
par la chaîne de votre clé API.
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
Vous pouvez également utiliser l'en-tête x-goog-api-key
pour transmettre votre clé.
Cet en-tête doit être utilisé avec les requêtes gRPC.
curl -X POST \ -H "X-goog-api-key: API_KEY" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://translation.googleapis.com/language/translate/v2"
Utiliser une clé API avec des bibliothèques clientes
La compatibilité des bibliothèques clientes avec les clés API est spécifique à un langage.
Python
Cet exemple utilise l'API Cloud Natural Language, qui est compatible avec les clés API pour l'authentification, afin de vous montrer comment fournir une clé API à la bibliothèque.
Pour exécuter cet exemple, vous devez installer la bibliothèque cliente Natural Language et la bibliothèque cliente des clés API.
Sécuriser une clé API
Lorsque vous utilisez des clés API dans vos applications, assurez-vous qu'elles sont protégées lors du stockage et de la transmission. L'exposition publique de vos clés API peut entraîner des frais inattendus. Pour contribuer à la sécurité de vos clés API, appliquez les bonnes pratiques suivantes :
Ajoutez des restrictions de clés API à votre clé.
En ajoutant des restrictions, vous pouvez limiter les modalités d'utilisation d'une clé API, réduisant ainsi l'impact d'une clé API compromise.
Supprimez les clés API inutiles pour réduire l'exposition aux attaques.
Recréez régulièrement vos clés API.
Vous devez créer périodiquement des clés API, supprimer les anciennes et mettre à jour vos applications pour qu'elles utilisent les nouvelles clés API.
Appliquer des restrictions liées aux clés 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.
Ajouter des restrictions liées aux applications
Les restrictions relatives aux applications spécifient les sites Web, adresses IP ou applications qui peuvent utiliser une clé API.
Vous ne pouvez appliquer qu'un seul type de restriction d'application à la fois. Choisissez le type de restriction en fonction du type de votre application :
Option | Application type (Type d'application) | Remarques |
---|---|---|
Référents HTTP | Applications Web | Spécifie les sites Web pouvant utiliser la clé. |
Adresses IP | Applications appelées par des serveurs spécifiques | Spécifie les serveurs ou les jobs Cron pouvant utiliser la clé. |
Applications Android | Applications Android | Spécifie l'application Android pouvant utiliser la clé. |
Applications iOS | Applications iOS | Spécifie les groupes iOS pouvant utiliser la clé. |
Référents HTTP
Pour limiter les sites Web autorisés à utiliser votre clé API, vous pouvez ajouter une ou plusieurs restrictions de référents HTTP.
Vous pouvez remplacer un sous-domaine ou un chemin d'accès par un caractère générique (*
), mais vous ne pouvez pas insérer de caractère générique au milieu de l'URL. Par exemple, la valeur *.example.com
est valide et accepte tous les sites se terminant par .example.com
. En revanche, mysubdomain*.example.com
n'est pas une restriction valide.
Les numéros de ports peuvent être inclus dans les restrictions de référents HTTP. Si vous incluez un numéro de port, seules les requêtes utilisant ce port sont prises en compte. Si vous ne spécifiez pas de numéro de port, les requêtes exploitant n'importe quel numéro de port sont prises en compte.
Vous pouvez ajouter jusqu'à 1 200 référents HTTP à une clé API.
Le tableau suivant présente quelques exemples de scénarios, et décrit les restrictions correspondantes appliquées dans le navigateur :
Scénario | Restrictions |
---|---|
Autoriser une URL spécifique | Vous devez ajoutez une URL avec un chemin d'accès exact. Exemple :www.example.com/path www.example.com/path/path Certains navigateurs mettent en œuvre une règle d'URL de provenance qui envoie uniquement l'URL d'origine pour les requêtes d'origines multiples. Les utilisateurs de ces navigateurs ne peuvent pas utiliser de clés avec des restrictions d'URL spécifiques à la page. |
Autoriser n'importe quelle URL de votre site | Vous devez définir deux URL dans la liste allowedReferers .
|
Autoriser n'importe quelle URL dans un seul sous-domaine ou domaine nu |
Vous devez définir deux URL dans la liste
|
Pour limiter votre clé API à des sites Web spécifiques, utilisez l'une des options suivantes :
Console
Dans la console Google Cloud, accédez à la page Identifiants.
Cliquez sur le nom de la clé API que vous souhaitez restreindre.
Dans la section Restrictions liées aux applications, sélectionnez Référents HTTP.
Pour chaque restriction que vous souhaitez ajouter, cliquez sur Ajouter un élément, saisissez la restriction, puis cliquez sur OK.
Cliquez sur Enregistrer pour enregistrer vos modifications et revenir à la liste des clés API.
gcloud
Obtenez l'ID de la clé que vous souhaitez restreindre.
L'ID est différent du nom à afficher ou de la chaîne de clé. Vous pouvez obtenir l'ID à l'aide de la commande
gcloud services api-keys list
pour lister les clés de votre projet.Exécutez la commande
gcloud services api-keys update
pour ajouter des restrictions d'URL de provenance HTTP à une clé API.Remplacez les valeurs suivantes :
KEY_ID
: ID de la clé que vous souhaitez restreindre.ALLOWED_REFERRER_1
: votre restriction de référent HTTP.Vous pouvez ajouter autant de restrictions que nécessaire, en utilisant des virgules pour les séparer. Vous devez fournir toutes les restrictions de référents avec la commande update ; les restrictions de référents ainsi fournies remplacent toutes les restrictions de référents existantes sur la clé.
gcloud services api-keys update KEY_ID \ --allowed-referrers="ALLOWED_REFERRER_1"
Java
Pour exécuter cet exemple, vous devez installer la bibliothèque cliente google-cloud-apikeys
.
Python
Pour exécuter cet exemple, vous devez installer la bibliothèque cliente des clés API.
REST
Obtenez l'ID de la clé que vous souhaitez restreindre.
L'ID est différent du nom à afficher ou de la chaîne de clé. Vous pouvez obtenir l'ID à l'aide de la méthode keys.list. L'ID est listé dans le champ
uid
de la réponse.Remplacez
PROJECT_ID
par l'ID ou le nom de votre projet Google Cloud.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Utilisez la méthode keys.patch pour ajouter des restrictions de référents HTTP à la clé API.
Cette requête renvoie une opération de longue durée ; vous devez interroger l'opération pour savoir quand elle est terminée et obtenir l'état de l'opération.
Remplacez les valeurs suivantes :
ALLOWED_REFERRER_1
: votre restriction de référent HTTP.Vous pouvez ajouter autant de restrictions que nécessaire, en utilisant des virgules pour les séparer. Vous devez fournir toutes les restrictions de référents avec la requête. les restrictions de référent ainsi fournies remplacent toutes les restrictions de référents existantes sur la clé.
PROJECT_ID
: ID ou nom de votre projet Google Cloud.KEY_ID
: ID de la clé que vous souhaitez restreindre.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "browserKeyRestrictions": { "allowedReferrers": ["ALLOWED_REFERRER_1"] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
Pour en savoir plus sur l'ajout à une clé de restrictions sur les URL de provenance HTTP, à l'aide de l'API REST, consultez la section Ajouter des restrictions de navigateur dans la documentation de l'API "API Keys".
Adresses IP
Vous pouvez spécifier une ou plusieurs adresses IP pour les appelants, tels qu'un serveur Web ou un job Cron, qui sont autorisés à utiliser votre clé API. Vous pouvez spécifier les adresses IP dans l'un des formats suivants :
- IPv4 (
198.51.100.1
) - IPv6 (
2001:db8::1
) - Un sous-réseau utilisant la notation CIDR (
198.51.100.0/24
,2001:db8::/64
)
L'utilisation de localhost
n'est pas compatible avec les restrictions de serveur.
Pour limiter votre clé API à des adresses IP spécifiques, utilisez l'une des options suivantes :
Console
Dans la console Google Cloud, accédez à la page Identifiants.
Cliquez sur le nom de la clé API que vous souhaitez restreindre.
Dans la section Restrictions liées aux applications, sélectionnez Adresses IP.
Pour chaque adresse IP que vous souhaitez ajouter, cliquez sur Ajouter un élément, saisissez l'adresse, puis cliquez sur OK.
Cliquez sur Enregistrer pour enregistrer vos modifications et revenir à la liste des clés API.
gcloud
Obtenez l'ID de la clé que vous souhaitez restreindre.
L'ID est différent du nom à afficher ou de la chaîne de clé. Vous pouvez obtenir l'ID à l'aide de la commande
gcloud services api-keys list
pour lister les clés de votre projet.Exécutez la commande
gcloud services api-keys update
pour ajouter des restrictions de serveur (adresse IP) à une clé API.Remplacez les valeurs suivantes :
KEY_ID
: ID de la clé que vous souhaitez restreindre.ALLOWED_IP_ADDR_1
: votre adresse IP autorisée.Vous pouvez ajouter autant d'adresses IP que nécessaire, en les séparant par des virgules.
gcloud services api-keys update KEY_ID \ --allowed-ips="ALLOWED_IP_ADDR_1"
Java
Pour exécuter cet exemple, vous devez installer la bibliothèque cliente google-cloud-apikeys
.
Python
Pour exécuter cet exemple, vous devez installer la bibliothèque cliente des clés API.
REST
Obtenez l'ID de la clé que vous souhaitez restreindre.
L'ID est différent du nom à afficher ou de la chaîne de clé. Vous pouvez obtenir l'ID à l'aide de la méthode keys.list. L'ID est listé dans le champ
uid
de la réponse.Remplacez
PROJECT_ID
par l'ID ou le nom de votre projet Google Cloud.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Utilisez la méthode keys.patch pour ajouter des restrictions de serveur (adresse IP) à une clé API.
Cette requête renvoie une opération de longue durée ; vous devez interroger l'opération pour savoir quand elle est terminée et obtenir l'état de l'opération.
Remplacez les valeurs suivantes :
ALLOWED_IP_ADDR_1
: votre adresse IP autorisée.Vous pouvez ajouter autant d'adresses IP que nécessaire, en séparant les restrictions ainsi définies par des virgules. Vous devez fournir toutes les adresses IP avec la requête. Les restrictions fournies remplacent toutes les restrictions d'adresse IP existantes sur la clé.
PROJECT_ID
: ID ou nom de votre projet Google Cloud.KEY_ID
: ID de la clé que vous souhaitez restreindre.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "serverKeyRestrictions": { "allowedIps": ["ALLOWED_IP_ADDR_1"] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
Pour en savoir plus sur l'ajout à une clé de restrictions d'adresse IP à l'aide de l'API REST, consultez la section Ajouter des restrictions de serveur dans la documentation de l'API "API Keys".
Applications Android
Vous pouvez limiter l'utilisation d'une clé API à des applications Android spécifiques. Vous devez indiquer le nom du package et l'empreinte de 20 octets du certificat SHA-1 pour chaque application.
Lorsque vous utilisez la clé API dans une requête, vous devez spécifier le nom du package et l'empreinte du certificat à l'aide des en-têtes HTTP suivants :
X-Android-Package
X-Android-Cert
Pour limiter votre clé API à une ou plusieurs applications Android, appliquez l'une des procédures suivantes.
Console
Dans la console Google Cloud, accédez à la page Identifiants.
Cliquez sur le nom de la clé API que vous souhaitez restreindre.
Dans la section Restrictions liées aux applications, sélectionnez Applications Android.
Pour chaque application Android que vous souhaitez ajouter, cliquez sur Ajouter un élément, saisissez le nom du package et l'empreinte du certificat SHA-1, puis cliquez sur OK.
Cliquez sur Enregistrer pour enregistrer vos modifications et revenir à la liste des clés API.
gcloud
Obtenez l'ID de la clé que vous souhaitez restreindre.
L'ID est différent du nom à afficher ou de la chaîne de clé. Vous pouvez obtenir l'ID à l'aide de la commande
gcloud services api-keys list
pour lister les clés de votre projet.Exécutez la commande
gcloud services api-keys update
pour spécifier les applications Android pouvant utiliser une clé API.Remplacez les valeurs suivantes :
KEY_ID
: ID de la clé que vous souhaitez restreindre.SHA1_FINGERPRINT
etPACKAGE_NAME
: informations relatives à une application Android pouvant utiliser la clé.Vous pouvez ajouter autant d'applications que nécessaire, en utilisant des options
--allowed-application
supplémentaires.
gcloud services api-keys update KEY_ID \ --allowed-application=sha1_fingerprint=SHA1_FINGERPRINT_1,package_name=PACKAGE_NAME_1 \ --allowed-application=sha1_fingerprint=SHA1_FINGERPRINT_2,package_name=PACKAGE_NAME_2
Java
Pour exécuter cet exemple, vous devez installer la bibliothèque cliente google-cloud-apikeys
.
Python
Pour exécuter cet exemple, vous devez installer la bibliothèque cliente des clés API.
REST
Obtenez l'ID de la clé que vous souhaitez restreindre.
L'ID est différent du nom à afficher ou de la chaîne de clé. Vous pouvez obtenir l'ID à l'aide de la méthode keys.list. L'ID est listé dans le champ
uid
de la réponse.Remplacez
PROJECT_ID
par l'ID ou le nom de votre projet Google Cloud.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Utilisez la méthode keys.patch pour spécifier les applications Android pouvant utiliser une clé API.
Cette requête renvoie une opération de longue durée ; vous devez interroger l'opération pour savoir quand elle est terminée et obtenir l'état de l'opération.
Remplacez les valeurs suivantes :
SHA1_FINGERPRINT_1
et PACKAGE_NAME_1 : informations relatives à une application Android pouvant utiliser la clé.Vous pouvez ajouter des informations pour autant d'applications que nécessaire, en utilisant des virgules pour séparer les objets AndroidApplication. Vous devez fournir toutes les applications avec la requête. Les applications fournies remplacent toutes les applications autorisées existantes sur la clé.
PROJECT_ID
: ID ou nom de votre projet Google Cloud.KEY_ID
: ID de la clé que vous souhaitez restreindre.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "androidKeyRestrictions": { "allowedApplications": [ { "sha1Fingerprint": "SHA1_FINGERPRINT_1", "packageName": "PACKAGE_NAME_1" }, ] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
Pour en savoir plus sur l'ajout à une clé de restrictions sur les applications Android, à l'aide de l'API REST, consultez la section Ajouter des restrictions Android dans la documentation de l'API "API Keys".
Applications iOS
Vous pouvez restreindre l'utilisation d'une clé API à des applications iOS spécifiques en fournissant l'ID du bundle de chaque application.
Lorsque vous utilisez la clé API dans une requête, vous devez spécifier l'ID de groupe à l'aide de l'en-tête HTTP X-Ios-Bundle-Identifier
.
Pour limiter votre clé API à une ou plusieurs applications iOS, appliquez l'une des procédures suivantes.
Console
Dans la console Google Cloud, accédez à la page Identifiants.
Cliquez sur le nom de la clé API que vous souhaitez restreindre.
Dans la section Restrictions liées aux applications, sélectionnez Applications iOS.
Pour chaque application iOS que vous souhaitez ajouter, cliquez sur Ajouter un élément, saisissez l'ID du bundle, puis cliquez sur OK.
Cliquez sur Enregistrer pour enregistrer vos modifications et revenir à la liste des clés API.
gcloud
Obtenez l'ID de la clé que vous souhaitez restreindre.
L'ID est différent du nom à afficher ou de la chaîne de clé. Vous pouvez obtenir l'ID à l'aide de la commande
gcloud services api-keys list
pour lister les clés de votre projet.Utilisez la méthode
gcloud services api-keys update
pour spécifier les applications iOS pouvant utiliser la clé.Remplacez les valeurs suivantes :
KEY_ID
: ID de la clé que vous souhaitez restreindre.ALLOWED_BUNDLE_ID
: ID de bundle d'une application iOS qui doit pouvoir utiliser cette clé API.Vous pouvez ajouter autant d'ID de bundle que nécessaire, en les séparant par des virgules.
gcloud services api-keys update KEY_ID \ --allowed-bundle-ids=ALLOWED_BUNDLE_ID_1,ALLOWED_BUNDLE_ID_2
Java
Pour exécuter cet exemple, vous devez installer la bibliothèque cliente google-cloud-apikeys
.
Python
Pour exécuter cet exemple, vous devez installer la bibliothèque cliente des clés API.
REST
Obtenez l'ID de la clé que vous souhaitez restreindre.
L'ID est différent du nom à afficher ou de la chaîne de clé. Vous pouvez obtenir l'ID à l'aide de la méthode keys.list. L'ID est listé dans le champ
uid
de la réponse.Remplacez
PROJECT_ID
par l'ID ou le nom de votre projet Google Cloud.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Utilisez la méthode keys.patch pour spécifier les applications iOS pouvant utiliser une clé API.
Cette requête renvoie une opération de longue durée ; vous devez interroger l'opération pour savoir quand elle est terminée et obtenir l'état de l'opération.
Remplacez les valeurs suivantes :
ALLOWED_BUNDLE_ID
: ID de bundle d'une application iOS pouvant utiliser la clé.Vous pouvez ajouter les informations pour autant d'applications que nécessaire ; utilisez des virgules pour séparer les ID de groupe. Vous devez fournir tous les ID de groupe avec la requête ; les ID de groupe fournis remplacent les applications autorisées existantes sur la clé.
PROJECT_ID
: ID ou nom de votre projet Google Cloud.KEY_ID
: ID de la clé que vous souhaitez restreindre.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "iosKeyRestrictions": { "allowedBundleIds": ["ALLOWED_BUNDLE_ID_1","ALLOWED_BUNDLE_ID_2"] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
Pour en savoir plus sur l'ajout à une clé de restrictions sur les applications iOS, à l'aide de l'API REST, consultez la section Ajouter des restrictions iOS dans la documentation de l'API "API Keys".
Ajouter des restrictions liées aux API
Les restrictions relatives aux API définissent les API qui peuvent être appelées à l'aide de la clé API.
Appliquez l'une des procédures suivantes pour ajouter des restrictions liées aux API.
Console
Dans la console Google Cloud, accédez à la page Identifiants.
Cliquez sur le nom de la clé API que vous souhaitez restreindre.
Dans la section Restrictions relatives aux API, cliquez sur Restreindre la clé.
Sélectionnez toutes les API dont l'accès nécessitera votre clé API.
Cliquez sur Enregistrer pour enregistrer vos modifications et revenir à la liste des clés API.
gcloud
Obtenez l'ID de la clé que vous souhaitez restreindre.
L'ID est différent du nom à afficher ou de la chaîne de clé. Vous pouvez obtenir l'ID à l'aide de la commande
gcloud services api-keys list
pour lister les clés de votre projet.Spécifiez les services au niveau desquels une clé API peut être utilisée pour l'authentification à l'aide de la commande
gcloud services api-keys update
.Remplacez les valeurs suivantes :
KEY_ID
: ID de la clé que vous souhaitez restreindre.SERVICE_1
,SERVICE_2
: noms des services des API auxquels la clé peut accéder.Vous devez fournir tous les noms de services via la commande update ; Les noms de services fournis remplacent tous les services existants sur la clé.
Vous pouvez trouver le nom du service en recherchant l'API sur le tableau de bord des API. Les noms de service sont des chaînes telles que
bigquery.googleapis.com
.gcloud services api-keys update KEY_ID \ --api-target=service=SERVICE_1 --api-target=service=SERVICE_2
Java
Pour exécuter cet exemple, vous devez installer la bibliothèque cliente google-cloud-apikeys
.
Python
Pour exécuter cet exemple, vous devez installer la bibliothèque cliente des clés API.
REST
Obtenez l'ID de la clé que vous souhaitez restreindre.
L'ID est différent du nom à afficher ou de la chaîne de clé. Vous pouvez obtenir l'ID à l'aide de la méthode keys.list. L'ID est listé dans le champ
uid
de la réponse.Remplacez
PROJECT_ID
par l'ID ou le nom de votre projet Google Cloud.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Utilisez la méthode keys.patch pour indiquer les services auprès desquels il est possible de s'authentifier à l'aide d'une clé API.
Cette requête renvoie une opération de longue durée ; vous devez interroger l'opération pour savoir quand elle est terminée et obtenir l'état de l'opération.
Remplacez les valeurs suivantes :
SERVICE_1
,SERVICE_2
: noms des services des API auxquels la clé peut accéder.Vous devez fournir tous les noms de services dans la requête ; ceux-ci remplacent tous les services existants sur la clé.
Vous pouvez trouver le nom du service en recherchant l'API sur le tableau de bord des API. Les noms de service sont des chaînes telles que
bigquery.googleapis.com
.PROJECT_ID
: ID ou nom de votre projet Google Cloud.KEY_ID
: ID de la clé que vous souhaitez restreindre.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "apiTargets": [ { "service": "SERVICE_1" }, { "service" : "SERVICE_2" }, ] } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
Pour en savoir plus sur l'ajout à une clé de restrictions sur les API, à l'aide de l'API REST, consultez la section Ajouter des restrictions d'API dans la documentation de l'API "API Keys".
Obtenir des informations sur le projet à partir d'une chaîne de clé
Vous pouvez déterminer à quel projet Google Cloud une clé API est associée à partir de sa chaîne.
Remplacez KEY_STRING
par la chaîne de clé pour laquelle vous souhaitez identifier le projet associé.
gcloud
Exécutez la commande gcloud services api-keys lookup
pour obtenir l'ID du projet à partir d'une chaîne de clé.
gcloud services api-keys lookup KEY_STRING
Java
Pour exécuter cet exemple, vous devez installer la bibliothèque cliente google-cloud-apikeys
.
Python
Pour exécuter cet exemple, vous devez installer la bibliothèque cliente des clés API.
REST
Utilisez la méthode lookupKey
pour obtenir l'ID du projet à partir d'une chaîne de clé.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://apikeys.googleapis.com/v2/keys:lookupKey?keyString=KEY_STRING"
Annuler la suppression d'une clé API
Si vous supprimez une clé API par erreur, vous pouvez annuler sa suppression (la restaurer) dans les 30 jours suivant l'opération. Passé ce délai, vous ne pouvez plus annuler la suppression de la clé API.
Console
Dans la console Google Cloud, accédez à la page Identifiants.
Cliquez sur Restaurer des identifiants supprimés.
Recherchez la clé API supprimée dont vous souhaitez annuler la suppression, puis cliquez sur Restaurer.
L'annulation de la suppression d'une clé API peut prendre quelques minutes pour se propager. Après la propagation, la clé API dont la suppression a été annulée s'affiche dans la liste des clés API.
gcloud
Obtenez l'ID de la clé dont vous souhaitez annuler la suppression.
L'ID est différent du nom à afficher ou de la chaîne de clé. Vous pouvez obtenir l'ID à l'aide de la commande
gcloud services api-keys list --show-deleted
pour lister les clés supprimées de votre projet.Exécutez la commande
gcloud services api-keys undelete
pour annuler la suppression d'une clé API.gcloud services api-keys undelete KEY_ID
Remplacez les valeurs suivantes :
KEY_ID
: ID de la clé dont vous souhaitez annuler la suppression.
REST
Obtenez l'ID de la clé dont vous souhaitez annuler la suppression.
L'ID est différent du nom à afficher ou de la chaîne de clé. Vous pouvez obtenir l'ID à l'aide de la méthode keys.list, avec le paramètre de requête
showDeleted
défini surtrue
. L'ID est listé dans le champuid
de la réponse.Remplacez
PROJECT_ID
par l'ID ou le nom de votre projet Google Cloud.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys?showDeleted=true"
Utilisez la méthode undelete pour annuler la suppression de la clé API.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID:undelete"
Cette requête renvoie une opération de longue durée ; vous devez interroger l'opération pour savoir quand elle est terminée et obtenir l'état de l'opération.
Remplacez les valeurs suivantes :
PROJECT_ID
: ID ou nom de votre projet Google Cloud.KEY_ID
: ID de la clé que vous souhaitez restreindre.
Interroger des opérations de longue durée
Les méthodes de l'API "API Keys" utilisent des opérations de longue durée. Si vous utilisez l'API REST pour créer et gérer des clés API, un objet d'opération est renvoyé par la requête de méthode initiale. Vous devez utiliser le nom de l'opération pour interroger l'opération de longue durée. Lorsque la requête de longue durée est terminée, l'interrogation de l'opération va renvoyer les données de la requête de longue durée.
Pour interroger une opération de longue durée de l'API "API Keys", vous devez utiliser la méthode operations.get
.
Remplacez OPERATION_NAME
par le nom d'opération renvoyé par l'opération de longue durée. Exemple : operations/akmf.p7-358517206116-cd10a88a-7740-4403-a8fd-979f3bd7fe1c
.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://apikeys.googleapis.com/v2/OPERATION_NAME"
Limites concernant les clés API
Vous pouvez créer jusqu'à 300 clés API par projet. Il s'agit d'une limite du système qui ne peut pas être modifiée par une demande d'augmentation de quota.
Si vous avez besoin de plus de clés d'API, vous devez utiliser plusieurs projets.
Étapes suivantes
- Consultez la présentation des méthodes d'authentification.
- Apprenez-en plus sur l'API "API Keys".