Seguridad en Aplicaciones Serverless con API Gateway y Custom Authorizers

Clase 13 de 24Curso Avanzado de Serverless Framework en AWS

Resumen

¿Cómo asegurar nuestra aplicación serverless con API Gateway?

Cada vez que construimos una aplicación, la seguridad es un pilar fundamental que debemos asegurarnos de abordar. Cuando trabajamos con aplicaciones serverless en AWS, uno de nuestros más grandes aliados es el API Gateway. Este servicio no solo facilita la creación y gestión de API, sino que también provee mecanismos importantes para proteger nuestros recursos. Vamos a explorar dos formas principales de seguridad que API Gateway ofrece: el uso de API keys y los custom authorizers.

¿Qué son las API keys y cómo las usamos?

Las API keys son cadenas alfanuméricas que API Gateway proporciona para asegurar las peticiones a nuestra aplicación serverless. Este método es simple pero eficaz, pues la clave funciona como una llave que permite el acceso solo si coincide con la almacenada en el sistema, garantizando así que nuestras funciones Lambda solo sean invocadas por usuarios autorizados.

  • Similitud con otros servicios: Al igual que muchas API de terceros, AWS también emplea este sistema de llaves de acceso.
  • Configuración: Las API keys en API Gateway pueden tener diferentes atributos y configuraciones para adaptarse a nuestras necesidades particulares.

¿Qué son y cómo funcionan los custom authorizers?

Los custom authorizers son piezas más avanzadas para autenticación y autorización en API Gateway. Estos nos permiten utilizar una Lambda personalizada, dándonos la flexibilidad para implementar lógicas de negocio específicas para validar y autenticar usuarios.

  • Uso de JSON Web Tokens (JWT): Estos tokens proporcionan atributos adicionales como fecha de expiración y el sujeto al que se le asignaron, ofreciendo una capa extra de seguridad.
  • Validez versátil: Más allá de autenticar usuarios y contraseñas, los custom authorizers permiten la creación de reglas de acceso basadas en roles de usuario y características específicas de organizaciones, lo que resulta en soluciones altamente personalizables.

¿Cómo se compara AWS Cognito con estas herramientas?

AWS Cognito se integra dentro del ecosistema serverless de AWS como una potente opción para gestionar usuarios. Este servicio permite la creación de pools de usuarios y ofrece funcionalidades como single sign-on, que son esenciales para aplicaciones complejas que requieren una gestión más robusta de autenticación y autorización.

  • Integración con otras aplicaciones: Cognito permite una fácil integración con múltiples aplicaciones, facilitando la expansión y gestión centralizada de usuarios.
  • Amplias características: Además de la autenticación básica, Cognito soporta características avanzadas como la federación de identidades, lo que extiende su alcance y funcionalidad.

Continúa explorando y aplicando estas estrategias de seguridad en tu próxima implementación. La seguridad no es solo indispensable, es fundamental para cumplir con las mejores prácticas del AWS Well-Architected Framework y asegurar el éxito y la resiliencia de tus aplicaciones serverless. ¡No dejes de aprender y avanza hacia prácticas seguras y bien estructuradas!