Comment puis-je désactiver le point de terminaison par défaut de l'API Gateway pour les API REST ou HTTP ?

Dernière mise à jour : 26/08/2022

Je souhaite autoriser les clients à appeler mes API uniquement en utilisant le nom de domaine personnalisé. Comment puis-je désactiver l'URL du point de terminaison de l'API par défaut execute-api pour les API REST ou HTTP d'Amazon API Gateway ?

Brève description

Les API REST et les API HTTP de l'API Gateway utilisent un point de terminaison d'API par défaut au format suivant : « https://{api_id}.execute-api.{region}.amazonaws.com ». Si vous utilisez un nom de domaine personnalisé pour vos API REST ou HTTP de l'API Gateway, vous pouvez désactiver le point de terminaison par défaut. Cela permet à tout le trafic d'être acheminé vers vos API via le nom de domaine personnalisé.

Solution

Suivez ces étapes pour désactiver le point de terminaison par défaut à l'aide de la console API Gateway, l'Interface de la ligne de commande AWS (AWS CLI), ou d'AWS CloudFormation.

Remarque :

  • Si vous recevez des erreurs lors de l'exécution des commandes AWS CLI, assurez-vous que vous utilisez la version la CLI AWS.
  • Après avoir activé ou désactivé le point de terminaison par défaut, un déploiement est requis pour que la mise à jour prenne effet.

Console API Gateway

API REST

  1. Ouvrez la console API Gateway.
  2. Dans le panneau de navigation, choisissez APIs, puis sélectionnez votre API REST.
  3. Dans le volet de navigation, sélectionnez Settings (Paramètres).
  4. Pour Default Endpoint (Point de terminaison par défaut), choisissez Disabled (Désactivé), puis Save Changes (Enregistrer les modification).
  5. Dans le panneau de navigation, choisissez Resources (Ressources), Actions, puis Deploy API (Déployer l'API).

API HTTP

  1. Ouvrez la console API Gateway.
  2. Dans le panneau de navigation, choisissez APIs, puis sélectionnez votre API HTTP.
  3. Dans le volet de navigation, sélectionnez Settings (Paramètres).
  4. Pour Default Endpoint (Point de terminaison par défaut), choisissez Disabled (Désactivé), puis Save Changes (Enregistrer les modification).
  5. Dans le panneau de navigation, choisissez Resources (Ressources), Actions, puis Deploy API (Déployer l'API).

AWS CLI

API REST

Exécutez la commande AWS CLI update-rest-api comme dans l'exemple suivant :

aws apigateway update-rest-api --rest-api-id abcdef123 --patch-operations op=replace,path=/disableExecuteApiEndpoint,value='True'

Pour déployer l'API mise à jour, exécutez la commande AWS CLI create-deployment comme dans l'exemple suivant :

aws apigateway create-deployment --rest-api-id abcdef123 --stage-name dev

Remarque : remplacez api_id abcdef123 et stage_name dev par votre ID d'API REST et l'étape respective.

API HTTP

Exécutez la commande AWS CLI update-api comme dans l'exemple suivant :
aws apigatewayv2 update-api --api-id abcdef123 --disable-execute-api-endpoint

Pour déployer l'API mise à jour, exécutez la commande AWS CLI create-deployment comme dans l'exemple suivant :

aws apigatewayv2 create-deployment --api-id abcdef123 --stage-name dev

Remarque : remplacez api_id abcdef123 et stage_name dev par votre ID d'API HTTP et l'étape respective.

Modèle CloudFormation

Pour désactiver le point de terminaison par défaut d'un modèle CloudFormation, vous pouvez définir le paramètre DisableExecuteApiEndpoint surTrue. Mettez à jour le modèle CloudFormation pour l'API REST ou l'API HTTP.

Important : la désactivation du point de terminaison par défaut entraîne des erreurs HTTP 403 Forbidden si l'API est appelée à l'aide de l'URL du point de terminaison par défaut.


Cet article vous a-t-il été utile ?


Avez-vous besoin d'aide pour une question technique ou de facturation ?