web-dev-qa-db-fra.com

Domaine personnalisé pour API Gateway renvoyant 403

Je crée une API en utilisant API Gateway et Lambda. En utilisant l'URL désignée dans l'éditeur d'étape API Gateway, tout fonctionne bien; cependant, lorsque j'essaie de passer à un domaine personnalisé, je rencontre certains problèmes.

La première chose que j'ai essayée a été d'utiliser un enregistrement CNAME dans Route 53 directement de mon domaine vers le domaine que j'ai obtenu de la passerelle API. Cela renvoyait des erreurs et je pense que c'est la mauvaise solution, n'est-ce pas?

Ensuite, j'ai essayé la fonctionnalité Noms de domaine personnalisés dans API Gateway. Ma compréhension est que cela va générer une distribution CloudFront sur laquelle je peux ensuite mapper à partir de la Route 53. Lorsque j'ai créé le domaine personnalisé et ajouté un mappage de domaine, il me fournit une URL vers ce que je suppose être une distribution CloudFront. Le lien renvoie une réponse 403 et aucune distribution n'a été effectuée dans CloudFront. Quelle est une bonne façon de déboguer ce problème?

24
BBS

Voici le guide du développeur si vous ne l'avez pas vu. http://docs.aws.Amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html

Tout ce que vous avez à faire est de configurer un CNAME avec votre fournisseur DNS pointant vers la distribution CF que API Gateway vous offre. Vous ne pourrez pas faire d'appels d'API directement à la distribution CF. API Gateway mappe l'API/l'étape à partir du mappage du chemin de base que vous avez configuré dans API Gateway afin que seuls les appels d'API dirigés vers le nom de domaine fonctionnent correctement.

18
Jack Kohn - AWS

Vous devez utiliser l'en-tête Host dans votre demande. L'hôte doit être votre domaine personnalisé.

curl https://<cf-id>.cloudfront.net/myapi -H "Host: api.myapi.com"
15
Santosh Sahu

Dans mon cas, j'ai dû ajouter un mappage de chemin de base.

5
Derrick Petzold

Problème connexe:

Exactement en dessous de la réponse:

{"message":"Forbidden"}

dans le navigateur

F12 > Network > ( select error line) > Response (on right side)

pourrait signifier
ça, quelque chose ne va pas, dans le chemin de l'url

0