Tema 13
Kubernetes concentra despliegue, red, identidades, secretos y operación de workloads. Protegerlo exige entender su arquitectura y controlar especialmente el API server, etcd, RBAC, service accounts y límites entre namespaces.
Kubernetes es una plataforma de orquestación para ejecutar contenedores en clusters. Automatiza despliegues, escalado, recuperación, networking y configuración de aplicaciones distribuidas.
Desde seguridad, Kubernetes es un plano de control poderoso. Quien obtiene permisos suficientes sobre la API puede crear pods, leer secretos, montar volúmenes, modificar despliegues, exponer servicios o moverse entre namespaces.
Por eso la seguridad de Kubernetes empieza por comprender sus componentes principales y los límites reales que ofrece.
Un cluster Kubernetes se divide en plano de control y nodos de trabajo. El plano de control decide el estado deseado; los nodos ejecutan los workloads.
| Componente | Función | Riesgo si se compromete |
|---|---|---|
| API server | Punto central para operar el cluster | Control de recursos, permisos, secretos y workloads |
| etcd | Base de datos del estado del cluster | Lectura o modificación de configuración y secretos |
| Scheduler | Asigna pods a nodos | Manipulación de ubicación de workloads |
| Controller manager | Mantiene el estado deseado | Cambios automáticos no autorizados |
| Kubelet | Ejecuta pods en cada nodo | Control del nodo o ejecución de contenedores no autorizados |
El API server es la entrada principal al cluster. Todas las operaciones relevantes pasan por él: crear pods, consultar secretos, modificar roles, aplicar manifiestos o leer eventos.
Su protección debe contemplar:
etcd almacena el estado del cluster. Contiene objetos, configuraciones y secretos. Si etcd se expone o se accede sin autorización, el atacante puede leer o alterar información crítica.
Controles importantes:
Los nodos ejecutan pods. El kubelet recibe instrucciones del plano de control y coordina con el runtime de contenedores. Si un nodo se compromete, los pods que ejecuta y sus credenciales pueden quedar expuestos.
Riesgos habituales:
Un pod es la unidad mínima de ejecución en Kubernetes. Un deployment administra réplicas y actualizaciones. Un service proporciona una forma estable de acceder a pods.
| Objeto | Función | Riesgo de seguridad |
|---|---|---|
| Pod | Ejecuta uno o más contenedores | Privilegios, secretos montados, imagen vulnerable |
| Deployment | Gestiona réplicas y actualizaciones | Despliegue de imágenes no aprobadas o configuración insegura |
| Service | Expone pods dentro o fuera del cluster | Exposición no deseada o acceso lateral |
| Ingress | Publica HTTP/HTTPS hacia servicios | Configuración TLS débil, rutas abiertas o falta de WAF |
Los namespaces organizan recursos dentro del cluster. Ayudan a separar equipos, aplicaciones o ambientes, pero no son por sí solos un límite fuerte de seguridad.
Un namespace puede servir para:
Para que la separación sea efectiva, el namespace debe combinarse con RBAC, network policies, resource quotas y políticas de admisión.
RBAC controla qué acciones pueden realizar usuarios, grupos y service accounts sobre recursos Kubernetes. Es uno de los mecanismos más importantes para aplicar mínimo privilegio.
Conceptos base:
Las service accounts son identidades usadas por pods y controladores dentro del cluster. Si un pod se compromete, el atacante puede intentar usar el token de su service account para consultar o modificar recursos.
Buenas prácticas:
Kubernetes permite almacenar secretos como objetos. Sin embargo, un Secret no debe interpretarse como protección completa. Su seguridad depende de cifrado, RBAC, auditoría y forma de entrega al pod.
Riesgos frecuentes:
Por defecto, muchos clusters permiten comunicación amplia entre pods. Esto facilita operación, pero también movimiento lateral si un workload se compromete.
Medidas base:
En servicios administrados, el proveedor gestiona parte del plano de control. Eso reduce carga operativa, pero no elimina responsabilidades del cliente.
| Área | Proveedor | Cliente |
|---|---|---|
| Plano de control | Disponibilidad y parches del servicio administrado | Acceso al API server, auditoría y configuración |
| Nodos | Puede ofrecer imágenes o nodos administrados | Parches, grupos de nodos, permisos y runtime |
| Workloads | No controla seguridad de aplicaciones | Imágenes, secretos, RBAC, políticas y recursos |
| Red | Integración con red cloud | Network policies, ingress, egress y exposición |
La auditoría permite investigar acciones sobre el cluster. Sin registros, es difícil saber quién creó un pod, leyó un secreto, modificó un role binding o expuso un servicio.
Eventos relevantes:
La seguridad en Kubernetes depende de controlar su plano de control, proteger etcd, aplicar RBAC con mínimo privilegio, aislar namespaces y auditar cambios críticos. Estos elementos son la base antes de avanzar hacia hardening de workloads y políticas de admisión.
En el próximo tema estudiaremos hardening de Kubernetes: Pod Security, admission control, network policies y runtime security.