Comparativas de CIS


En esta página, se describe el enfoque que adopta Google Kubernetes Engine (GKE) para mejorar el cumplimiento de las comparativas del Centro para la seguridad en Internet (CIS) en Kubernetes y GKE. Esta página incluye la siguiente información:

  • Cómo configuramos el plano de control de GKE administrado a fin de que se ajuste a la comparativa de CIS para Kubernetes
  • Cómo puedes configurar tus nodos y cargas de trabajo de GKE para que cumplan con la comparativa de CIS para Google Kubernetes Engine (GKE)

Acerca de las comparativas de CIS

CIS lanza las siguientes comparativas que contienen lineamientos de configuración segura para Kubernetes:

  • Comparativas de CIS para Kubernetes: Se aplica al proyecto de código abierto de Kubernetes. Diseñado para proporcionar orientación para una variedad de implementaciones de Kubernetes autoadministradas y alojadas.
  • CIS GKE Benchmark: Establece lineamientos para la configuración segura de componentes que puedes controlar en los clústeres de GKE. Incluye recomendaciones específicas de GKE en Google Cloud.

Te recomendamos priorizar la comparativa de CIS para GKE, ya que es específica de GKE en Google Cloud. La comparativa de CIS para Kubernetes contiene muchas recomendaciones para los controles que no puedes ver ni modificar en GKE. Nuestro enfoque para la seguridad del clúster incluye mitigaciones que van más allá del alcance de la comparativa de código abierto de Kubernetes y pueden generar conflictos con esas recomendaciones.

Otras comparativas que se aplican a GKE

Además de la comparativa de CIS para GKE y la comparativa de CIS para Kubernetes, las siguientes comparativas se aplican a los sistemas operativos que están disponibles en GKE. Incluso si una comparativa de SO específica no aborda de manera explícita el uso de Kubernetes, debes hacer referencia a esa comparativa para obtener orientación de seguridad adicional.

El entorno de ejecución del contenedor predeterminado, containerd, no tiene una comparativa.

Modelo de responsabilidad compartida

Según el modelo de responsabilidad compartida de GKE, administramos los siguientes componentes por ti:

  • El plano de control, incluidas las VMs del plano de control, el servidor de la API y los componentes como etcd, kube-controller-manager y kube-scheduler.
  • El sistema operativo del nodo.

Estos componentes existen en un proyecto que posee GKE, por lo que no puedes modificar ni evaluar ninguno de estos componentes en función de los controles de la comparativa de CIS correspondientes. Sin embargo, puedes evaluar y solucionar cualquier control de la comparativa de CIS que se aplique a los nodos trabajadores y las cargas de trabajo. Según el modelo de responsabilidad compartida de GKE, estos componentes son tu responsabilidad.

Nuestro enfoque de protección de GKE para la comparativa de CIS

GKE es una implementación administrada de Kubernetes de código abierto. Administramos por completo el plano de control y somos responsables de proteger la configuración de los componentes del plano de control. En la siguiente tabla, se describen algunas de nuestras decisiones que podrían afectar la puntuación de las comparativas de CIS:

Enfoque de seguridad de GKE
Autenticación
  • Algunos componentes de supervisión de GKE usan autenticación anónima para obtener métricas. GKE permite la autenticación anónima para kubelet, pero esta exposición es idéntica al puerto de solo lectura porque inhabilitamos los controladores de depuración adicionales.
  • Algunos componentes del plano de control se inician mediante tokens estáticos que luego se usan para autenticarse en el servidor de la API. Estos tokens se generan cada vez que se inicia o se reinicia una VM.
Controladores de admisión

GKE inhabilita los siguientes controladores de admisión:

  • EventRateLimit: esta es una función alfa en Kubernetes
  • AlwaysPullImages: Este controlador proporciona cierta protección para las imágenes de registro privado en clústeres de multiusuarios no cooperativos, a costa de la creación de registros de imágenes en un punto único de fallo para crear Pods nuevos en el clúster.
  • SecurityContextDeny: Se prefiere el controlador de admisión de seguridad de Pods y está disponible en todas las ediciones de GKE. Si usas GKE Enterprise, también puedes habilitar la aplicación de los estándares de seguridad de los Pods; para ello, usa Policy Controller.
  • ImagePolicyWebhook: GKE inhabilita ImagePolicyWebhook de forma predeterminada, ya que tiene sus propios mecanismos de administración y seguridad de imágenes. Esto permite que GKE mantenga un control más estricto sobre el entorno y garantice que sus prácticas de seguridad se apliquen de forma coherente. Sin embargo, puedes usar la Autorización Binaria o Policy Controller para la administración de políticas.
Registros de auditoría GKE captura los registros de auditoría mediante la política de auditoría de GKE. Como resultado, no es necesario establecer ninguna marca de registro de auditoría del servidor de la API de Kubernetes.
Depuración GKE usa la generación de perfiles para la depuración.
Encriptación
kubelet
  • GKE habilita el puerto de solo lectura de kubelet no autenticado.
  • El modo GKE Standard permite que tus cargas de trabajo modifiquen los valores predeterminados del kernel si es necesario.
  • GKE limita la cantidad de eventos de Kubernetes en kubelet para reducir el riesgo de ataques de denegación del servicio.
  • GKE usa mTLS para proteger el tráfico entre kubelet y el servidor de la API.
  • GKE rota los certificados de servidor de forma predeterminada y los certificados de cliente cuando los nodos de GKE protegidos están habilitados.
  • GKE usa el conjunto predeterminado de algoritmos de cifrado permitidos de golang, que también es la configuración predeterminada para Kubernetes.

Evalúa GKE en función de las comparativas de CIS

Puedes automatizar la evaluación de tus clústeres en comparación con las comparativas mediante uno de los siguientes métodos:

  • Comparativa de CIS para GKE

    • Todas las ediciones de GKE:
      • Ejecuta kube-bench para evaluar los nodos trabajadores en comparación con la comparativa. Para obtener más detalles, consulta el repositorio de GitHub de kube-bench.
      • Usa una herramienta de terceros como Twistlock Defender para evaluar los nodos con la comparativa.
    • Edición de GKE Enterprise: Usa el panel de cumplimiento a fin de evaluar todos tus clústeres para cumplir con la comparativa de CIS para GKE. Para obtener más detalles, consulta Acerca del panel de cumplimiento de GKE.
  • Comparativa de Kubernetes de CIS: Ejecuta kube-bench a fin de evaluar los nodos trabajadores en comparación con la comparativa. No puedes evaluar el plano de control administrado en función de esas recomendaciones en la comparativa.

¿Qué sigue?