workspace "Arquitectura de Seguridad Transversal en Kubernetes" "C4 Model" { model { ####################################################### ## PERSONAS ####################################################### user = person "Usuario Final" "Persona que interactúa con la aplicación" dev = person "Developer" "Desarrollador que sube cambios" ops = person "Equipo de Operaciones" "Recibe alertas" ####################################################### ## SISTEMAS PRINCIPALES (Core Architecture) ####################################################### sistema = softwareSystem "Arquitectura Principal" "Plataforma empresarial" { webapp = container "Aplicación Web" "Frontend web o móvil" "React / Angular / Mobile" backend = container "Sistema Backend" "Microservicios y API Gateway" "Node/Java/Python" database = container "Base de Datos" "Almacena datos sensibles" "PostgreSQL / SQL" user -> webapp "Usa" webapp -> backend "Consume API" backend -> database "Lee/escribe" } ####################################################### ## CAPA DE SEGURIDAD (TAG Security) ####################################################### waf = softwareSystem "WAF" "Protección contra OWASP A1-A10" { tags "Security" } ddos = softwareSystem "Anti-DDoS" "Mitigación de ataques distribuidos" { tags "Security" } lb = softwareSystem "Load Balancer" "Distribución de tráfico" { tags "Security" } auth = softwareSystem "Autenticación & IAM" "SSO, MFA, Identity Federation" { tags "Security" } access = softwareSystem "Control de Acceso" "RBAC, ABAC, Zero Trust" { tags "Security" } encryption = softwareSystem "Confidencialidad" "TLS, KMS, encryption at rest" { tags "Security" } integrity = softwareSystem "Integridad" "Firmas digitales, hashing" { tags "Security" } logs = softwareSystem "Logs & Auditoría" "SIEM / CloudTrail / Sentinel" { tags "Security" } compliance = softwareSystem "Cumplimiento & Normativas" "ISO 27001, SOC2, PCI" { tags "Security" } scanner = softwareSystem "Vulnerability Scanner" "SAST / DAST / SCA" { tags "Security" } ####################################################### ## CAPA INFRAESTRUCTURA (TAG Infra) ####################################################### cloud_provider = softwareSystem "Proveedor Cloud" "AWS / Azure / GCP" { tags "Infra" } ha = softwareSystem "Alta Disponibilidad" "Multi-region, DRP" { tags "Infra" } network = softwareSystem "Networking" "VPC, Subnets, Security Groups" { tags "Infra" } ####################################################### ## RELACIONES DE SEGURIDAD ####################################################### backend -> waf "Filtrado por" backend -> ddos "Protegido por" backend -> lb "Balanceado por" backend -> auth "Autentica mediante" backend -> access "Controlado mediante" backend -> encryption "Cifra datos con" backend -> integrity "Verifica integridad con" backend -> logs "Genera logs hacia" backend -> scanner "Analizado por" cloud_provider -> ha "Proporciona redundancia" cloud_provider -> network "Proporciona red segura" ####################################################### ## SISTEMA DEVSECOPS (para vista dinámica) ####################################################### devsecops = softwareSystem "DevSecOps Pipeline" "Pipeline automatizado CI/CD con seguridad integrada" { repo = container "Repositorio Git" "Código fuente" "GitHub / GitLab" ci = container "CI Pipeline" "Construcción y pruebas automáticas" "GitHub Actions / Jenkins" cd = container "CD Pipeline" "Despliegue automatizado" "ArgoCD / Spinnaker" registry = container "Container Registry" "Imágenes validadas" "Docker Hub / ECR / ACR" runtime = container "Runtime" "Ambiente productivo" "Kubernetes / ECS / VM" monitoring = container "Monitoring" "Métricas y alertas" "Prometheus / Datadog" dev -> repo "Commit" repo -> ci "Trigger CI" ci -> scanner "Escanea SAST/DAST/SCA" scanner -> ci "Resultados" ci -> registry "Publica artefactos" registry -> cd "Disponible para despliegue" ci -> cd "Trigger CD" cd -> runtime "Despliega release" runtime -> monitoring "Genera métricas" monitoring -> ops "Envía alertas" } ####################################################### ## NUEVA CAPA: ARQUITECTURA KUBERNETES SEGURA ####################################################### k8s_cluster = softwareSystem "Kubernetes Cluster" "Plataforma de orquestación de contenedores" { tags "Kubernetes" } ####################################################### ## COMPONENTES DE KUBERNETES ####################################################### // Capa de Identidad y Acceso keycloak = softwareSystem "Keycloak Operator" "Identity Provider en Kubernetes" { tags "Kubernetes", "IAM" } rbac_k8s = softwareSystem "RBAC Kubernetes" "Gestión avanzada de roles" { tags "Kubernetes", "IAM" } oidc = softwareSystem "OIDC Integration" "Autenticación externa" { tags "Kubernetes", "IAM" } mfa = softwareSystem "MFA System" "Multi-Factor Authentication" { tags "Kubernetes", "IAM" } // Capa de Protección de Datos vault = softwareSystem "Vault/Sealed Secrets" "Gestión de secretos" { tags "Kubernetes", "Data Protection" } encryption_k8s = softwareSystem "Encryption at Rest" "Cifrado de volúmenes" { tags "Kubernetes", "Data Protection" } network_policies = softwareSystem "Network Policies" "Control de tráfico entre pods" { tags "Kubernetes", "Data Protection" } // Capa de Seguridad de Red istio = softwareSystem "Istio Service Mesh" "Zero Trust con mTLS" { tags "Kubernetes", "Network Security" } ingress_controller = softwareSystem "Ingress Controller" "NGINX con WAF integrado" { tags "Kubernetes", "Network Security" } calico = softwareSystem "Calico Firewall" "Políticas de firewall avanzadas" { tags "Kubernetes", "Network Security" } cloudflare = softwareSystem "Cloudflare DDoS" "Protección DDoS" { tags "Kubernetes", "Network Security" } // Capa de Seguridad de Aplicaciones api_gateway = softwareSystem "API Gateway" "Kong/Istio con políticas de seguridad" { tags "Kubernetes", "App Security" } container_security = softwareSystem "Container Security" "Clair/Trivy para escaneo" { tags "Kubernetes", "App Security" } runtime_security = softwareSystem "Runtime Security" "Falco para detección de anomalías" { tags "Kubernetes", "App Security" } // Capa de Monitoreo y Detección siem = softwareSystem "SIEM Stack" "ELK para log management" { tags "Kubernetes", "Monitoring" } prometheus = softwareSystem "Prometheus + Grafana" "Monitoreo de seguridad" { tags "Kubernetes", "Monitoring" } ids_ips = softwareSystem "IDS/IPS" "Falco y OSSEC" { tags "Kubernetes", "Monitoring" } // Capa de Gestión de Vulnerabilidades vulnerability_scanner = softwareSystem "Vulnerability Scanning" "Trivy/Clair" { tags "Kubernetes", "Vulnerability" } security_assessments = softwareSystem "Security Assessments" "Kube-bench/hunter" { tags "Kubernetes", "Vulnerability" } patch_management = softwareSystem "Patch Management" "ArgoCD para actualizaciones" { tags "Kubernetes", "Vulnerability" } // Capa de Backup y Recuperación velero = softwareSystem "Velero Backup" "Backup de estado de clúster" { tags "Kubernetes", "Backup" } disaster_recovery = softwareSystem "Disaster Recovery" "Restic para volúmenes" { tags "Kubernetes", "Backup" } // Capa de Gobernanza opa_gatekeeper = softwareSystem "OPA Gatekeeper" "Políticas de seguridad" { tags "Kubernetes", "Governance" } kyverno = softwareSystem "Kyverno" "Políticas de control de acceso" { tags "Kubernetes", "Governance" } audit_logs = softwareSystem "Audit Logs" "Logs centralizados" { tags "Kubernetes", "Governance" } ####################################################### ## RELACIONES EN KUBERNETES ####################################################### // Relaciones de Identidad y Acceso k8s_cluster -> keycloak "Implementa identidad con" k8s_cluster -> rbac_k8s "Gestiona acceso mediante" k8s_cluster -> oidc "Integra autenticación con" k8s_cluster -> mfa "Protege acceso con" // Relaciones de Protección de Datos k8s_cluster -> vault "Gestiona secretos con" k8s_cluster -> encryption_k8s "Cifra datos con" k8s_cluster -> network_policies "Controla tráfico con" // Relaciones de Seguridad de Red k8s_cluster -> istio "Implementa Zero Trust con" k8s_cluster -> ingress_controller "Protege tráfico con" k8s_cluster -> calico "Aplica políticas con" k8s_cluster -> cloudflare "Protege DDoS con" // Relaciones de Seguridad de Aplicaciones k8s_cluster -> api_gateway "Protege APIs con" k8s_cluster -> container_security "Escanea contenedores con" k8s_cluster -> runtime_security "Monitorea runtime con" // Relaciones de Monitoreo k8s_cluster -> siem "Centraliza logs en" k8s_cluster -> prometheus "Monitorea métricas con" k8s_cluster -> ids_ips "Detecta intrusiones con" // Relaciones de Vulnerabilidades k8s_cluster -> vulnerability_scanner "Escanea vulnerabilidades con" k8s_cluster -> security_assessments "Evalúa seguridad con" k8s_cluster -> patch_management "Actualiza seguridad con" // Relaciones de Backup k8s_cluster -> velero "Realiza backup con" k8s_cluster -> disaster_recovery "Gestiona recuperación con" // Relaciones de Gobernanza k8s_cluster -> opa_gatekeeper "Aplica políticas con" k8s_cluster -> kyverno "Controla acceso con" k8s_cluster -> audit_logs "Audita acciones en" } ################################################################# ## VISTAS ################################################################# views { ####################################################### ## SYSTEM CONTEXT VIEW ####################################################### systemContext sistema "contexto_sistema" { include * } ####################################################### ## CONTAINER VIEW ####################################################### container sistema "containers_sistema" { include * } ####################################################### ## VISTA DE SEGURIDAD ####################################################### systemLandscape "seguridad_global" { title "Capa de Seguridad – Conforme a ISO 27001" include * } ####################################################### ## VISTA INFRA ####################################################### systemLandscape "infraestructura" { title "Infraestructura y Red" include cloud_provider include ha include network } ####################################################### ## VISTA KUBERNETES SEGURA ####################################################### systemLandscape "kubernetes_seguro" { title "Arquitectura de Seguridad en Ecosistema Kubernetes" include k8s_cluster include keycloak include rbac_k8s include oidc include mfa include vault include encryption_k8s include network_policies include istio include ingress_controller include calico include cloudflare include api_gateway include container_security include runtime_security include siem include prometheus include ids_ips include vulnerability_scanner include security_assessments include patch_management include velero include disaster_recovery include opa_gatekeeper include kyverno include audit_logs } ####################################################### ## VISTA POR CAPAS DE KUBERNETES ####################################################### systemLandscape "kubernetes_por_capas" { title "Arquitectura Kubernetes por Capas de Seguridad" // Capa de Identidad y Acceso include keycloak include rbac_k8s include oidc include mfa // Capa de Protección de Datos include vault include encryption_k8s include network_policies // Capa de Seguridad de Red include istio include ingress_controller include calico include cloudflare // Capa de Seguridad de Aplicaciones include api_gateway include container_security include runtime_security // Capa de Monitoreo include siem include prometheus include ids_ips // Capa de Vulnerabilidades include vulnerability_scanner include security_assessments include patch_management // Capa de Backup include velero include disaster_recovery // Capa de Gobernanza include opa_gatekeeper include kyverno include audit_logs } ####################################################### ## VISTA DINÁMICA DEVSECOPS (CORREGIDA) ####################################################### dynamic devsecops "flujo_devsecops" { title "Flujo DevSecOps – S-SDLC Seguro" dev -> repo "Commit de código" repo -> ci "Ejecuta CI" ci -> scanner "Análisis SAST/DAST/SCA" scanner -> ci "Retorna hallazgos" ci -> registry "Construye y publica artefacto" registry -> cd "Artefacto disponible" ci -> cd "Trigger de despliegue" cd -> runtime "Deployment" runtime -> monitoring "Envia métricas/seguridad" monitoring -> ops "Genera alerta" } ####################################################### ## ESTILOS ####################################################### styles { element "Person" { shape person background #fff7d6 color #000000 } element "Container" { shape roundedBox } element "Software System" { shape roundedBox } element "Security" { background #f3e8ff color #000000 border solid } element "Infra" { background #e7f3ff color #000000 border dashed } element "Kubernetes" { background #d1f7ff color #000000 border solid } element "IAM" { background #ffe4e1 color #000000 } element "Data Protection" { background #e6ffe6 color #000000 } element "Network Security" { background #fff0e1 color #000000 } element "App Security" { background #f0e1ff color #000000 } element "Monitoring" { background #fff8e1 color #000000 } element "Vulnerability" { background #ffe1e1 color #000000 } element "Backup" { background #e1f0ff color #000000 } element "Governance" { background #f0ffe1 color #000000 } relationship "Filtrado por" { color #555555 } relationship "Protegido por" { color #555555 } relationship "Balanceado por" { color #555555 } relationship "Autentica mediante" { color #555555 } relationship "Controlado mediante" { color #555555 } relationship "Cifra datos con" { color #555555 } relationship "Verifica integridad con" { color #555555 } relationship "Genera logs hacia" { color #555555 } relationship "Analizado por" { color #555555 } relationship "Proporciona redundancia" { color #555555 } relationship "Proporciona red segura" { color #555555 } relationship "Commit de código" { color #555555 } relationship "Ejecuta CI" { color #555555 } relationship "Análisis SAST/DAST/SCA" { color #555555 } relationship "Retorna hallazgos" { color #555555 } relationship "Construye y publica artefacto" { color #555555 } relationship "Artefacto disponible" { color #555555 } relationship "Trigger de despliegue" { color #555555 } relationship "Deployment" { color #555555 } relationship "Envia métricas/seguridad" { color #555555 } relationship "Genera alerta" { color #555555 } relationship "Implementa identidad con" { color #0066cc } relationship "Gestiona acceso mediante" { color #0066cc } relationship "Integra autenticación con" { color #0066cc } relationship "Protege acceso con" { color #0066cc } relationship "Gestiona secretos con" { color #009900 } relationship "Cifra datos con" { color #009900 } relationship "Controla tráfico con" { color #009900 } relationship "Implementa Zero Trust con" { color #cc6600 } relationship "Protege tráfico con" { color #cc6600 } relationship "Aplica políticas con" { color #cc6600 } relationship "Protege DDoS con" { color #cc6600 } relationship "Protege APIs con" { color #9900cc } relationship "Escanea contenedores con" { color #9900cc } relationship "Monitorea runtime con" { color #9900cc } relationship "Centraliza logs en" { color #cc0066 } relationship "Monitorea métricas con" { color #cc0066 } relationship "Detecta intrusiones con" { color #cc0066 } relationship "Escanea vulnerabilidades con" { color #ff6600 } relationship "Evalúa seguridad con" { color #ff6600 } relationship "Actualiza seguridad con" { color #ff6600 } relationship "Realiza backup con" { color #0066ff } relationship "Gestiona recuperación con" { color #0066ff } relationship "Aplica políticas con" { color #6600ff } relationship "Controla acceso con" { color #6600ff } relationship "Audita acciones en" { color #6600ff } } } }