Creación de Custom Authorizers en AWS con Serverless Framework
Clase 15 de 24 • Curso Avanzado de Serverless Framework en AWS
Resumen
¿Qué es un Custom Authorizer y por qué usarlo?
Un Custom Authorizer en AWS es una herramienta poderosa utilizada para manejar la autenticación de peticiones a nuestras APIs. A diferencia de un API Key, el Custom Authorizer nos permite implementar lógica personalizada, como verificar tokens JWT u otras estrategias más complejas de autenticación.
¿Cuál es la diferencia entre API Key y Custom Authorizer?
A continuación se destacan las diferencias fundamentales:
- API Key:
- Es una cadena de texto fija.
- No permite lógica adicional.
- No cambia en el tiempo.
- No tiene capacidad para validar reglas de negocio.
- Custom Authorizer:
- Admite lógica personalizada.
- Puede validar tokens JWT u otras estrategias.
- Mayor flexibilidad para autorizaciones complejas.
¿Cómo proteger secretos en AWS?
Es crítico mantener los secretos seguros cuando trabajamos en un entorno de producción. Un error común es incluir secretos directamente en el código fuente, lo que permite que la información sensible sea expuesta. Afortunadamente, AWS ofrece métodos para gestionar esta información de forma segura usando AWS Systems Manager Parameter Store.
¿Qué es y cómo usar AWS Systems Manager Parameter Store?
AWS Systems Manager Parameter Store es un servicio que permite almacenar parámetros, incluyendo cadenas de texto, de forma segura. Aquí se muestra cómo proceder:
-
Crear un nuevo parámetro:
- Navegar a la consola de AWS.
- Buscar y seleccionar el servicio "Systems Manager".
- Acceder a la opción "Parameter Store".
- Crear un nuevo parámetro con un nombre específico, por ejemplo,
secretEch
. - Asignar un valor secreto a dicho parámetro.
-
Definir el tipo de dato:
- Seleccionar
SecureString
para cifrar el parámetro con las claves de Amazon. - Crear el parámetro, asegurando que sólo usuarios con el rol adecuado puedan acceder a él.
- Seleccionar
¿Cómo integrar Parameter Store en el código del proyecto?
Una vez que los secretos están almacenados de manera segura en Parameter Store, integrarlos en nuestro proyecto es simple. Aquí te explicamos cómo:
-
En el archivo
serverless.yaml
, utiliza la sintaxis de Serverless Framework para llamar a los secretos desde Parameter Store:environment: SECRET_ECH: ${ssm:/path/to/parameter}
-
Esta variable estará disponible para usarse en todas las funciones Lambda de la aplicación.
Con la combinación de Parameter Store y Custom Authorizers, no solo podemos gestionar accesos y autenticar usuarios con lógica personalizada, sino también garantizar que la información sensible esté siempre protegida. En el próximo paso, se procederá a configurar el Custom Authorizer utilizando este método seguro de manejo de secretos.
Referencias adicionales:
- AWS Systems Manager Parameter Store: Documentación Oficial
- AWS Lambda Authorizer: Guía de Usuario
Mantener la seguridad de las aplicaciones y el control sobre la autenticación de los datos son aspectos esenciales en el desarrollo de software moderno. Aprovecha estas herramientas de AWS para garantizar que tu información esté protegida y tu arquitectura sea efectiva. ¡Sigue explorando y aprende más sobre estas potentes funcionalidades!