Servicio para la gestión de tareas de escaneo de seguridad en repositorios de diferentes fuentes SCM (Source Control Management).
Este proyecto implementa un servicio que permite iniciar y gestionar tareas de escaneo de seguridad sobre repositorios de código. Soporta múltiples fuentes como:
- GitHub
- BitBucket
- GitLab
- CLI (línea de comandos)
El servicio está diseñado para funcionar como una Lambda en AWS, expuesta a través de API Gateway.
- Validación de API Keys para autenticación
- Estrategias específicas para diferentes fuentes SCM
- Encriptación de tokens y datos sensibles
- Gestión de trabajos a través de AWS Batch
- Seguimiento del estado de los escaneos
- Manejo consistente de errores
Important
En windows se DEBE usar Windows Subsystem for Linux 2 (WSL2)
.
├── aws # Recursos de AWS
│ ├── cloudwatch # Configuración de CloudWatch
│ ├── lambda # Configuración de Lambda
│ └── parameter # Parámetros de AWS
├── auth # Módulo de autenticación
├── shared # Código compartido
├── src # Código fuente principal
│ ├── api-key # Gestión de API Keys
│ ├── common # Utilidades comunes
│ ├── crypto # Servicios de criptografía
│ ├── scm # Estrategias para diferentes SCM
│ └── task-trigger # Lógica de disparadores de tareas
├── test # Tests unitarios e integración
├── trigger # Implementación del core de la aplicación
├── localstack # Configuración para desarrollo local
└── .vscode # Configuración de VS CodePara el desarrollo local, se utiliza LocalStack. La configuración se encuentra en el archivo localstack.hcl.
Opcionalmente se puede crear un archivo common_tags.json con las etiquetas necesarias:
{
"Project": "Titvo Security Scan",
"Customer": "Titvo",
"Team": "Area Creacion"
}- Crear archivo .env con las variables necesarias descritas arriba
export AWS_ACCESS_KEY_ID="tu_access_key"
export AWS_SECRET_ACCESS_KEY="tu_secret_key"
export AWS_DEFAULT_REGION="us-east-1"
export AWS_STAGE="prod"
export PROJECT_NAME="titvo-task-trigger" # Opcional si quiere mantener los valores por defecto. Esto se usará como prefijo para los recursos
export PARAMETER_PATH="/titvo/security-scan" # Opcional si quiere mantener los valores por defecto. Esto se usará como prefijo para los parámetros
export BUCKET_STATE_NAME="titvo-task-trigger-terraform-state" # Opcional, si no se especifica se usará el nombre del proyecto. Por ejemplo: titvo-security-scan-terraform-stateImportant
PARAMETER_PATHdeben tener los mismos valores que se usarion en el proyecto titvo-security-scan-infra-aws
- Desplegar el proyecto
npm install
npm run build
cd aws
terragrunt run-all apply --terragrunt-non-interactive --auto-approveEste proyecto está licenciado bajo Apache License 2.0.