Tema 16

16. Seguridad en Kubernetes: pods, RBAC, network policies y admission control

Kubernetes ofrece automatización y escalabilidad para microservicios, pero también concentra gran parte del riesgo operativo en un plano de control poderoso. Si pods, permisos, políticas de red y admisión no están bien gobernados, el clúster se convierte en una superficie de ataque amplia y difícil de contener.

Objetivo Endurecer el clúster y sus workloads
Enfoque Permisos, aislamiento y políticas
Resultado Reducir movimiento lateral y errores de plataforma

16.1 Introducción

Kubernetes simplifica despliegue, descubrimiento, escalado y operación de microservicios, pero también agrega un plano de control con mucho poder. Ese plano decide qué corre, con qué imagen, en qué nodo, con qué red, con qué identidad y con qué permisos. Si esas decisiones quedan demasiado abiertas, el clúster entero hereda una postura débil.

La seguridad en Kubernetes no se reduce a proteger contenedores individuales. También implica controlar objetos del clúster, cuentas de servicio, políticas de red, permisos administrativos, flujos de despliegue y admisión de workloads.

Este tema introduce los bloques fundamentales de ese gobierno: pods, namespaces, RBAC, network policies y admission control.

16.2 Pods como unidad de ejecución

En Kubernetes el pod es la unidad mínima desplegable. Agrupa uno o más contenedores que comparten ciertos recursos. Desde el punto de vista de seguridad, esto significa que la decisión de qué contenedores comparten pod no es neutra: compartir red, volumen o ciclo de vida puede ampliar superficie de interacción.

Conviene evitar mezclar componentes sin una razón fuerte, porque el pod establece una cercanía operativa que también puede facilitar abuso o exposición de datos.

16.3 Namespaces y segmentación lógica

Los namespaces ayudan a organizar workloads y recursos, y también aportan una primera capa de segmentación lógica. No sustituyen políticas de seguridad profundas, pero permiten separar dominios, equipos, ambientes o tipos de carga.

Una buena separación por namespaces ayuda a:

  • Reducir errores operativos entre equipos.
  • Aplicar políticas más específicas.
  • Delimitar mejor permisos y observabilidad.
  • Contener parcialmente impactos de una mala configuración.
Un namespace no es una frontera de seguridad completa, pero sí un límite operativo importante cuando se combina con RBAC y network policies.

16.4 Service accounts e identidad de workloads

En Kubernetes, los pods suelen actuar a través de service accounts. Estas identidades permiten autenticar workloads frente al API server y, en ciertos escenarios, también frente a otros sistemas. Si todas las cargas usan cuentas por defecto o cuentas demasiado amplias, la trazabilidad y el mínimo privilegio se pierden rápidamente.

Una práctica madura implica:

  • Asignar service accounts específicas por workload o capacidad relevante.
  • Evitar uso indiscriminado de cuentas por defecto.
  • Reducir permisos al mínimo necesario.
  • Auditar qué workloads usan qué identidades.

16.5 RBAC y permisos sobre el clúster

RBAC, o Role-Based Access Control, define qué sujetos pueden realizar qué acciones sobre qué recursos del clúster. Es uno de los mecanismos más críticos, porque controla acceso al plano de control, a objetos sensibles y a capacidades administrativas.

Elemento Para qué sirve Riesgo si se configura mal
Role Permisos dentro de un namespace Escalamiento de acceso local
ClusterRole Permisos de alcance más amplio o cluster-wide Impacto transversal sobre el clúster
Binding Asocia roles con identidades Asignación accidental de privilegios elevados

16.6 Mínimo privilegio en Kubernetes

Aplicar mínimo privilegio en Kubernetes implica mucho más que limitar acceso humano. También significa revisar qué puede hacer cada pipeline, controlador, operador, pod o cuenta técnica.

  • Un workload no debería poder listar o modificar recursos que no necesita.
  • Un equipo no debería tener privilegios globales si solo administra su namespace.
  • Los permisos administrativos del clúster deben restringirse fuertemente.
  • Las capacidades de crear pods privilegiados o montar secretos deben tratarse como altamente sensibles.

16.7 Network policies

Por defecto, muchos clústeres tienden a permitir una conectividad demasiado amplia entre pods. Las network policies permiten restringir qué tráfico entra o sale de un conjunto de pods según namespaces, labels y reglas declaradas.

Su valor principal es reducir movimiento lateral y delimitar caminos válidos de comunicación.

Con ellas se puede expresar, por ejemplo:

  • Qué frontend puede hablar con qué backend.
  • Qué workloads pueden acceder a bases de datos internas.
  • Qué pods no deberían tener salida libre a internet.

16.8 Admission control

El admission control permite validar o mutar objetos antes de que queden aceptados en el clúster. Es una pieza muy poderosa porque ayuda a impedir que workloads inseguros lleguen siquiera a ejecutarse.

Se puede usar para exigir políticas como:

  • No correr como root.
  • No usar imágenes desde registros no aprobados.
  • No montar host paths sensibles.
  • Declarar límites de recursos.
  • Incluir labels o annotations obligatorias para gobierno y trazabilidad.

16.9 Pod security y hardening de especificaciones

Más allá del contenedor en sí, la especificación del pod define parte importante de la seguridad del runtime. Security contexts, usuarios, capabilities, privilegios, mounts y comportamiento del filesystem son decisiones que deben revisarse sistemáticamente.

Una mala especificación puede reintroducir dentro de Kubernetes todos los riesgos que el hardening del contenedor intentaba reducir.

16.10 Secretos y ConfigMaps en el clúster

Kubernetes facilita distribuir configuración y secretos a los workloads, pero eso no significa que todo esté resuelto por usar objetos nativos. Hay que revisar quién puede leerlos, montarlos, exportarlos o modificarlos.

El riesgo crece especialmente cuando:

  • Muchos pods pueden acceder a secretos innecesarios.
  • Se reutilizan secretos entre múltiples dominios.
  • Los permisos sobre el API permiten leer secretos a cuentas no justificadas.

16.11 Nodos y plano de control

Aunque este tema se centra en pods y políticas lógicas, no hay que olvidar que la seguridad del clúster también depende de nodos y del plano de control. Si un atacante obtiene control amplio sobre un nodo o sobre componentes administrativos, el impacto puede ser muy superior al de comprometer un pod aislado.

Por eso la seguridad del clúster requiere pensar en capas: workload, namespace, red, API server, control plane y nodo.

16.12 Observabilidad y auditoría

Kubernetes genera una gran cantidad de eventos y cambios de estado. Esa información es valiosa para seguridad si se observa correctamente. Conviene registrar y correlacionar al menos:

  • Cambios en roles, bindings y service accounts.
  • Creación de workloads privilegiados o fuera de política.
  • Accesos al API server.
  • Denegaciones por admission control o políticas de red.

16.13 Errores comunes

  • Usar service accounts por defecto para workloads sensibles.
  • Conceder permisos cluster-wide por comodidad.
  • No definir network policies y asumir que el clúster está segmentado.
  • Permitir despliegues privilegiados sin controles previos.
  • Tratar namespaces como aislamiento suficiente sin combinar otras políticas.
Kubernetes no vuelve segura a una plataforma por defecto. Vuelve automatizable una plataforma que puede ser muy segura o muy peligrosa según cómo se la gobierne.

16.14 Qué debes recordar de este tema

  • La seguridad en Kubernetes combina identidad, permisos, red y validación previa al despliegue.
  • RBAC y service accounts son piezas críticas para mínimo privilegio.
  • Las network policies reducen movimiento lateral entre workloads.
  • Admission control ayuda a impedir configuraciones inseguras antes de runtime.
  • Namespaces ayudan, pero necesitan complementarse con otras políticas para ser efectivos.

16.15 Conclusión

Kubernetes ofrece una base poderosa para operar microservicios, pero exige disciplina de seguridad en varios planos al mismo tiempo. Cuando pods, identidades, permisos y políticas de red están bien gobernados, el clúster puede convertirse en un entorno controlado y observable. Cuando no lo están, la automatización acelera también la propagación del riesgo.

En el próximo tema estudiaremos service mesh, mTLS y políticas de tráfico entre microservicios para ver cómo reforzar identidad, cifrado y control de comunicación dentro del clúster.