Arquitectura AWS para métricas de Git

Clase 11 de 30Curso de Ciberseguridad para Desarrollo Web

Resumen

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.