Puis-je choisir le point de terminaison HTTP dans un VPC comme ressource dans d'API AWS Passerelle?
J'ai une situation lors de mon produit(certaines API Web) est vivant à l'intérieur de la VPC, c'est à dire sans aucun accès externe. J'aimerais exposer la partie de cette Api(juste un couple de méthodes HTTP) pour être accessible à partir d'internet. Je suis en train de réaliser cela à l'aide d'API AWS Passerelle mais il semble que je ne peut pas faire interne ELB extrémité de la Passerelle API de ressources. Des idées comment puis-je faire cela?
Grâce,
--Vovan
OriginalL'auteur Vovan Kuznetsov | 2015-09-19
Vous devez vous connecter pour publier un commentaire.
C'était à l'origine pas possible, puis a été résolu avec l'aide de certificats client API Gateway pourrait utiliser pour s'authentifier auprès de vos services. C'était une bonne solution, et est toujours disponible, mais encore nécessaire, que vos services soient exposées -- au moins dans un certain sens, -- à l'Internet.
En novembre 2017, AWS a publié une nouvelle fonctionnalité qui vous permet de réellement disposition un réseau de chemin entre la Passerelle API et de vos services internes.
Contexte historique de la façon suivante.
Comme de maintenant, il n'est pas simple et infaillible pour faire cela, parce que vos services qui sont accessibles à la Passerelle API doivent être accessibles via/exposés à l'Internet public et il n'est pas construit dans la confiance mécanisme par lequel vous pouvez être assuré que la demande provient en fait de tout Passerelle API de déploiement, beaucoup moins votre Passerelle API de déploiement.Amazon semble avoir résolu le problème de l'authentification des demandes à vos services de back-end comme ayant assurément, non seulement à partir de la Passerelle API, mais à partir de votre Passerelle API instance. Comme avant, les points de terminaison doivent encore être exposés à l'Internet, depuis l'adresse IP source n'est pas prévisible-mais de la passerelle API prend désormais en charge des certificats SSL clients, dont la face arrière de la Passerelle API utilise pour s'authentifier à l'avant de votre service de back-end, l'API gateway de l'appelant.
Lorsque vous générez un certificat client dans la Passerelle API console, vous êtes fourni avec la clé publique de ce certificat. Pour la sécurité, la clé privée est conservée par la Passerelle API et ne vous est pas accessible. La Passerelle API présentera la clé publique de votre back-end lors de la négociation SSL. Tout pair de ne pas présenter la même clé publique n'est pas de la passerelle API, et votre back-end devrait refuser la négociation SSL.
Si une personne malveillante qui doit entrer en possession de la clé publique, ils ne seraient pas toujours être en mesure de communiquer avec votre back-end sur SSL, parce qu'ils manquent de la saillie de la clé privée, qui n'est connu de la Passerelle API. (Votre côté de l'interaction serait chiffré à l'aide de votre certificat SSL et il est accouplé à la clé privée, qui est, bien sûr, connu de vous seul.)
Cette capacité adresses de ce qui semblait être une limitation significative de l'utilité de la Passerelle API HTTP de la fonctionnalité proxy... une limitation de cette importance, en fait, que lorsque j'ai découvert la version révisée de l'information, ci-dessus, j'ai commencé à douter de moi-même: si cela Avait été là tout le temps, et j'avais réussi à l'oublier? La Wayback Machine dit non, c'est nouveau. Cette information a été ajoutée en septembre 2015.
C'est un bon point. J'ai regardé le re:Inventer 2015 live keynote webcast pourtant, je n'ai pas le souvenir d'avoir entendu ce point à propos de VPC d'intégration. Maintenant je me rends compte que, lorsque M. Vogels a commencé à parler de python, j'ai supposé que rien d'intéressant serait discuté pendant plusieurs minutes, alors j'ai pris une pause pour se promener et de s'étirer. 🙂 Je vais mettre à jour cette quand cette fonctionnalité ouvre.
Bon à savoir, cependant, l'utilisation de certificats clients pour l'authentification ressemble plus à contourner, pas de vraie réponse. Interne de l'Api sont toujours exposés à l'extérieur donc rien ne la protège contre certaines attaques DOS comme syn-flood etc
D'accord avec ci-dessus affiche. Une des fonctionnalités intéressantes de la Passerelle API est qu'il protège les api de certaines attaques DOS. Mais je ne vois pas le point, c'est le Backend instances EC2 sont également exposés à l'internet. La Passerelle API devrait fonctionner comme Elastic Load balancer et de travailler avec votre VPC.
Comme il a été noté, les Lambda fonctions peuvent maintenant accéder à des ressources directement à l'intérieur de VPC. Similaire intégrations pour la passerelle API n'ont pas été mentionnés, mais peut-être qui descend le brochet. Bien sûr, vous pouvez utiliser la passerelle API > Lambda > VPC de ressources, avec une augmentation correspondante des coûts et de la complexité. Votre interface de l'API peut également être pare-feu de tous, mais AWS espace IP de votre région, de veiller à ce que SYN inondations, etc, ne pouvait que provenir de l'intérieur AWS, qui devrait être rapidement éteint une fois signalé à AWS support.
OriginalL'auteur Michael - sqlbot
C'est en quelque sorte un détour du chemin, mais vous pouvez proxy Web points de terminaison de service qui sont dans un VPC par une fonction Lambda. Que la Lambda fonction peut être appelée directement à partir de la Passerelle API. Ce blog post donne des détails sur la façon de le faire.
Pas besoin de prendre une telle infraction, je suis tombé sur ce thread et trouvé la chose utile, cependant, aurait aimé un exemple de ce que vous avez expliqué. Juste sentir une réponse complète aurait été beaucoup plus avantageux.
OriginalL'auteur occasl