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

Lecture de 3 minute(s)
0

Je souhaite autoriser les clients à appeler mes API uniquement avec le nom de domaine personnalisé.

Brève description

Les API REST et HTTP d'Amazon 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 d'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é.

Résolution

Pour désactiver le point de terminaison par défaut, utilisez la console API Gateway, l'interface de la ligne de commande AWS (AWS CLI) ou AWS CloudFormation. Après avoir désactivé le point de terminaison par défaut, vous devez lancer un déploiement pour que la mise à jour prenne effet.

Remarque : Si vous recevez des erreurs lors de l’exécution des commandes de l’AWS CLI, assurez-vous que vous utilisez la version la plus récente de l’AWS CLI.

Console API Gateway

API REST

  1. Ouvrez la console API Gateway.
  2. Dans le volet de navigation, choisissez APIs, puis choisissez votre API REST.
  3. Dans le volet de navigation, choisissez Paramètres.
  4. Pour le **point de terminaison par défaut **, choisissez Désactivé, puis sélectionnez Enregistrer les modifications.
  5. Dans le volet de navigation, choisissez Ressources, Actions, puis choisissez Déployer l'API.

API HTTP

  1. Ouvrez la console API Gateway.
  2. Dans le volet de navigation, choisissez APIs, puis choisissez votre API HTTP.
  3. Dans le volet de navigation, choisissez API : API_NAME(API_ID).
  4. Choisissez Modifier.
  5. Pour le point de terminaison par défaut, choisissez Désactivé, puis cliquez sur Enregistrer.

AWS CLI

API REST
Exécutez la commande update-rest-api de l'interface de la ligne de commande AWS :

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 create-deployment de l'interface de la ligne de commande AWS :

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

Remarque : Remplacez api-id abcdef123 et stage_name dev par l'ID de votre API REST et le stage correspondant.

API HTTP

Exécutez la commande update-api de l'interface de ligne de commande AWS :

aws apigatewayv2 update-api --api-id abcdef123 --disable-execute-api-endpoint

Pour déployer l'API mise à jour, exécutez la commande create-deployment de l'interface de la ligne de commande AWS :

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

Remarque : Remplacez api_id abcdef123 et stage_name dev par l'ID de votre API HTTP et le stage correspondant.

Modèle CloudFormation

Pour désactiver le point de terminaison par défaut à partir d'un modèle CloudFormation, définissez le paramètre DisableExecuteApiEndpoint sur True. Mettez à jour le modèle CloudFormation pour une API REST ou une API HTTP.

Important : Si vous appelez l'API avec l'URL du point de terminaison par défaut, la désactivation du point de terminaison par défaut entraîne une erreur. Vous recevez une erreur HTTP 403 Forbidden pour les API REST ou une erreur HTTP 404 Not Found pour les API HTTP.

Informations connexes

Invocation d'une API REST dans Amazon API Gateway

Comment résoudre les erreurs HTTP 403 depuis API Gateway ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an