Cómo usar IP estática para AWS Lambda

ip estática

Cómo usar IP estática para AWS Lambda

En este artículo, analizaremos cómo obtener una IP estática para su función AWS Lambda.


¿Por qué necesitamos IP estática?

Antes de hablar sobre cómo obtener la IP estática para su función lambda, analicemos por qué necesita una para su lambda.

Consideremos un escenario: en el que su función Lambda interactúa con la API de alguna empresa financiera externa. Debido a la política de seguridad, esa compañía financiera permitiría el tráfico solo desde IP conocidas (IP en la lista blanca).

A menos que tenga su IP en la lista blanca de antemano, no le permitirán acceder a su API.

ip estática
Por qué necesitamos IP estática para Lambda

Ahora, comprende por qué necesita una IP estática para su lambda.

¿Cómo obtener IP estática para su lambda?

Si crea aws lambda sin ninguna VPC, se le asignará una IP de forma dinámica y podría cambiar.

Si desea obtener una IP estática para su Lambda, debe tener una VPC y una puerta de enlace NAT asociada a la IP elástica.

A continuación se muestra el diagrama de arquitectura de alto nivel de la misma.

IP estática
AWS Lambda con IP estática

Implementación

En este artículo, usaremos AWS CDK para definir la infraestructura.

Creación de Elástica Ip:

Puede usar el siguiente código para crear una IP elástica

const elasticIp = new CfnEIP(this, 'elasticIp', {
domain: 'vpc',
});

Esta IP se usaría en NAT Gateway para que NAT Gateway pueda tener una IP estática. Esta IP se usaría para hablar con el mundo externo (incluida la comunicación con la API de la institución financiera)

Creación de VPC con IP Elástica para Nat Gateway

Puede usar el siguiente código para crear VPC.

ip estática
VPC con proveedor de NatGateway personalizado

Tenga en cuenta que en la última línea, estamos usando la asignación de Elastic IP a Nat Gateway

Creación de Lambda:

Estoy creando lambda aquí, usando `aws cdk`

No hay nada lujoso aquí. Tenga en cuenta que estamos pasando la VPC y la información de la subred a la construcción de la función lambda nodejs como propiedades.

Código de función lambda:

La función Lambda es bastante simple. Estamos haciendo una solicitud a un servicio externo que responde con la IP de la que proviene la solicitud.

Como hemos asignado la IP elástica para NAT Gateway, la respuesta contendrá la dirección IP de NAT Gateway.

Luego, puede proporcionar esta IP elástica a la institución financiera para que pueda incluirla en la lista blanca.

Por favor, hágame saber sus pensamientos en los comentarios.


Gracias por llegar hasta aquí, si encuentras esto útil no olvides dejar un👍🏼y suscribirse para recibir más contenido.

Si le interesa, puede echar un vistazo a algunos de los otros artículos que he escrito recientemente sobre AWS y Laravel:

Recent Post