Diseña una arquitectura en AWS confiable para capturar y consultar métricas de commits con seguridad end-to-end. Conecta GitHub Webhooks a funciones Lambda, guarda datos en Amazon RDS con SQL, expón todo por API gateway con autorización vía Auth0 y protege credenciales en Secrets Manager. Acceso restringido: solo el Engineering Manager consulta métricas.
¿Qué componentes forman la arquitectura en AWS?
La solución combina integración continua desde GitHub con servicios administrados de AWS para asegurar datos y accesos. El objetivo: registrar commits automáticamente y consultar métricas de forma segura sin exponer directamente las lambdas.
- GitHub Webhooks: envía un webhook por cada push. Registra eventos de desarrollo.
- AWS Lambda GetMetrics: solo para usuarios registrados, en especial el Engineering Manager.
- AWS Lambda HandleGitHubNotifications: recibe mensajes únicamente desde GitHub. Registra commits en la base.
- Amazon RDS con SQL: almacena métricas, en este caso commits.
- API gateway: define dos endpoints y enruta tráfico con autorización.
- Auth0: gestiona autenticación de usuarios autorizados.
- Secrets Manager: guarda usuario y contraseña de la base de datos.
¿Qué hace la lambda GetMetrics?
- Restringe acceso a usuarios autenticados por Auth0.
- Consulta registros en RDS y devuelve métricas.
- Evita exposición pública al operar detrás de API gateway.
¿Qué hace la lambda HandleGitHubNotifications?
- Acepta solo eventos provenientes de GitHub Webhooks.
- Toma cada push y persiste el commit en RDS.
- Mantiene el flujo desacoplado y seguro.
¿Cómo fluye la información desde GitHub hasta las métricas?
El diseño prioriza la ingestión automática y la consulta controlada. Cada paso reduce superficie de ataque y separa responsabilidades.
- GitHub Webhooks envía un webhook por cada push.
- API gateway enruta el evento hacia la lambda HandleGitHubNotifications.
- La lambda registra el commit en Amazon RDS con SQL.
- El Engineering Manager, autenticado por Auth0, solicita métricas al endpoint de GetMetrics.
- API gateway valida autorización y direcciona la petición.
- GetMetrics consulta RDS y responde con los datos.
¿Por qué usar un API gateway con dos endpoints?
- Separa tráfico: uno para GitHub Webhooks, otro para GetMetrics.
- Aplica políticas de autorización por tipo de consumidor.
- Evita exponer directamente las lambdas a internet.
¿Cómo se garantiza la seguridad y el acceso controlado?
La arquitectura protege credenciales, restringe orígenes y centraliza la autorización. Clave: no guardar secretos en archivos de configuración y validar quién accede a qué.
- Acceso limitado: GetMetrics solo para usuarios registrados, en especial el Engineering Manager.
- Origen confiable: HandleGitHubNotifications solo acepta tráfico desde GitHub.
- Autenticación con Auth0: verifica identidad antes de enrutar a la lambda.
- API gateway como perímetro: autorización y enrutamiento sin exponer lambdas.
- Secrets Manager para credenciales: usuario y contraseña de RDS cifrados y rotables.
¿Por qué usar Secrets Manager y no archivos de configuración?
- Evita filtraciones de credenciales en repositorios.
- Permite rotación y acceso granular por política.
- Centraliza secretos para toda la aplicación.
¿Tienes dudas sobre cómo adaptar este diseño a tu equipo o stack? Comparte tu contexto y retos en los comentarios.