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

7 minutos de lectura
0

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

Breve descripción

El acceso a Internet desde una subred privada requiere la traducción de direcciones de red (NAT). Para dar acceso a Internet a una función de Lambda conectada a una Amazon VPC, dirija el tráfico saliente a una puerta de enlace NAT o a una instancia de NAT en una subred pública.

Para obtener más información, consulte Conexión a Internet mediante una puerta de enlace de Internet. Para ver un ejemplo de configuración, consulte Ejemplo: una VPC con servidores en subredes privadas y NAT.

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

Resolución

(Opcional) Crear una nueva Amazon VPC mediante el asistente para VPC en la Consola de administración de AWS

Nota: Si utiliza el asistente para VPC a fin de crear una nueva Amazon VPC, pase a la siguiente sección: Crear un rol de ejecución de Lambda para la VPC.

1.    Abra el asistente de VPC en la consola de administración de AWS .

2.    Elija VPC con subredes públicas y privadas. La subred pública y la subred privada nuevas, incluidas las puertas de enlace de Internet y NAT asociadas, aparecen en la consola de Amazon VPC.

Crear una subred pública y una o más subredes privadas en la Amazon VPC

Para obtener instrucciones, consulte Creación de una subred para crear cada una de las subredes.

Cuando cree las subredes, en Etiqueta de nombre, ingrese un nombre para cada subred que la identifique como pública o privada. Por ejemplo: 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 práctica crea redundancia y permite que el servicio Lambda mantenga una alta disponibilidad para la función.

Crear una puerta de enlace de Internet para asociarla a la VPC

Para obtener instrucciones, consulte Crear y adjuntar una puerta de enlace de Internet.

Crear una puerta de enlace NAT

Para obtener instrucciones, consulte Creación de una puerta de enlace NAT. Cuando cree la puerta de enlace NAT, en Subred, elija la subred que desea hacer pública. (del ejemplo anterior: Subred pública)

Nota: Para probar la configuración de la puerta de enlace NAT, consulte Prueba de la puerta de enlace NAT pública.

Crear dos tablas de enrutamiento personalizadas: una para la subred pública y otra para la subred privada

Nota: Una función de Lambda conectada a Amazon VPC selecciona aleatoriamente una subred asociada al realizar solicitudes. Si la función usa una subred mal configurada, aparece un error. Para evitar errores aleatorios, asegúrese de utilizar la misma configuración para todas las subredes que la función utiliza.

Para obtener instrucciones, consulte Creación de una tabla de enrutamiento personalizada. Al crear las tablas de enrutamiento, para Etiqueta de nombre, ingrese un nombre para cada tabla de enrutamiento que permita identificar la subred a la que está asociada. Por ejemplo: Subred pública y Lambda privada.

Para cada tabla de enrutamiento, asegúrese de realizar los siguientes pasos:

Para la tabla de enrutamiento de la subred pública

1.    Asocie la tabla de enrutamiento de la subred pública (Subred pública) a la subred que desea hacer pública.

2.    Agregue una nueva ruta a la tabla de enrutamiento que incluya las siguientes configuraciones:

En Destino, escriba 0.0.0.0/0.
En Destino, elija Puerta de enlace de Internet y, a continuación, elija el ID (igw-123example) de la puerta de enlace de Internet que creó. Elija Guardar rutas.

Para la tabla de enrutamiento de la subred privada

1.    Asocie la tabla de enrutamiento de la subred privada (Lambda privada) a las subredes privadas.

2.    Agregue una nueva ruta a la tabla de enrutamiento que incluya las siguientes configuraciones:

En Destino, escriba 0.0.0.0/0.
En Destino, elija Puerta de enlace NAT. A continuación, elija el ID de la puerta de enlace NAT (nat-123example) que creó.

Importante: Si utiliza una instancia NAT, elija Interfaz de red en su lugar. Elija Guardar rutas.

Nota: Asegúrese de que las rutas a la puerta de enlace NAT estén activas. Si se elimina la puerta de enlace NAT y no actualizó las rutas, estas se encontrarán en un estado de agujero negro. Para obtener más información, consulte Eliminación de una puerta de enlace NAT.

Verificar que la ACL de red permite las solicitudes salientes de la función de Lambda, así como el tráfico entrante según sea necesario

La lista de control de acceso de la red (ACL de la red) predeterminada de Amazon VPC permite todo el tráfico entrante y saliente. Si cambia las reglas de la ACL de la red, asegúrese de que aún permite las solicitudes salientes de la función de Lambda.

Además, asegúrese de que la ACL de la red permite el siguiente tráfico entrante según la configuración de su VPC:

  • Para subredes privadas que utilizan una puerta de enlace NAT: permita el tráfico entrante en los puertos efímeros 1024-65535.
  • Para subredes privadas que utilizan una instancia de NAT: permita el tráfico entrante en los puertos efímeros utilizados por el sistema operativo de la instancia de NAT.

Nota: Para obtener más información, consulte Privacidad del tráfico entre redes en Amazon VPC.

Crear un rol de ejecución de Lambda para la VPC

1.    Abra la página de roles en la consola de AWS Identity and Access Management (IAM).

2.    Elija Crear rol. Se abre la página Crear rol.

3.    En la página Crear rol, haga los siguiente:

En Seleccionar el tipo de entidad de confianza, elija servicio de AWS.
En Casos de uso comunes, elija Lambda.
Elija Siguiente: Permisos.
En Asociar políticas de permisos, busque AWSLambdaVPCAccessExecutionRole.
Seleccione la política con ese nombre. A continuación, elija Siguiente: Etiquetas.
(Opcional) Añada etiquetas según su caso de uso.
Elija Siguiente: Revisar.
En Nombre de rol, introduzca un nombre para su rol de ejecución de Lambda. Por ejemplo: lambda_vpc_basic_execution.
(Opcional) En Descripción del rol, introduzca una descripción del rol. Elija Crear rol.

Asociar el rol a la función de Lambda

1.    Abra la página Funciones en la consola de Lambda.

2.    Elija el nombre de la función que desea conectar a la Amazon VPC.

3.    Seleccione la pestaña Configuración y, a continuación, Permisos.

4.    En Rol de ejecución, elija Editar.

5.    Elija la lista desplegable Rol existente y, a continuación, elija su rol. Por ejemplo: lambda_vpc_basic_execution.

6.    Elija Guardar.

Para obtener más información, consulte Rol de ejecución de Lambda y Creación de un rol de ejecución en la consola de IAM.

Configurar la función de Lambda para establecer una conexión con la Amazon VPC

1.    Abra la página Funciones en la consola de Lambda.

2.    Elija el nombre de la función que desea conectar a la Amazon VPC.

3.    Seleccione la pestaña Configuración.

4.    Elija VPC en la barra de navegación izquierda y, a continuación, elija Editar. A continuación, introduzca los siguientes campos:

En Nube virtual privada (VPC), elija su VPC.
En Subredes, seleccione las subredes privadas que creó. Identifíquelas por sus ID de subred (y los nombres, en caso de que les haya asignado un nombre).
En Grupos de seguridad, elija un grupo de seguridad.

Nota: El grupo de seguridad predeterminado permite todo el tráfico de salida de Internet y es suficiente para la mayoría de los casos de uso. Para obtener más información, consulte Controlar el tráfico hacia los recursos de AWS mediante grupos de seguridad.

5.    Elija Guardar.

Información relacionada

Conexión de redes salientes a los recursos de una VPC

Solucionar problemas de redes en Lambda

How do I troubleshoot Lambda function failures?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año