Arquitectura AWS para métricas de Git
Clase 11 de 30 • Curso de Ciberseguridad para Desarrollo Web
Contenido del curso
Funciona en mi local
Introducción a DevSecOps
Seguridad en la arquitectura
- 11

Arquitectura AWS para métricas de Git
Viendo ahora - 12

Configuración de AWS CLI para Terraform
09:34 min - 13

Terraform IAM: roles y policies automáticos
17:44 min - 14

Modificando main.tf para enlazar módulos IAM en Terraform
06:02 min - 15

Bucket S3 para Lambdas con Terraform
16:44 min - 16

Configuración de Postgres RDS con VPC y seguridad
14:10 min - 17

Configurando VPC para AWS Lambda con Terraform
12:29 min - 18

Cómo configurar API Gateway para Lambdas
05:42 min
Evitando vulnerabilidades en el código
- 19

Configuración completa de Auth0 para tokens
07:14 min - 20

Authorizer Lambda con Auth0 y JWT
16:56 min - 21

Conecta Go a Postgres usando AWS Secrets
13:35 min - 22

Conexión segura de Lambdas a Secrets con VPC
11:27 min - 23

Validación de webhooks desde GitHub con user-agent
12:08 min - 24

Cómo validar integridad de webhooks con HMAC
14:32 min
Controles de seguridad sobre datos
Monitoring y alertas
CORS y cierre
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.