Bienvenida al curso
Bienvenido a OWASP Kubernetes Top 10. Dos preguntas a un clúster de pruebas de una tienda ficticia, hechas en nombre de la cuenta de servicio que usa su pod de catálogo:
kubectl auth can-i get secrets --all-namespaces --as=system:serviceaccount:tienda:default
kubectl auth can-i '*' '*' --as=system:serviceaccount:tienda:defaultyes
yesEl catálogo solo necesita leer un ConfigMap. Pero hace meses, para quitarse de encima un error forbidden, alguien ejecutó un kubectl create clusterrolebinding que le dio cluster-admin a la cuenta default de ese namespace. Desde entonces, quien logre ejecutar código en ese pod puede leer todos los Secrets del clúster y crear lo que quiera, porque el token de la cuenta viene montado dentro del contenedor. Es K03, RBAC permisivo, y es de los hallazgos que más se repiten.
Qué va a lograr
- Explicar qué es el OWASP Kubernetes Top 10 y clasificar un hallazgo con su identificador, de K01 a K10.
- Endurecer cargas de trabajo con
securityContext, Pod Security Admission y escaneos de Trivy. - Reducir permisos con RBAC mínimo, revisar identidades con
kubectl authy sacar los secretos de las variables de entorno. - Imponer reglas con Kyverno y cerrar la red con NetworkPolicy, empezando siempre por el modo auditoría.
- Auditar componentes con kube-bench y activar los registros que permiten investigar un incidente.
- Redactar un informe de hallazgos con evidencia reproducible, impacto y remediación.
Para quién es y qué necesita
Para quien desarrolla, para equipos de plataforma o DevOps y para analistas que ya usan Kubernetes. Conviene haber hecho Kubernetes: fundamentos y seguridad: aquí se da por sabido qué es un pod, un Deployment o un namespace. Si viene de cero, la píldora Kubernetes en 40 minutos sirve de calentamiento. Necesita una computadora con Docker y unos 8 GB de RAM, con kubectl, kind y Trivy instalados; Kyverno y kube-bench se instalan durante el curso.
Cómo está organizado
| Módulo | Qué aprende | Laboratorio |
|---|---|---|
| 1. Qué corre en el clúster: K01, K02 y K10 | Qué es la lista, pods endurecidos, Pod Security Admission, Trivy y versiones con soporte | Corregir un manifiesto inseguro con Trivy y Pod Security |
| 2. Quién puede hacer qué: K03, K06 y K08 | RBAC mínimo, kubectl auth can-i y whoami, identidades y secretos | RBAC mínimo y secretos fuera del entorno |
| 3. Reglas y visibilidad: K04, K07, K09 y K05 | Kyverno, NetworkPolicy, kube-bench y auditoría del API server | Políticas con Kyverno y segmentación de salida |
| 4. Llevarlo al trabajo | Lista de revisión, herramientas en el pipeline, cómo reportar y la conclusión | Auditoría completa e informe de hallazgos |
| Evaluación | 6 preguntas sobre todo el curso | Aprueba con 70 % |
Cómo aprovecharlo
Los cuatro laboratorios usan el mismo clúster kind, owasp-k8s: no lo borre entre sesiones. El que más se traba es el del módulo 3. Kyverno pide alrededor de 1 GB de RAM adicional, y la red por defecto de kind puede no aplicar NetworkPolicy; si en el paso de segmentación el pod cliente sigue llegando al servicio, el laboratorio le explica cómo recrear el clúster con Calico. No es un error suyo, y conviene saberlo antes de confiar en una NetworkPolicy en producción.
Escriba los manifiestos usted: la sangría mal puesta y el rechazo del API server enseñan a leer errores. Al aprobar la evaluación final con 70 % recibe el certificado y la insignia.
Tiempo estimado
Unas 4 horas y media. Haga cada laboratorio de corrido; el siguiente parte de lo que dejó el anterior.