Contenido del curso
Buenas prácticas en serverless
Serverless no es solo lambda
Lambda layers
Asegurando nuestra app serverless
Conectando ApiGateway con SQS
Bonus
Cierra del curso
Seguridad en API Gateway: keys vs authorizers
Resumen
La seguridad en aplicaciones serverless no es opcional, y API Gateway ofrece dos mecanismos clave para proteger tus recursos: API keys y custom authorizers. Si trabajas con Lambdas y construyes APIs en AWS, entender cuándo usar cada uno te permite cumplir con el AWS Well Architected Framework y blindar tus endpoints frente a ataques.
¿Por qué proteger una aplicación serverless con API Gateway?
Aunque las funciones Lambda parezcan aisladas, siguen expuestas a vulnerabilidades cuando se publican mediante un endpoint HTTP. Los atacantes pueden intentar fuerza bruta, abusar de endpoints abiertos o saturar tu API con peticiones no autorizadas.
Aquí entra API Gateway como aliado natural [00:34]. Funciona como puerta de entrada y te permite aplicar políticas de seguridad antes de que la petición llegue a tu lógica de negocio. Esto reduce costos, evita ejecuciones innecesarias de Lambda y mantiene tu aplicación alineada con las mejores prácticas de AWS.
¿Qué es API Gateway en AWS? Es un servicio gestionado que recibe, valida y enruta peticiones HTTP hacia recursos como Lambda, actuando como capa de seguridad y control entre el cliente y tu backend.
¿Cómo funcionan las API keys en API Gateway?
Una API key es un conjunto de caracteres alfanuméricos que API Gateway genera para autenticar las peticiones que llegan a tu aplicación serverless [01:24]. Funciona como una llave: el usuario la incluye en su petición, API Gateway valida que sea correcta y, si todo cuadra, deja pasar la solicitud hasta la Lambda.
Este flujo te resultará familiar porque es el mismo mecanismo que usan muchos servicios de terceros cuando te entregan credenciales para consumir su API.
¿Cuándo conviene usar API keys?
Las API keys son ideales cuando necesitas:
- Controlar acceso básico a endpoints públicos.
- Aplicar límites de uso o throttling por cliente.
- Diferenciar consumidores sin construir lógica de autenticación compleja.
- Exponer una API a socios o terceros con credenciales simples.
Son una opción rápida de implementar, pero su nivel de protección es limitado frente a casos donde necesitas validar identidades o roles específicos.
¿Qué es un custom authorizer y cuándo usarlo?
Un custom authorizer es un mecanismo donde API Gateway delega la validación a una función Lambda que tú mismo construyes [01:50]. Esa Lambda contiene la lógica de negocio que decide si una petición es válida, qué rol tiene el usuario y a qué recursos puede acceder.
La diferencia con las API keys es enorme: ya no validas una cadena estática, sino un Jason Web Token (JWT) que transporta atributos como expiración, identidad y permisos [03:30]. El custom authorizer lee ese token, ejecuta las reglas que definiste y responde a API Gateway si autoriza o rechaza la petición.
¿Qué diferencia hay entre API key y custom authorizer? Una API key es una llave alfanumérica estática que solo valida acceso. Un custom authorizer ejecuta una Lambda con reglas de negocio y puede validar tokens JWT, roles y permisos dinámicos.
¿Qué casos de uso resuelve un custom authorizer?
Con un custom authorizer puedes ir mucho más allá de un usuario y contraseña. Algunos escenarios reales:
- Validar JWT emitidos por tu propio sistema de autenticación.
- Implementar single sign-on entre varias aplicaciones [02:30].
- Aplicar reglas por rol, organización o compañía.
- Integrar clientes externos con permisos diferenciados.
Esta flexibilidad lo convierte en la opción preferida cuando tu aplicación maneja múltiples perfiles de usuario o se integra con sistemas corporativos.
¿Qué papel juega AWS Cognito en la seguridad serverless?
Además de API keys y custom authorizers, el ecosistema serverless incluye AWS Cognito [04:08]. Este servicio te permite gestionar pools de usuarios, manejar registro, inicio de sesión y habilitar single sign on entre varias aplicaciones sin que tengas que construir toda la infraestructura de identidad desde cero.
Cognito se complementa muy bien con API Gateway: puedes usarlo como proveedor de identidad, emitir tokens JWT y luego validarlos con un authorizer. Así obtienes una arquitectura segura, escalable y alineada con el AWS Well Architected Framework.
¿Qué es AWS Cognito? Es el servicio de AWS para gestionar identidades de usuarios, autenticación y autorización en aplicaciones, con soporte para pools de usuarios y single sign on.
¿Ya habías considerado estos mecanismos en tus proyectos serverless? Cuéntame en los comentarios cuál usas hoy y qué retos has enfrentado al asegurar tus APIs.