Conceptos generales de seguridad
Ciberseguridad para Desarrolladores: Protege tus Proyectos y Datos
Principales Riesgos de Seguridad en Empresas y Cómo Mitigarlos
Principios de Seguridad en AWS: Autenticación, Autorización y Auditoría
Funciona en mi local
Configuración de Webhooks y API REST con Go y ngrok
Creación de repositorios seguros y prevención de SQL Injection
Creación de Métodos Testeables con Mocks en Go
Introducción a DevSecOps
Implementación de DevSecOps con GitHub Actions para Desarrolladores
Automatización de Pruebas en Go con GitHub Actions
Pruebas Unitarias con Mocks en GitHub Actions
Gestión de Permisos y Presupuestos en AWS para Nuevas Arquitecturas
Seguridad en la arquitectura
Integración de GitHub Webhooks y AWS para Gestión de Commits
Gestión de Infraestructura como Código con Terraform en AWS
Infraestructura como Código con Terraform y Makefiles
Automatización de Infraestructura con Terraform: Roles y Políticas en AWS
Implementación de buckets y funciones Lambda con Terraform y AWS S3
Configuración de Bases de Datos en AWS con VPC y Seguridad IP
Configuración de Lambdas en VPC usando Terraform
Configuración de API Gateway para Lambdas en AWS
Evitando vulnerabilidades en el código
Configuración de Autenticación con Auth0 en Aplicaciones Web
Implementación de Authorizer con Auth0 en AWS Lambda
Conexión y Configuración de Lambda con AWS y Postgres
Configuración de Endpoints y Políticas en AWS con Terraform
Validación de Webhooks desde GitHub usando User Agent
Validación de Webhooks de GitHub con AWS Secrets Manager
Controles de seguridad sobre datos
Seguridad de Datos y Certificados SSL en AWS
Protección de Datos en Reposo con AWS KMS
Monitoring y alertas
Creación de un Sistema de Logs en Go para Observabilidad
Monitoreo y Auditoría en AWS con CloudWatch y CloudTrail
Creación de Alertas en AWS CloudWatch
CORS y cierre
Manejo de CORS en Desarrollo Web Seguro
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Diseñar la arquitectura de un proyecto es un paso crucial que define cómo los diferentes componentes del sistema se interactuarán entre sí. En este proyecto, el objetivo principal es permitir que el Engineering Manager acceda a los datos de los commits realizados por los desarrolladores. Esto se logrará mediante GitHub Webhooks, dos funciones Lambda, una base de datos RDS en AWS, una API Gateway y el uso de Auth0 para autenticación. Este enfoque garantizara seguridad, eficacia y escalabilidad.
Cada vez que un desarrollador realice un push en GitHub, se activará un webhook que enviará datos a nuestro sistema. Este mecanismo simplifica la comunicación entre GitHub y nuestro proyecto, permitiendo recibir notificaciones en tiempo real de cada commit que se realiza.
Utilizaremos dos funciones Lambda:
GetMetrics: Será accesible solo por el Engineering Manager u otros usuarios registrados. Esta función obtendrá registros de la base de datos y proporcionará métricas relevantes.
Handle GitHub Notifications: Se encargará de recibir mensajes exclusivamente desde GitHub, registrando los commits en nuestra base de datos.
Las funciones Lambda permiten ejecutar código en respuesta a eventos y escalan automáticamente, haciendo que sean ideales para manejar tareas específicas sin necesidad de gestionar servidores.
Optamos por una base de datos RDS de Amazon basado en SQL. Esta elección se debe a su alta disponibilidad, seguridad y facilidad de gestión. Aquí almacenaremos todos los datos relacionados con los commits, permitiendo al Engineering Manager consultar métricas detalladas a través de la función GetMetrics.
Para asegurar que solo usuarios autorizados accedan a las funciones Lambda, utilizaremos una API Gateway con dos endpoints:
La API Gateway realizará la autorización utilizando Auth0, un proveedor de autenticación que facilita la implementación de inicio de sesión seguro. Este método asegura que solo los usuarios aprobados y las notificaciones de GitHub tengan acceso a nuestro sistema.
Cuando se trata de bases de datos, el manejo seguro de las credenciales es esencial. Utilizaremos AWS Secrets Manager para almacenar y gestionar las credenciales de acceso a la base de datos. Esto evita que las credenciales queden expuestas en los archivos de configuración, minimizando el riesgo de filtraciones y aumentando la seguridad de nuestra arquitectura.
Recuerda que cada uno de estos componentes puede personalizarse según las necesidades específicas del proyecto y los requisitos de seguridad. Aprovecha estas herramientas para construir un sistema robusto y eficiente. ¡Sigue aprendiendo y desarrollando tus habilidades!
Aportes 2
Preguntas 0
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?