Curso de Ciberseguridad para Desarrollo Web

Arquitectura AWS para métricas de Git

Curso de Ciberseguridad para Desarrollo Web

Contenido del curso

Arquitectura AWS para métricas de Git

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.