Une erreur HTTP 403 Forbidden s'affiche lorsque j'appelle mon API Amazon API Gateway depuis mon cloud privé virtuel (VPC).
Brève description
L'erreur HTTP 403 Forbidden se produit lorsque vous activez le DNS pour un point de terminaison de VPC d'interface API Gateway associé à un VPC. Dans ce cas, toutes les requêtes transférées du VPC vers l’API API Gateway sont résolues sur ce point de terminaison de VPC d'interface. Cependant, vous ne pouvez pas utiliser un point de terminaison de VPC pour vous connecter à des API publiques.
Le nom DNS privé d'un point de terminaison de VPC est au format *.execute-api.exampleRegion.amazonaws.com, où le caractère * est un espace réservé pour l'ID d'API. Ce format correspond à l'URL d'invocation par défaut d'API Gateway pour les API publiques et privées.
Lorsqu'un DNS privé est activé pour un point de terminaison de VPC, l'URL d'invocation de l'API est couverte par le nom DNS privé. Lorsqu'une requête DNS est résolue pour une API publique depuis un VPC, le DNS pointe vers l'adresse IP privée du point de terminaison de VPC associé. L'appel d'API est ensuite acheminé vers l'API publique via le point de terminaison de VPC plutôt que via Internet. Comme les points de terminaison de VPC ne peuvent acheminer le trafic que vers des API privées, il en résulte une erreur HTTP 403.
Une erreur 403 s'affiche également lorsque vous utilisez l'URL d’invocation execute-api par défaut pour vous connecter à des API privées depuis votre site avec AWS Direct Connect.
Résolution
Vérifier qu'un DNS privé est activé pour un point de terminaison de VPC d'interface associé à votre VPC
Vérifiez votre VPC pour voir s'il existe un point de terminaison de VPC d’interface permettant d'accéder à une API privée. S'il existe un point de terminaison d'interface, vérifiez si les paramètres DNS privés sont activés. Pour en savoir plus, consultez la section Attributs DNS de votre VPC.
Se connecter à des API publiques avec le DNS privé activé
Si le DNS privé est activé, configurez des noms de domaine personnalisés optimisés pour les périphériques ou des noms de domaine personnalisés régionaux pour vous connecter à vos API publiques.
Si les clients se connectent depuis un réseau sur site, configurez un point de terminaison entrant Amazon Route 53 Resolver. Pour utiliser l'URL d'invocation execute-api, transférez toutes les requêtes DNS privées de votre réseau distant vers le point de terminaison entrant.
Important : Vos ressources VPC doivent disposer d'une connectivité Internet pour se connecter à vos API publiques. Utilisez également les enregistrements d'alias de type A pour configurer les enregistrements DNS pour un nom de domaine personnalisé régional. Cependant, utilisez soit des enregistrements d'alias de type A, soit des enregistrements CNAME pour des noms de domaine personnalisés optimisés pour les périphériques.
Se connecter aux API publiques lorsque le DNS privé n'est pas activé
Si votre VPC est autorisé à accéder à vos API publiques, utilisez le DNS public pour vous connecter à vos API publiques. Pour plus d'informations, consultez la section Contrôler et gérer l'accès aux API REST dans API Gateway.
(Facultatif) Modifier le paramètre DNS privé pour un point de terminaison de VPC d'interface
Vous pouvez modifier le paramètre DNS privé pour un point de terminaison de VPC d'interface à tout moment. Les modifications apportées à ce paramètre affectent la résolution d’une URL d’étape d’API vers l'adresse IP privée du point de terminaison de VPC de l'interface.
Pour modifier le paramètre DNS privé pour un point de terminaison de VPC d'interface, procédez comme suit :
- Ouvrez la console Amazon VPC.
- Ouvrez le volet Points de terminaison.
- Sélectionnez le point de terminaison de VPC de votre interface.
- Sélectionnez Actions, puis Modifier les noms de DNS privés.
- Pour Activer le nom DNS privé, cochez ou décochez la case Activer pour ce point de terminaison.
- Sélectionnez Modifier les noms DNS privés.
Remarque : Les modifications apportées au paramètre DNS privé affectent la manière dont les utilisateurs peuvent se connecter à des API privées et à des API publiques à partir d'un VPC.
Pour en savoir plus, consultez la page Afficher et mettre à jour les attributs DNS de votre VPC.
Informations connexes
Accéder à un service AWS à l’aide du point de terminaison de VPC d’interface
Nom de domaine personnalisé pour les API REST dans API Gateway