your not have does amazon-web-services aws-lambda

amazon web services - not - AWS Lambda: cómo configurar una puerta de enlace NAT para una función lambda con acceso VPC



lambda rds (5)

En realidad, ya no necesita crear puertas de enlace de Internet y NAT: https://aws.amazon.com/blogs/security/how-to-connect-to-aws-secrets-manager-service-within-a-virtual-private-cloud/

Según este documento , si necesito acceder a los recursos de Internet desde mi función Lambda con acceso VPC, necesito configurar una puerta de enlace NAT.

Así que seguí esta guía para configurar una puerta de enlace NAT. Sin embargo, en la etapa en que necesito editar las tablas de rutas de mi subred para agregar una entrada con el destino: 0.0.0.0/0 y el objetivo como la identificación de mi puerta de enlace NAT, recibí un error que

An entry with this destination already exists

Verifiqué y noté que para esa entrada existente, el objetivo era una puerta de enlace de Internet para mi VPC. Si reemplazo esa entrada con la identificación de la puerta de enlace NAT, no puedo acceder a ninguna de las instancias de EC2 en esa VPC a través de SSH desde el mundo exterior. ¿Cómo puedo lograr una solución donde todas las instancias de EC2 en esta VPC:

  • Son accesibles solo a través de SSH y el resto del tráfico está bloqueado
  • Son capaces de acceder completamente a otras instancias EC2 en la misma VPC
  • La función Lambda que tiene acceso a esta VPC puede acceder a recursos externos como SQS y Kinesis.

Encontré un buen tutorial detallado sobre cómo permitir que su lambda se conecte tanto a los recursos de VPC como a Internet aquí: gist.github.com/reggi/dc5f2620b7b4f515e68e46255ac042a7

Un recorrido rápido:

  • configurar nuevas subredes para su lambda (con CIDR que no se superponen a sus subredes existentes). Necesitas:
    • una subred que apuntará a una puerta de enlace de Internet (IGW) para que la use NAT (llamémosla A)
    • varios señalando a la NAT para ser utilizada por su lambda (B, C y D)
  • agregar una puerta de enlace NAT: establezca la subred en A
  • configure sus subredes VPC lambda en B, C y D
  • crear tabla de 2 rutas:
    • uno que apunta a su NAT con destino 0.0.0.0/0
    • uno que apunta a su IGW (ya debería existir) con destino 0.0.0.0/0
  • Actualice la subred A para usar la tabla de rutas que apunta a la IGW
  • Actualice las subredes B, C y D para usar la tabla de rutas que apunta a NAT

Espero que esto ayude.


Hola chicos, desarrollé un tutorial paso a paso con capturas de pantalla explícitas al respecto:

Parte 1

  1. Crear una función lambda en AWS
  2. Cree una puerta de enlace API para redirigir todas las solicitudes a su función AWS Lambda https://medium.com/@shontauro/how-can-i-turn-my-restful-api-into-a-serverless-application-and-deploy-it-to-aws-lambda-step-by-ec7ce38e18be

Parte II

  1. Configure una VPC para su función lambda
  2. Conceder acceso a internet a la función lambda de forma segura
  3. Implemente la API Node.js Restful en su función Lambda https://medium.com/@shontauro/how-can-i-turn-my-restful-api-into-a-serverless-application-and-deploy-it-to-aws-lambda-step-by-8ff6cc97780f

Necesita dos subredes diferentes. Parece que solo tienes uno.

Lambda solo puede usar subredes privadas dentro de VPC.

Definición de una subred privada: la ruta predeterminada es una instancia NAT (que se encuentra en una subred pública diferente) o una puerta de enlace NAT, y ninguna máquina en la subred tiene una dirección IP pública. Las máquinas con direcciones IP públicas están permitidas en una subred privada, pero en su mayor parte, no funcionarán correctamente, porque esto es técnicamente una configuración incorrecta.

Definición de una subred pública: la ruta predeterminada es el objeto igw-xxxxxxxx Internet Gateway, y las máquinas tienen direcciones IP públicas asignadas. Las máquinas sin direcciones IP públicas están permitidas en una subred pública, pero no podrán acceder a Internet porque es una configuración incorrecta.

Parece que está intentando cambiar su subred existente de pública a privada cambiando la ruta predeterminada. Como se esperaba, esto rompe otras cosas.

Consulte también ¿Por qué necesitamos una subred privada en VPC?


Necesita tanto la puerta de enlace IGW como la NAT para que esto funcione.

En las subredes públicas (las que desea alcanzar desde el exterior), apunte el tráfico 0.0.0.0/0 a la puerta de enlace IGW. La puerta de enlace NAT en sí misma debe ubicarse en una de estas subredes públicas.

En las subredes privadas que desea que NAT dirija el tráfico 0.0.0.0/0 a la interfaz de red elástica de la pasarela NAT.

Si 0.0.0.0/0 está vinculado a la puerta de enlace, debe eliminarlo y agregarlo apuntando a la puerta de enlace NAT.

Ver: http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html