AWS Lambda: Comment configurer une passerelle NAT pour une fonction lambda avec VPC accès
Comme par ce document, si j'ai besoin d'accéder aux ressources d'internet à partir de ma fonction Lambda avec VPC accès, j'ai besoin de l'installation d'une Passerelle NAT.
J'ai donc suivi ce guide la configuration d'une passerelle NAT. Cependant, au stade où j'ai besoin de modifier les tables de routage de mon sous-réseau pour ajouter une entrée avec de destination: 0.0.0.0/0 et la cible sous ma passerelle NAT de l'id, j'ai une erreur qui
An entry with this destination already exists
J'ai vérifié et constaté que, pour que l'entrée existante, la cible a été une passerelle internet pour mon VPC. Si je remplace cette entrée avec la passerelle NAT id, je ne peut accéder à aucune instance EC2 dans ce VPC via SSH depuis l'extérieur. Comment puis-je accomplir une situation où toutes les instances EC2 dans ce VPC
- Sont accessibles uniquement via SSH et le reste de la circulation est bloquée
- Sont en mesure de complètement l'accès à d'autres instances EC2 dans le même VPC
- Fonction Lambda d'avoir accès à ce VPC peuvent accéder à des ressources de l'extérieur comme SQS et Kinesis.
- Voici un bon tutoriel que j'ai écrit: "configuration de l'AWS lambda fonction de parler de l'internet et VPC" gist.github.com/reggi/dc5f2620b7b4f515e68e46255ac042a7
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de l'IGW et la passerelle NAT pour que cela fonctionne.
Dans la sous-réseaux publics (ceux que vous voulez atteindre de l'extérieur) point de la 0.0.0.0/0 de la circulation à l'IGW de la passerelle. La passerelle NAT lui-même a besoin de s'asseoir dans l'un de ces sous-réseaux publics.
Dans les sous-réseaux privés que vous souhaitez NAT point 0.0.0.0/0 de la circulation de la passerelle NAT interface réseau élastique.
Si 0.0.0.0/0 est aleady lié à la passerelle, vous devez supprimer et ajouter vers la passerelle NAT.
Voir:
http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html
J'ai trouvé un bon tutoriel détaillé sur la façon de permettre à vos lambda pour se connecter à la fois VPC ressources et de l'internet ici: https://gist.github.com/reggi/dc5f2620b7b4f515e68e46255ac042a7
Une marche rapide-par:
Espère que cette aide.
Vous avez besoin de deux sous-réseaux différents. Il semble que si vous avez seulement une.
Lambda ne peut utiliser privé sous-réseaux à l'intérieur de VPC.
Définition d'un sous-réseau privé: la route par défaut est une instance NAT (qui plus être sur un autre sous-réseau public) ou une Passerelle NAT, et pas les machines du sous-réseau ont une adresse IP publique. Machines avec des adresses IP publiques sont admis sur un sous-réseau privé, mais pour la plupart, ils ne fonctionnent pas correctement, parce que c'est techniquement un problème de configuration.
Définition d'un sous-réseau public: la route par défaut est le
igw-xxxxxxxx
Passerelle Internet des objet, et de machines ont une adresse IP publique attribuée. Machines sans les adresses IP publiques sont autorisées sur un sous-réseau public, mais ils ne seront pas en mesure d'accéder à l'Internet, parce que c'est un problème de configuration.Il semble que vous essayez de changer vos sous-réseau existant public ou privé, par la modification de l'itinéraire par défaut. Comme prévu, cette pauses d'autres choses.
Voir aussi Pourquoi avons-nous besoin de sous-réseau privé en VPC?
Hé les gars, j'ai développé une étape par étape tutoriel explicite des captures d'écran à ce sujet:
Partie I
https://medium.com/@shontauro/how-can-i-turn-my-restful-api-into-a-serverless-application-and-deploy-it-to-aws-lambda-step-by-ec7ce38e18be
Partie II
https://medium.com/@shontauro/how-can-i-turn-my-restful-api-into-a-serverless-application-and-deploy-it-to-aws-lambda-step-by-8ff6cc97780f
Vous avez réellement n'avez pas besoin de créer de l'Internet et des passerelles NAT plus:https://aws.amazon.com/blogs/security/how-to-connect-to-aws-secrets-manager-service-within-a-virtual-private-cloud/