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
- Ouvrez la console API Gateway.
- Dans le volet de navigation, choisissez APIs, puis choisissez votre API REST.
- Dans le volet de navigation, choisissez Paramètres.
- Pour le **point de terminaison par défaut **, choisissez Désactivé, puis sélectionnez Enregistrer les modifications.
- Dans le volet de navigation, choisissez Ressources, Actions, puis choisissez Déployer l'API.
API HTTP
- Ouvrez la console API Gateway.
- Dans le volet de navigation, choisissez APIs, puis choisissez votre API HTTP.
- Dans le volet de navigation, choisissez API : API_NAME(API_ID).
- Choisissez Modifier.
- 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 ?