Guide de démarrage rapide : Sécuriser le trafic vers un service avec la console Google Cloud
Cette page vous explique comment déployer une API sur API Gateway pour sécuriser le trafic vers un service de backend.
Suivez les étapes pour déployer une API afin d'accéder à un service de backend sur Cloud Run Functions à l'aide de la console Google Cloud . Ce guide de démarrage rapide explique également comment utiliser une clé API pour protéger votre backend contre les accès non autorisés.
Avant de commencer
Dans la console Google Cloud , accédez à la page API Gateway.
API Gateway nécessite l'activation des services Google suivants :
Nom Titre apigateway.googleapis.comAPI de la passerelle API servicemanagement.googleapis.comAPI Service Management servicecontrol.googleapis.comAPI Service Control Si vous n'avez pas encore activé ces services pour le projet que vous sélectionnez, vous êtes invité à le faire.
Vérifiez que la facturation est activée sur votre projet.
Déployer un backend d'API
API Gateway se situe devant un service de backend déployé et gère toutes les requêtes entrantes. Dans ce guide de démarrage rapide, API Gateway achemine les appels entrants vers un backend de fonction Cloud Run nommé helloGET, qui contient la fonction ci-dessous :
/** * HTTP Cloud Function. * This function is exported by index.js, and is executed when * you make an HTTP request to the deployed function's endpoint. * * @param {Object} req Cloud Function request context. * More info: https://expressjs.com/en/api.html#req * @param {Object} res Cloud Function response context. * More info: https://expressjs.com/en/api.html#res */ exports.helloGET = (req, res) => { res.send('Hello World!'); };
Suivez les étapes du Guide de démarrage rapide : utiliser Google Cloud CLI pour télécharger l'exemple de code Cloud Run Functions et déployer le service de backend de la fonction Cloud Run.
Créer une configuration d'API
API Gateway utilise une configuration d'API pour acheminer les appels vers le service de backend. Vous pouvez utiliser une spécification OpenAPI contenant des extensions spécialisées pour définir le comportement choisi d'API Gateway. Pour en savoir plus sur les extensions OpenAPI compatibles, consultez les pages suivantes :
La spécification OpenAPI de ce guide de démarrage rapide contient des instructions de routage vers le backend Cloud Run Functions :
OpenAPI 2.0
# openapi-functions.yaml swagger: '2.0' info: title: API_ID optional-string description: Sample API on API Gateway with a Google Cloud Functions backend version: 1.0.0 schemes: - https produces: - application/json paths: /hello: get: summary: Greet a user operationId: hello x-google-backend: address: https://GATEWAY_LOCATION -PROJECT_ID.cloudfunctions.net/helloGET responses: '200': description: A successful response schema: type: string
OpenAPI 3.x
# openapi-functions.yaml openapi: 3.0.4 info: title: API_ID optional-string description: Sample API on API Gateway with a Google Cloud Functions backend version: 1.0.0 # Define reusable components in x-google-api-management x-google-api-management: backend: functions_backend: address: https://GATEWAY_LOCATION-PROJECT_ID.cloudfunctions.net/helloGET pathTranslation: APPEND_PATH_TO_ADDRESS protocol: "http/1.1" # Apply the backend configuration by referencing it by name. Set at the root so this applies to all operations unless overridden. x-google-backend: functions_backend paths: /hello: get: summary: Greet a user operationId: hello responses: '200': description: A successful response content: application/json: schema: type: string
Utilisez cette spécification OpenAPI pour définir votre API :
Sur la ligne de commande, créez un fichier nommé
openapi-functions.yaml.Copiez et collez le contenu de la spécification OpenAPI de l'exemple précédent dans le fichier que vous venez de créer.
Modifiez le fichier comme suit :
- Dans le champ
title, remplacez API_ID par le nom de votre API (que vous créerez à l'étape suivante) et optional-string par une brève description de votre choix. La valeur de ce champ est utilisée lors de la création de clés API qui accordent l'accès à cette API. Consultez les exigences concernant les ID d'API pour connaître les consignes de dénomination des ID d'API. - Dans le champ
address, remplacez PROJECT_ID par le nom de votre projet Google Cloud et GATEWAY_LOCATION par l' Google Cloud où votre passerelle est déployée.
- Dans le champ
Créer une passerelle
Vous êtes maintenant prêt à créer et à déployer une passerelle sur API Gateway.
Ouvrez la page API Gateway dans la console Google Cloud .
Cliquez sur Créer une passerelle.
Dans la section API :
- Choisissez de créer une API ou sélectionnez-en une existante dans le menu déroulant Sélectionner une API. Pour ce tutoriel, sélectionnez Créer une API.
- Saisissez le Nom à afficher de votre API.
- Saisissez l'ID de l'API pour votre API.
- (Facultatif) Ajoutez des libellés à votre API au format clé:valeur. Pour ajouter plusieurs libellés, cliquez sur Ajouter un libellé et saisissez des valeurs supplémentaires.
Dans la section Configuration d'API :
- Choisissez de créer une configuration d'API ou sélectionnez-en une existante dans le menu déroulant Sélectionner une configuration. Pour ce tutoriel, sélectionnez Créer une configuration d'API.
- Utilisez l'explorateur de fichiers pour importer le fichier
openapi-functions.yamlutilisé pour définir votre API. - Saisissez un nom à afficher pour votre configuration d'API.
Sélectionnez un compte de service dans la liste déroulante. Le compte de service que vous sélectionnez est utilisé comme identité pour API Gateway.
(Facultatif) Ajoutez des libellés à votre configuration d'API au format clé:valeur. Pour ajouter plusieurs libellés, cliquez sur Ajouter un libellé et saisissez des valeurs supplémentaires.
Dans la section Gateway details (Détails de la passerelle) :
- Saisissez le nom à afficher de la passerelle. L'URL de la passerelle est générée automatiquement.
- Sélectionnez l'emplacement de la passerelle dans le menu déroulant.
- (Facultatif) Ajoutez des libellés à votre passerelle au format clé:valeur. Pour ajouter plusieurs libellés, cliquez sur Ajouter un libellé et saisissez des valeurs supplémentaires.
Cliquez sur Créer une passerelle.
La configuration de l'API est ainsi déployée sur une passerelle nouvellement créée. Le déploiement d'une configuration d'API sur une passerelle définit une URL externe permettant aux clients API d'accéder à votre API.
Cette opération peut prendre plusieurs minutes. Pour vérifier l'état du processus de création et de déploiement, cliquez sur l'icône Notification dans la barre de navigation principale pour afficher une notification d'état, comme illustré dans l'image suivante :

Si l'opération réussit, vous pouvez afficher les détails de la passerelle sur la page de destination Passerelles.
Notez l'URL de la passerelle. Vous l'utiliserez pour tester votre déploiement à l'étape suivante.
Tester le déploiement de l'API
Vous pouvez maintenant envoyer des requêtes à votre API à l'aide de l'URL générée lors du déploiement de votre passerelle.
Dans votre navigateur Web, saisissez l'URL suivante, où :
- GATEWAY_URL spécifie l'URL de la passerelle déployée.
hellocorrespond au chemin d'accès spécifié dans la configuration de votre API.
https://GATEWAY_URL/hello
Exemple :
https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev/hello
Le message Hello World! doit s'afficher dans votre navigateur.
Vous avez réussi à créer et à déployer une passerelle API.
Sécuriser l'accès avec une clé API
Pour sécuriser l'accès à votre backend d'API, générez une clé API associée à votre projet et accordez-lui l'accès nécessaire pour appeler votre API. Pour en savoir plus, consultez Restreindre l'accès à une API à l'aide de clés API.
Si vous n'avez pas encore de clé API associée au projet Google Cloud que vous utilisez dans ce guide de démarrage rapide, ajoutez-en une en suivant les étapes décrites dans Créer une clé API.
Pour sécuriser l'accès à votre passerelle à l'aide d'une clé API :
- Activez la prise en charge des clés API pour votre service :
- Dans la console Google Cloud , accédez à API et services > Bibliothèque.
- Dans la barre de recherche, saisissez le nom du service géré de l'API que vous venez de créer. Vous trouverez cette valeur dans la colonne Service géré de votre API sur la page d'accueil des API. Exemple :
my-api-123abc456def1.apigateway.my-project.cloud.goog
- Sur la page de destination de votre service, cliquez sur Activer.
- Modifiez la spécification OpenAPI utilisée pour créer la configuration de votre API afin d'inclure des instructions permettant d'appliquer une stratégie de sécurité pour la validation des clés API à tout le trafic. Ajoutez le type
securityetsecuritySchemescomme indiqué ci-dessous :OpenAPI 2.0
# openapi2-functions.yaml swagger: '2.0' info: title: API_ID optional-string description: Sample API on API Gateway with a Google Cloud Functions backend version: 1.0.0 schemes: - https produces: - application/json paths: /hello: get: summary: Greet a user operationId: hello x-google-backend: address: https://GATEWAY_LOCATION-PROJECT_ID.cloudfunctions.net/helloGET security: - api_key: [] responses: '200': description: A successful response schema: type: string securityDefinitions: # This section configures basic authentication with an API key. api_key: type: "apiKey" name: "key" in: "query"
securityDefinitionconfigure votre API pour qu'elle exige une clé API transmise en tant que paramètre de requête nommékeylors de la demande d'accès à tous les chemins définis dans la spécification.OpenAPI 3.x
# openapi-functions.yaml openapi: 3.0.4 info: title: API_ID optional-string description: Sample API on API Gateway with a Google Cloud Functions backend version: 1.0.0 # Define reusable components in x-google-api-management x-google-api-management: backend: functions_backend: address: https://GATEWAY_LOCATION-PROJECT_ID.cloudfunctions.net/helloGET pathTranslation: APPEND_PATH_TO_ADDRESS protocol: "http/1.1" # Apply the backend configuration by referencing it by name. Set at the root so this applies to all operations unless overridden. x-google-backend: functions_backend components: # This section configures basic authentication with an API key. securitySchemes: google_api_key: type: apiKey name: x-api-key in: header security: - google_api_key: [] paths: /hello: get: summary: Greet a user operationId: hello responses: '200': description: A successful response content: application/json: schema: type: string
securitySchemesconfigure votre API pour qu'elle exige une clé API transmise en tant que paramètre de requête nommékeylors de la demande d'accès à tous les chemins définis dans la spécification. - Créez et déployez une configuration d'API sur votre passerelle existante :
- Accédez à la page de destination "Passerelles".
- Sélectionnez votre passerelle dans la liste pour afficher ses détails.
- Cliquez sur Modifier pour ouvrir le volet de configuration de la passerelle.
- Dans la section Configuration de l'API :
- Sélectionnez Créer une configuration d'API dans le menu déroulant.
- Importez votre spécification OpenAPI modifiée à l'aide de l'explorateur de fichiers.
- Saisissez le nom à afficher pour votre nouvelle configuration d'API.
- Sélectionnez un compte de service dans la liste déroulante. Le compte de service que vous sélectionnez est utilisé comme identité pour API Gateway.
- (Facultatif) Ajoutez des libellés à votre configuration d'API au format clé/valeur. Pour ajouter plusieurs libellés, cliquez sur Ajouter un libellé et saisissez des valeurs supplémentaires.
- Cliquez sur Mettre à jour.
Tester votre clé API
Une fois que vous avez créé et déployé l'API modifiée, envoyez-lui une requête.
Dans votre navigateur Web, saisissez l'URL suivante, où :
- GATEWAY_URL spécifie l'URL de la passerelle déployée.
hellocorrespond au chemin d'accès spécifié dans la configuration de votre API.
https://GATEWAY_URL/hello
L'erreur suivante devrait se produire :
UNAUTHENTICATED:Method doesn't allow unregistered callers (callers without established identity). Please use API Key or other form of API consumer identity to call this API.
Dans votre navigateur, saisissez l'URL suivante, où :
- GATEWAY_URL spécifie l'URL de la passerelle déployée.
hellocorrespond au chemin d'accès spécifié dans la configuration de votre API.- API_KEY spécifie la clé API que vous avez créée dans Sécuriser l'accès à l'aide d'une clé API.
https://GATEWAY_URL/hello?key=API_KEY
Hello World! devrait maintenant s'afficher dans votre navigateur.
Félicitations ! Vous avez réussi à protéger votre backend d'API avec une passerelle API. Vous pouvez maintenant commencer à intégrer de nouveaux clients API en générant d'autres clés API.
Suivre l'activité de l'API
Affichez les graphiques d'activité de votre API sur la page API Gateway de la consoleGoogle Cloud . Cliquez sur votre API pour afficher ses graphiques d'activité sur la page Présentation. Il peut s'écouler quelques instants avant que les requêtes ne soient reflétées dans les graphiques.
Consultez les journaux de requêtes de votre API sur la page de l'explorateur de journaux. Un lien vers la page Explorateur de journaux est disponible sur la page API Gateway de la consoleGoogle Cloud .
Une fois sur la page API Gateway :
- Sélectionnez l'API à afficher.
- Cliquez sur l'onglet Détails.
- Cliquez sur le lien sous Journaux.
Effectuer un nettoyage
Pour éviter que les ressources utilisées dans ce guide de démarrage rapide ne soient facturées sur votre compte Google Cloud , vous pouvez :
Vous pouvez également supprimer le projet Google Cloud utilisé pour ce tutoriel.
Étapes suivantes
- En savoir plus sur API Gateway
- Parcourez la section Configurer votre environnement de développement.