Mejores prácticas para asegurar arquitecturas serverless en AWS
En los proyectos de arquitectura serverless con AWS es fundamental detectar los problemas de seguridad. Te decimos cómo hacerlo.

Imagen elaborada con leonardo.ai
En los proyectos de arquitectura serverless con AWS es fundamental detectar los problemas de seguridad. Te decimos cómo hacerlo.
Imagen elaborada con leonardo.ai
POR EDUARDO ABURTO / DEVOPS
Durante los últimos meses he estado apoyando a varios equipos de backend en la implementación de APIs usando arquitectura serverless (sin servidor) en AWS. La tendencia es clara: cada vez más proyectos optan por API Gateway y Lambda como su stack principal, y con razón, pues su facilidad de despliegue y la escalabilidad son innegables.
Sin embargo, mientras configuraba en GitLab pipelines de integración continua / despliegue continuo (CI/CD, por sus siglas en inglés) noté patrones preocupantes en la forma en que manejamos la seguridad. Por ejemplo, es fácil caer en la trampa de priorizar la velocidad sobre la seguridad, especialmente cuando los deadlines aprietan.
La seguridad en entornos sin servidor es diferente. Ya no estamos asegurando servidores tradicionales, estamos protegiendo funciones distribuidas, así como sus puntos de acceso. En mi experiencia, al trabajar con diferentes equipos he podido ubicar los problemas que más frecuentemente necesitan atención:
Durante las pruebas de integración es común encontrar funciones Lambda con configuraciones demasiado permisivas. Los desarrolladores, concentrados en hacer funcionar la integración, a veces dejan los triggers completamente abiertos. Como DevOps, parte de mi trabajo es asegurarme de que esto no llegue a producción.
Al trabajar es normal ver estos patrones: roles de gestión de identidad y acceso (IAM, en inglés) que van acumulando permisos innecesarios. Lo entiendo perfectamente, debido a que el desarrollador está en medio de un sprint, algo no funciona y la solución rápida es añadir ese permiso extra. El problema es que esos "permisos temporales" tienden a convertirse en permanentes.
En los últimos deploys que he supervisado el manejo de dependencias ha sido crítico. Los equipos necesitan moverse rápido, pero una dependencia comprometida puede exponer toda la infraestructura.
Basado en mi experiencia implementando CI/CD para estos servicios, algo fundamental es contar con ambientes de prueba bien definidos. En un proyecto de arquitectura serverless, antes de llegar a producción cada función debe pasar por ambientes previos como QA y Staging. Esto nos permite detectar problemas de seguridad de manera temprana y validar que los permisos y configuraciones sean los correctos en cada etapa. No es lo mismo probar una Lambda con acceso a una base de datos de prueba que hacerlo con datos reales de clientes.
Basándome en esta estrategia de ambientes les presento las prácticas que realmente han funcionado:
Para asegurar las funciones Lambda y API Gateway recomiendo lo siguiente:
En la arquitectura serverless también es indispensable que el equipo de DevOps verifique lo siguiente:
El monitoreo va más allá de simplemente habilitar CloudTrail y GuardDuty. Por eso es importante implementar un sistema de notificaciones adaptado a las necesidades de cada proyecto usando CloudWatch para las métricas, el cual se conecta a Simple Notification Service (SNS), que es un servicio de mensajería de AWS que envía alertas a múltiples destinos, incluyendo Slack, donde una Lambda las procesa y distribuye a los canales adecuados de Slack.
Esta parte es crucial, sobre todo en el sector fintech, por lo que es importante establecer estándares claros como los siguientes:
Un patrón que ha funcionado bien es centralizar la gestión de secrets en el pipeline de CI/CD. Esta acción evita que los desarrolladores tengan que manejar credenciales directamente.
Como conclusión, el rol de un DevOps en una fintech no sólo es facilitar el despliegue de servicios sin servidor, sino asegurarse de que cada paso del proceso siga las mejores prácticas de seguridad. La arquitectura serverless nos da agilidad, pero requiere un enfoque diferente en seguridad.
Si estás implementando arquitecturas similares, mi consejo es: automatiza las verificaciones de seguridad desde el principio. Es más fácil mantener buenos hábitos que corregir problemas en producción.
Para más información pueden consultar: