¿Cómo doy acceso a Internet a una función de Lambda que está conectada a Amazon VPC?

6 minutos de lectura
0

Quiero otorgar acceso a Internet a la función de AWS Lambda que tiene una conexión de Amazon Virtual Private Cloud (Amazon VPC).

Descripción breve

De forma predeterminada, las funciones de Lambda se ejecutan en una VPC administrada por Lambda que tiene acceso a Internet. Para acceder a los recursos de una VPC en tu cuenta de AWS, añade una configuración de VPC a la función. Esta configuración restringe la función a los recursos de la VPC, a menos que la VPC tenga acceso a Internet.

Incluso cuando asocias una función de Lambda a una subred pública, la función no puede conectarse directamente a Internet. Una función de una VPC tiene una dirección IP privada y requiere una puerta de enlace de NAT o una instancia de NAT para que la VPC acceda a Internet.

Nota: También puedes utilizar los puntos de enlace de VPC para conectarte a los servicios de AWS compatibles desde una conexión de Amazon VPC sin acceso a Internet.

Resolución

Creación de una subred pública y una subred privada en Amazon VPC

Crea una subred privada para la función de Lambda y una subred pública para la puerta de enlace de NAT. En el campo Etiqueta de nombre, introduce un nombre para cada subred que la identifique como pública o privada. Por ejemplo, utiliza Subred pública, Lambda privada 1 y Lambda privada 2.

Nota: Se recomienda crear más de una subred privada en diferentes zonas de disponibilidad. Esta acción crea redundancia y permite a Lambda mantener una alta disponibilidad para tu función.

Uso de una puerta de enlace de Internet para añadir acceso a Internet a la subred

Crea una puerta de enlace de Internet y, a continuación, adjúntala a la VPC.

Creación de una puerta de enlace de NAT

Crea una puerta de enlace de NAT. En Subred, elige la subred que quieres hacer pública. Por ejemplo, elige Subred pública.

(Opcional) Prueba la configuración de la puerta de enlace de NAT.

Creación de dos tablas de enrutamiento personalizadas

Nota: Cuando una función de Lambda de una VPC realiza solicitudes, la función selecciona de forma aleatoria una subred asociada. Si la función usa una subred mal configurada, recibirás un error. Para evitar este problema, asegúrate de utilizar la misma configuración para todas las subredes que la función utiliza.

Para configurar tus tablas de enrutamiento personalizadas, completa los siguientes pasos para tu subred pública y privada:

  1. Crea una tabla de enrutamiento personalizada. En el campo Etiqueta de nombre, introduce un nombre para cada tabla de enrutamiento que te ayude a identificar la subred a la que está asociada. Por ejemplo, utiliza Subred pública y Lambda privada.
  2. Asocia la tabla de enrutamiento de la subred a la subred pública o privada.
  3. Añade una nueva ruta a la tabla de enrutamiento e incluye las siguientes configuraciones:
    En Destino, escribe 0.0.0.0/0.
    En Destino, selecciona Puerta de enlace de Internet o Puerta de enlace de NAT. Para la subred pública, selecciona el ID de la puerta de enlace de Internet. Para la subred privada, selecciona el ID de la puerta de enlace de NAT.
    Importante: Si usas una instancia de NAT en lugar de una puerta de enlace de NAT, elige Interfaz de red en lugar de Puerta de enlace de NAT.
  4. Selecciona Guardar rutas.

Nota: Asegúrate de que las rutas a la puerta de enlace de NAT estén en estado Activo. Si se elimina la puerta de enlace de NAT y no has actualizado las rutas, las rutas tienen el estado Agujero negro. Para obtener más información, consulta Eliminación de una puerta de enlace de NAT.

Revisión de la configuración de la ACL de la red

La lista de control de acceso de la red (ACL de la red) predeterminada de la VPC permite todo el tráfico entrante y saliente. Si cambias las reglas de la ACL de la red, asegúrate de que permitas las solicitudes salientes de la función de Lambda. Además, asegúrate de que la ACL de la red permita el siguiente tráfico entrante:

  • En el caso de las subredes privadas que utilizan una puerta de enlace de NAT, permite el tráfico entrante en los puertos efímeros 1024-65535.
  • En el caso de las subredes privadas que utilizan una instancia de NAT, permite el tráfico entrante en los puertos efímeros que usa el sistema operativo (SO) de la instancia de NAT.

Para obtener más información, consulta Garantiza la privacidad del tráfico entre redes en Amazon VPC.

Creación de un rol de ejecución de Lambda

Crea un rol de ejecución de Lambda para la VPC. A continuación, actualiza la función de Lambda para usar el nuevo rol de ejecución de Lambda.

Configuración de la función de Lambda para conectarla a tu VPC

Adjunta la función a la VPC y configura los siguientes ajustes:

En el caso de las funciones de Lambda con una conexión de Amazon VPC, puedes utilizar una puerta de enlace de Internet de solo salida para acceder a Internet. Para obtener más información, consulta Compatibilidad con IPv6.

Información relacionada

Solucionar problemas de redes en Lambda

¿Cómo puedo solucionar los problemas de tiempo de espera en el caso de una función de Lambda que se encuentra en una Amazon VPC?

How do I troubleshoot an ETIMEDOUT error in my Lambda function? (¿Cómo puedo solucionar un error de ETIMEDOUT en mi función de Lambda?)

Otorgamiento a las funciones de Lambda de acceso a los recursos de una Amazon VPC

¿Cómo puedo solucionar los errores en la función de Lambda?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 3 meses