CIS Benchmarks


En este documento, se explica qué son las Comparativas de CIS para Kubernetes y Google Kubernetes Engine (GKE), cómo auditar tu cumplimiento de las comparativas y qué configura GKE cuando no puedes auditar ni implementar una recomendación directamente tú mismo.

Usa CIS Benchmarks

El Center for Internet Security (CIS) lanza comparativas de prácticas recomendadas de seguridad. Las comparativas de CIS para Kubernetes son un conjunto de recomendaciones destinadas a configurar Kubernetes con el objetivo de mantener una seguridad sólida. La comparativa está vinculada a una versión específica de Kubernetes. La comparativa de CIS para Kubernetes está escrita para la distribución de Kubernetes de código abierto y tiene la intención de ser aplicable en todo el mundo, en todas las distribuciones.

Con un servicio administrado como GKE, no todos los elementos de la comparativa son tu responsabilidad, y hay recomendaciones que no puedes auditar ni corregir directamente. Si ejecutas en GKE, usa la comparativa de CIS para GKE, que es una comparativa secundaria de la comparativa de CIS para Kubernetes, destinada en particular a la distribución de GKE. Esta se basa en la comparativa de CIS existente, pero quita elementos que el usuario no puede configurar ni administrar, y agrega controles adicionales que son específicos de Google Cloud.

Conjunto de comparativas múltiples

Mediante GKE, puedes usar comparativas de CIS para GKE, Kubernetes, Docker, Container-Optimized OS y Linux. Si deseas descargar comparativas actualizadas de estos productos, visita el sitio web de CIS Benchmark.

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

Los nodos de Windows Server que se usan con GKE no tienen puntuación en una comparativa de CIS adecuada, ya que las comparativas de CIS de Windows Server no permiten específicamente el uso de Kubernetes y las comparativas de CIS de Kubernetes no admiten nodos de Windows en la actualidad.

Algunas herramientas intentan analizar los nodos de Kubernetes con varias comparativas de CIS (p. ej., Linux, Docker y Kubernetes) y combinar los resultados. A menudo, esto da como resultado un consejo confuso y contradictorio porque esas comparativas no se diseñaron para combinarse y aplicarse en un entorno de Kubernetes.

Modelo de responsabilidad compartida

En GKE, dentro del modelo de responsabilidad compartida, Google administra los siguientes componentes de Kubernetes:

  • El plano de control, incluidas las VM del plano de control, el servidor de la API, otros componentes de las VM y etcd.
  • La distribución de Kubernetes
  • El sistema operativo de los nodos

Por lo general, las opciones de configuración relacionadas con estos elementos no están disponibles para su auditoría o modificación en GKE.

Aún eres responsable de actualizar los nodos que ejecutan tus cargas de trabajo y las cargas de trabajo en sí. Por lo general, puedes auditar y corregir cualquier recomendación para estos componentes.

Capacidad de auditar y corregir

La comparativa de CIS para GKE extrae datos de la comparativa de CIS para Kubernetes existente, pero quita elementos que el usuario no puede configurar ni administrar, y agrega controles adicionales específicos de Google Cloud.

Las secciones de la comparativa de CIS para GKE son las siguientes:

  • Los componentes del plano de control, etcd y la configuración del plano de control (secciones 1, 2 y 3) provienen de la comparativa de CIS para Kubernetes. Por lo general, no se pueden auditar ni corregir en GKE.
  • Los nodos trabajadores (sección 4) provienen de la comparativa de CIS para Kubernetes. Algunos de estos elementos se pueden auditar o corregir en GKE, pero las instrucciones pueden ser diferentes.
  • Las políticas (sección 5) también provienen de la comparativa de CIS para Kubernetes. Por lo general, se aplican directamente a GKE, sin ningún cambio en las instrucciones.
  • Los servicios administrados (sección 6) en la comparativa de CIS para GKE son contenido de red nuevo específico para GKE. En esta sección, se encuentran todas las recomendaciones específicas de los controles de Google Cloud. Estas se pueden auditar y corregir en GKE.

En el caso de los elementos que no se pueden auditar ni corregir en GKE, consulta la sección Valores predeterminados para tener más información sobre el rendimiento de un clúster predeterminado creado en GKE en comparación con la comparativa de CIS para Kubernetes.

Versiones

Ten en cuenta que los números de versión de diferentes comparativas pueden no ser los mismos.

En este documento, se hace referencia a las siguientes versiones:

Versión de Kubernetes Versión de la comparativa de CIS para Kubernetes Versión de la comparativa de CIS para GKE
1.15 1.5.0 1.0.0

Comparativas de CIS para Kubernetes

Accede a la comparativa

La comparativa de CIS para Kubernetes está disponible en el sitio web de CIS.

Niveles de recomendación

En la comparativa de CIS para Kubernetes:

Nivel Descripción
Nivel 1

Se busca que las recomendaciones sean de la siguiente forma:

  • que sean prácticas y prudentes;
  • que proporcionen un beneficio de seguridad claro y
  • que no impidan la utilidad de la tecnología más allá de los medios aceptables.
  • Nivel 2

    Se extiende el perfil del nivel 1.

    Las recomendaciones muestran una o más de las siguientes características:

  • que están diseñadas para entornos o casos prácticos en los que la seguridad es primordial;
  • que actúan como defensa en profundidad, o
  • que pueden impedir de forma negativa la utilidad o el rendimiento de la tecnología.
  • Puntuación de las recomendaciones

    En la comparativa de CIS para Kubernetes:

    Puntuación Descripción
    Con puntuación El incumplimiento de estas recomendaciones disminuirá la puntuación final de la comparativa.
    Sin puntuación El incumplimiento de estas recomendaciones no disminuirá la puntuación final de la comparativa.

    Evaluación en GKE

    Usamos los siguientes valores para especificar el estado de las recomendaciones de Kubernetes en GKE:

    Estado Descripción
    Aprobada Cumple con una recomendación de comparativa.
    Reprobada No cumple con una recomendación de comparativa.
    Control equivalente No cumple con los términos exactos de la recomendación de comparativa, pero existen otros mecanismos en GKE para proporcionar controles de seguridad equivalentes.
    Depende del entorno GKE no configura elementos relacionados con esta recomendación. La configuración del usuario determina si su entorno cumple con una recomendación de comparativa.

    Estado en GKE

    Cuando crees un clúster de GKE nuevo con la versión especificada, así será el rendimiento en comparación con la comparativa de CIS para Kubernetes.

    Estado del clúster de GKE predeterminado:

    # Recomendación Con puntuación/Sin puntuación Nivel Estado predeterminado
    1 Componentes del plano de control
    1.1 Archivos de configuración del nodo de plano de control
    1.1.1 Asegúrate de que los permisos del archivo de especificación del pod del servidor de la API estén configurados en 644 o más restringidos. Con puntuación L1 Pass
    1.1.2 Asegúrate de que la propiedad del archivo de especificación del pod del servidor de la API esté configurada en root:root. Con puntuación L1 Pass
    1.1.3 Asegúrate de que los permisos del archivo de especificación del pod del administrador del controlador estén configurados en 644 o más restringidos. Con puntuación L1 Pass
    1.1.4 Asegúrate de que la propiedad del archivo de especificación del pod del administrador del controlador esté configurada en root:root. Con puntuación L1 Pass
    1.1.5 Asegúrate de que los permisos del archivo de especificación del pod del programador estén configurados en 644 o más restringidos. Con puntuación L1 Pass
    1.1.6 Asegúrate de que la propiedad del archivo de especificación del pod del programador esté configurada en root:root. Con puntuación L1 Pass
    1.1.7 Asegúrate de que los permisos del archivo de especificación del pod de etcd estén configurados en 644 o más restringidos. Con puntuación L1 Pass
    1.1.8 Asegúrate de que la propiedad del archivo de especificación del pod de etcd esté configurada en root:root. Con puntuación L1 Pass
    1.1.9 Asegúrate de que los permisos del archivo de la interfaz de red de los contenedores estén configurados en 644 o más restringidos. Sin puntuación L1 Pass
    1.1.10 Asegúrate de que la propiedad del archivo de la interfaz de red del contenedor esté configurada en root:root. Sin puntuación L1 Pass
    1.1.11 Asegúrate de que los permisos del directorio de datos de etcd estén configurados en 700 o más restringidos. Con puntuación L1 Pass
    1.1.12 Asegúrate de que la propiedad del directorio de datos de etcd esté configurada en etcd:etcd. Con puntuación L1 Aprobada
    1.1.13 Asegúrate de que los permisos del archivo admin.conf estén configurados en 644 o más restringidos. Con puntuación L1 Pass
    1.1.14 Asegúrate de que la propiedad del archivo admin.conf esté configurada en root:root. Con puntuación L1 Pass
    1.1.15 Asegúrate de que los permisos del archivo scheduler.conf estén configurados en 644 o más restringidos. Con puntuación L1 Pass
    1.1.16 Asegúrate de que la propiedad del archivo scheduler.conf esté configurada en root:root. Con puntuación L1 Pass
    1.1.17 Asegúrate de que los permisos del archivo control-manager.conf estén configurados en 644 o más restringidos. Con puntuación L1 Pass
    1.1.18 Asegúrate de que la propiedad del archivo control-manager.conf esté configurada en root:root. Con puntuación L1 Pass
    1.1.19 Asegúrate de que la propiedad del archivo y del directorio de la PKI de Kubernetes esté configurada como root:root. Con puntuación L1 Pass
    1.1.20 Asegúrate de que los permisos del archivo de certificado de la PKI de Kubernetes estén configurados en 644 o más restringidos. Con puntuación L1 Pass
    1.1.21 Asegúrate de que los permisos del archivo de claves de la PKI de Kubernetes estén configurados como 600. Con puntuación L1 Pass
    1.2 Servidor de la API
    1.2.1 Asegúrate de que el argumento --anonymous-auth esté configurado como falso. Sin puntuación L1 Reprobadas
    1.2.2 Asegúrate de que el argumento --basic-auth-file no esté establecido. Con puntuación L1 Pass
    1.2.3 Asegúrate de que el parámetro --token-auth-file no esté establecido. Con puntuación L1 Reprobada
    1.2.4 Asegúrate de que el argumento --kubelet-https esté configurado como verdadero. Con puntuación L1 Pass
    1.2.5 Asegúrate de que los argumentos --kubelet-client-certificate y --kubelet-client-key estén configurados según corresponda. Con puntuación L1 Pass
    1.2.6 Asegúrate de que el argumento --kubelet-certificate-authority esté configurado según corresponda. Con puntuación L1 Pass
    1.2.7 Asegúrate de que el argumento --authorization-mode no esté establecido en AlwaysAllow. Con puntuación L1 Pass
    1.2.8 Asegúrate de que el argumento --authorization-mode incluya Node. Con puntuación L1 Pass
    1.2.9 Asegúrate de que el argumento --authorization-mode incluya RBAC. Con puntuación L1 Pass
    1.2.10 Asegúrate de que el complemento de control de admisión EventRateLimit esté establecido. Sin puntuación L1 Reprobada
    1.2.11 Asegúrate de que el complemento de control de admisión AlwaysAdmit no esté establecido. Con puntuación L1 Pass
    1.2.12 Asegúrate de que el complemento de control de admisión AlwaysPullImages esté establecido. Sin puntuación L1 Reprobadas
    1.2.13 Asegúrate de que el complemento de control de admisión SecurityContextDeny esté establecido si no se usa PodSecurityPolicy. Sin puntuación L1 Reprobada
    1.2.14 Asegúrate de que el complemento de control de admisión ServiceAccount esté establecido. Con puntuación L1 Pass
    1.2.15 Asegúrate de que el complemento de control de admisión NamespaceLifecycle esté establecido. Con puntuación L1 Pass
    1.2.16 Asegúrate de que el complemento de control de admisión PodSecurityPolicy esté establecido. Con puntuación L1 Reprobada
    1.2.17 Asegúrate de que el complemento de control de admisión NodeRestriction esté establecido. Con puntuación L1 Pass
    1.2.18 Asegúrate de que el argumento --insecure-bind-address no esté establecido. Con puntuación L1 Pass
    1.2.19 Asegúrate de que el argumento --insecure-port esté configurado en 0. Con puntuación L1 Pass
    1.2.20 Asegúrate de que el argumento --secure-port no esté configurado en 0. Con puntuación L1 Pass
    1.2.21 Asegúrate de que el argumento --profiling esté configurado como falso. Con puntuación L1 Reprobada
    1.2.22 Asegúrate de que el argumento --audit-log-path esté configurado. Con puntuación L1 Control equivalente
    1.2.23 Asegúrate de que el argumento --audit-log-maxage esté configurado en 30 o según corresponda. Con puntuación L1 Control equivalente
    1.2.24 Asegúrate de que el argumento --audit-log-maxbackup esté configurado como 10 o según corresponda. Con puntuación L1 Control equivalente
    1.2.25 Asegúrate de que el argumento --audit-log-maxsize esté configurado como 100 o según corresponda. Con puntuación L1 Control equivalente
    1.2.26 Asegúrate de que el argumento --request-timeout esté configurado según corresponda. Con puntuación L1 Pass
    1.2.27 Asegúrate de que el argumento --service-account-lookup esté configurado como verdadero. Con puntuación L1 Pass
    1.2.28 Asegúrate de que el argumento --service-account-key-file esté configurado según corresponda. Con puntuación L1 Pass
    1.2.29 Asegúrate de que los argumentos --etcd-certfile y --etcd-keyfile estén configurados según corresponda. Con puntuación L1 Reprobada
    1.2.30 Asegúrate de que los argumentos --tls-cert-file y --tls-private-key-file estén configurados según corresponda. Con puntuación L1 Pass
    1.2.31 Asegúrate de que el argumento --client-ca-file esté configurado según corresponda. Con puntuación L1 Pass
    1.2.32 Asegúrate de que el argumento --etcd-cafile esté configurado según corresponda. Con puntuación L1 Reprobadas
    1.2.33 Asegúrate de que el argumento --encryption-provider-config esté configurado según corresponda. Con puntuación L1 Pass
    1.2.34 Asegúrate de que los proveedores de encriptación estén configurados según corresponda. Con puntuación L1 Reprobada
    1.2.35 Asegúrate de que el servidor de API solo use algoritmos de cifrado criptográficos sólidos. Sin puntuación L1 Pass
    1.3 Administrador del controlador
    1.3.1 Asegúrate de que el argumento --terminated-pod-gc-threshold esté configurado según corresponda. Con puntuación L1 Pass
    1.3.2 Asegúrate de que el argumento --profiling esté configurado como falso. Con puntuación L1 Reprobada
    1.3.3 Asegúrate de que el argumento --use-service-account-credentials esté configurado como verdadero. Con puntuación L1 Reprobada
    1.3.4 Asegúrate de que el argumento --service-account-private-key-file esté configurado según corresponda. Con puntuación L1 Pass
    1.3.5 Asegúrate de que el argumento --root-ca-file esté configurado según corresponda. Con puntuación L1 Pass
    1.3.6 Asegúrate de que el argumento RotateKubeletServerCertificate esté configurado como verdadero. Con puntuación L2 Control equivalente
    1.3.7 Asegúrate de que el argumento --bind-address esté configurado en 127.0.0.1. Con puntuación L1 Pass
    1.4 Programador
    1.4.1 Asegúrate de que el argumento --profiling esté configurado como falso. Con puntuación L1 Reprobada
    1.4.2 Asegúrate de que el argumento --bind-address esté configurado en 127.0.0.1. Con puntuación L1 Pass
    2 etcd
    2.1 Asegúrate de que los argumentos --cert-file y --key-file estén configurados según corresponda. Con puntuación L1 Reprobada
    2.2 Asegúrate de que el argumento --client-cert-auth esté configurado como verdadero. Con puntuación L1 Reprobada
    2.3 Asegúrate de que el argumento --auto-tls no esté configurado como verdadero. Con puntuación L1 Pass
    2.4 Asegúrate de que los argumentos --peer-cert-file y --peer-key-file estén configurados según corresponda. Con puntuación L1 Control equivalente
    2.5 Asegúrate de que el argumento --peer-client-cert-auth esté configurado como verdadero. Con puntuación L1 Control equivalente
    2.6 Asegúrate de que el argumento --peer-auto-tls no esté configurado como verdadero. Con puntuación L1 Control equivalente
    2.7 Asegúrate de usar una autoridad certificada única para etcd. Sin puntuación L2 Pass
    3 Configuración del plano de control
    3.1 Autenticación y autorización
    3.1.1 La autenticación del certificado de cliente no se debe usar para los usuarios. Sin puntuación L2 Pass
    3.2 Logging
    3.2.1 Asegúrate de crear una política de auditoría mínima. Con puntuación L1 Pass
    3.2.2 Asegúrate de que la política de auditoría abarque los problemas de seguridad clave. Sin puntuación L2 Aprobada
    4 Nodos trabajadores
    4.1 Archivos de configuración del nodo trabajador
    4.1.1 Asegúrate de que los permisos del archivo de servicio de kubelet estén configurados en 644 o más restringidos. Con puntuación L1 Pass
    4.1.2 Asegúrate de que la propiedad del archivo de servicio de kubelet esté configurada en root:root. Con puntuación L1 Pass
    4.1.3 Asegúrate de que los permisos del archivo kubeconfig del proxy estén configurados en 644 o más restringidos. Con puntuación L1 Pass
    4.1.4 Asegúrate de que la propiedad del archivo kubeconfig del proxy esté configurada en root:root. Con puntuación L1 Pass
    4.1.5 Asegúrate de que los permisos del archivo kubelet.conf estén configurados en 644 o más restringidos. Con puntuación L1 Pass
    4.1.6 Asegúrate de que la propiedad del archivo kubelet.conf esté configurada en root:root. Con puntuación L1 Pass
    4.1.7 Asegúrate de que los permisos del archivo de autoridades certificadas estén configurados en 644 o más restringidos. Con puntuación L1 Pass
    4.1.8 Asegúrate de que la propiedad del archivo de autoridades certificadas del cliente esté configurada en root:root. Con puntuación L1 Pass
    4.1.9 Asegúrate de que el archivo de configuración de kubelet tenga permisos establecidos en 644 o más restringidos. Con puntuación L1 Pass
    4.1.10 Asegúrate de que la propiedad del archivo de configuración de kubelet esté establecida en root:root. Con puntuación L1 Pass
    4.2 Kubelet
    4.2.1 Asegúrate de que el argumento --anonymous-auth esté configurado como falso. Con puntuación L1 Pass
    4.2.2 Asegúrate de que el argumento --authorization-mode no esté establecido en AlwaysAllow. Con puntuación L1 Pass
    4.2.3 Asegúrate de que el argumento --client-ca-file esté configurado según corresponda. Con puntuación L1 Pass
    4.2.4 Asegúrate de que el argumento --read-only-port esté configurado en 0. Con puntuación L1 Reprobadas
    4.2.5 Asegúrate de que el argumento --streaming-connection-idle-timeout no esté configurado en 0. Con puntuación L1 Pass
    4.2.6 Asegúrate de que el argumento --protect-kernel-defaults esté configurado como verdadero. Con puntuación L1 Reprobadas
    4.2.7 Asegúrate de que el argumento --make-iptables-util-chains esté configurado como verdadero. Con puntuación L1 Pass
    4.2.8 Asegúrate de que el argumento --hostname-override no esté configurado. Sin puntuación L1 Pass
    4.2.9 Asegúrate de que el argumento --event-qps esté configurado en 0 o en un nivel que garantice la captura de eventos adecuada. Sin puntuación L2 Reprobadas
    4.2.10 Asegúrate de que los argumentos --tls-cert-file y --tls-private-key-file estén configurados según corresponda. Con puntuación L1 Control equivalente
    4.2.11 Asegúrate de que el argumento --rotate-certificates no esté configurado como falso. Con puntuación L1 Control equivalente
    4.2.12 Asegúrate de que el argumento RotateKubeletServerCertificate esté configurado como verdadero. Con puntuación L1 Control equivalente
    4.2.13 Asegúrate de que Kubelet solo use algoritmos de cifrado criptográficos sólidos. Sin puntuación L1 Reprobado
    5 Políticas
    5.1 RBAC y cuentas de servicio
    5.1.1 Asegúrate de que la función de administrador de clústeres solo se use en los casos en que sea necesaria. Sin puntuación L1 Depende del entorno
    5.1.2 Minimiza el acceso a los secretos. Sin puntuación L1 Depende del entorno
    5.1.3 Minimiza el uso de comodines en las funciones y en ClusterRoles. Sin puntuación L1 Depende del entorno
    5.1.4 Minimiza el acceso para crear pods. Sin puntuación L1 Depende del entorno
    5.1.5 Asegúrate de que las cuentas de servicio predeterminadas no se usen de forma activa. Con puntuación L1 Depende del entorno
    5.1.6 Asegúrate de que los tokens de la cuenta de servicio solo se activen cuando sea necesario. Sin puntuación L1 Depende del entorno
    5.2 Políticas de seguridad de los pods
    5.2.1 Minimiza la admisión de contenedores privilegiados. Sin puntuación L1 Depende del entorno
    5.2.2 Minimiza la admisión de contenedores con la intención de compartir el espacio de nombres del ID de proceso del host. Con puntuación L1 Depende del entorno
    5.2.3 Minimiza la admisión de contenedores con la intención de compartir el espacio de nombres de IPC del host. Con puntuación L1 Depende del entorno
    5.2.4 Minimiza la admisión de contenedores con la intención de compartir el espacio de nombres de la red host. Con puntuación L1 Depende del entorno
    5.2.5 Minimiza la admisión de contenedores con allowPrivilegeEscalation. Con puntuación L1 Depende del entorno
    5.2.6 Minimiza la admisión de contenedores raíz. Sin puntuación L2 Depende del entorno
    5.2.7 Minimiza la admisión de contenedores mediante la capacidad NET_RAW. Sin puntuación L1 Depende del entorno
    5.2.8 Minimiza la admisión de contenedores con capacidades adicionales. Sin puntuación L1 Depende del entorno
    5.2.9 Minimiza la admisión de contenedores con capacidades asignadas. Sin puntuación L2 Depende del entorno
    5.3 Políticas de red y CNI
    5.3.1 Asegúrate de que la CNI en uso admita políticas de red. Sin puntuación L1 Aprobada
    5.3.2 Asegúrate de que todos los espacios de nombres tengan políticas de red definidas. Con puntuación L2 Depende del entorno
    5.4 Administración de secretos
    5.4.1 Prefiere el uso de secretos como archivos en lugar de secretos como variables de entorno. Sin puntuación L1 Depende del entorno
    5.4.2 Considera el almacenamiento secreto externo. Sin puntuación L2 Depende del entorno
    5.5 Control de admisión extensible
    5.5.1 Configura la procedencia de la imagen mediante el controlador de admisión ImagePolicyWebhook. Sin puntuación L2 Depende del entorno
    5.6 Políticas generales
    5.6.1 Crea límites administrativos entre los recursos que usan espacios de nombres. Sin puntuación L1 Depende del entorno
    5.6.2 Asegúrate de que el perfil de seccomp esté configurado como docker/default en las definiciones de pod. Sin puntuación L2 Depende del entorno
    5.6.3 Aplica el contexto de seguridad a tus pods y contenedores. Sin puntuación L2 Depende del entorno
    5.6.4 No se debe usar el espacio de nombres predeterminado. Con puntuación L2 Depende del entorno

    Valores predeterminados en GKE

    Cuando el valor predeterminado de un clúster de GKE nuevo no pasa una recomendación de la comparativa de CIS para Kubernetes, estos son los valores predeterminados que se usan en GKE con una explicación. Algunas de estas recomendaciones se pueden corregir mediante los procedimientos de corrección establecidos en la comparativa de CIS para GKE. Los elementos que se pueden auditar de forma automática se marcan con puntuación en la comparativa de CIS para GKE.

    Valores predeterminados para las recomendaciones que fallan o dependen del entorno en un clúster de GKE predeterminado:

    # Recomendación Con puntuación/Sin puntuación
    en la comparativa de CIS para Kubernetes
    Nivel Estado predeterminado Valor predeterminado Justificación Con puntuación/Sin puntuación
    en la comparativa de CIS para GKE
    1 Componentes del plano de control
    1.2 Servidor de la API
    1.2.1 Asegúrate de que el argumento --anonymous-auth esté configurado como falso. Sin puntuación L1 Reprobada true Algunos componentes de supervisión de GKE usan autenticación anónima para obtener métricas. Aunque GKE permite la autenticación anónima para kubelet, la exposición es idéntica al puerto de solo lectura, ya que GKE inhabilita los controladores de depuración adicionales. Sin puntuación
    1.2.3 Asegúrate de que el parámetro --token-auth-file no esté establecido. Con puntuación L1 Reprobada Establecida Algunos componentes del plano de control se inician mediante tokens estáticos que luego se usan para autenticarse en el servidor de la API. Sin puntuación
    1.2.10 Asegúrate de que el complemento de control de admisión EventRateLimit esté establecido. Sin puntuación L1 Reprobada Sin establecer GKE no admite el controlador de admisión del límite de frecuencia de eventos, ya que es una función Alfa de Kubernetes. Sin puntuación
    1.2.12 Asegúrate de que el complemento de control de admisión AlwaysPullImages esté establecido. Sin puntuación L1 Reprobada Sin establecer El controlador de admisión AlwaysPullImages 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 contenedores en un punto único de fallo para crear pods nuevos en todo el clúster. GKE no habilita el controlador de admisión AlwaysPullImages, lo que permite a los administradores del clúster implementar una política de admisión para mantener esta compensación por su cuenta. Sin puntuación
    1.2.13 Asegúrate de que el complemento de control de admisión SecurityContextDeny esté establecido si no se usa PodSecurityPolicy. Sin puntuación L1 Reprobada Sin establecer GKE no habilita el controlador de admisión de contexto de seguridad de forma predeterminada. El uso de una política de seguridad de pods permite un mayor control y es preferible. Sin puntuación
    1.2.16 Asegúrate de que el complemento de control de admisión PodSecurityPolicy esté establecido. Con puntuación L1 Reprobada Sin establecer GKE no habilita el controlador de admisión de la política de seguridad del pod de forma predeterminada, ya que esto requiere que se configure una política. Los clientes de GKE pueden habilitar PodSecurityPolicy. Sin puntuación; consulta también 6.10.3
    1.2.21 Asegúrate de que el argumento --profiling esté configurado como falso. Con puntuación L1 Reprobada Sin establecer GKE usa la generación de perfiles para la depuración. Sin puntuación
    1.2.22 Asegúrate de que el argumento --audit-log-path esté configurado. Con puntuación L1 Control equivalente Sin establecer GKE captura los registros de auditoría, pero no usa estas marcas para la auditoría. Consulta la política de auditoría de GKE para obtener más detalles. Sin puntuación
    1.2.23 Asegúrate de que el argumento --audit-log-maxage esté configurado en 30 o según corresponda. Con puntuación L1 Control equivalente Sin establecer GKE captura los registros de auditoría, pero no usa estas marcas para la auditoría. Consulta la política de auditoría de GKE para obtener más detalles. Sin puntuación
    1.2.24 Asegúrate de que el argumento --audit-log-maxbackup esté configurado como 10 o según corresponda. Con puntuación L1 Control equivalente Sin establecer GKE captura los registros de auditoría, pero no usa estas marcas para la auditoría. Consulta la política de auditoría de GKE para obtener más detalles. Sin puntuación
    1.2.25 Asegúrate de que el argumento --audit-log-maxsize esté configurado como 100 o según corresponda. Con puntuación L1 Control equivalente Sin establecer GKE captura los registros de auditoría, pero no usa estas marcas para la auditoría. Consulta la política de auditoría de GKE para obtener más detalles. Sin puntuación
    1.2.29 Asegúrate de que los argumentos --etcd-certfile y --etcd-keyfile estén configurados según corresponda. Con puntuación L1 Reprobada Sin establecer En la actualidad, GKE no usa mTLS para proteger las conexiones entre el servidor de la API y etcd. Ten en cuenta que etcd escucha en localhost. Consulta Confianza del clúster para obtener más detalles. Sin puntuación
    1.2.32 Asegúrate de que el argumento --etcd-cafile esté configurado según corresponda. Con puntuación L1 Reprobada Sin establecer En la actualidad, GKE no usa mTLS para proteger las conexiones entre el servidor de la API y etcd. Ten en cuenta que etcd escucha en localhost. Consulta Confianza del clúster para obtener más detalles. Sin puntuación
    1.2.34 Asegúrate de que los proveedores de encriptación estén configurados según corresponda. Con puntuación L1 Reprobadas identity GKE encripta el contenido del cliente en reposo de forma predeterminada. Para encriptar aún más los secretos, usa la encriptación de secretos de la capa de la aplicación. Sin puntuación; consulta también 6.3.1
    1.3 Administrador del controlador
    1.3.2 Asegúrate de que el argumento --profiling esté configurado como falso. Con puntuación L1 Reprobada true GKE usa la generación de perfiles para la depuración. Sin puntuación
    1.3.6 Asegúrate de que el argumento RotateKubeletServerCertificate esté configurado como verdadero. Con puntuación L2 Control equivalente false GKE rota los certificados de kubelet, pero no usa esta marca. Sin puntuación
    1.4 Programador
    1.4.1 Asegúrate de que el argumento --profiling esté configurado como falso. Con puntuación L1 Reprobada true GKE usa la generación de perfiles para la depuración. Sin puntuación
    2 etcd
    2.1 Asegúrate de que los argumentos --cert-file y --key-file estén configurados según corresponda. Con puntuación L1 Reprobada Sin establecer En la actualidad, GKE no usa mTLS para proteger las conexiones entre el servidor de la API y etcd. Ten en cuenta que etcd escucha en localhost. Consulta Confianza del clúster para obtener más detalles. Sin puntuación
    2.2 Asegúrate de que el argumento --client-cert-auth esté configurado como verdadero. Con puntuación L1 Reprobada Sin establecer En la actualidad, GKE no usa mTLS para proteger las conexiones entre el servidor de la API y etcd. Ten en cuenta que etcd escucha en localhost. Consulta Confianza del clúster para obtener más detalles. Sin puntuación
    2.4 Asegúrate de que los argumentos --peer-cert-file y --peer-key-file estén configurados según corresponda. Con puntuación L1 Control equivalente Sin establecer GKE usa mTLS para el intercambio de tráfico entre instancias de etcd. Estas marcas se usan para clústeres regionales, pero no zonales, ya que solo hay una instancia de etcd en un clúster zonal. Consulta Confianza del clúster para obtener más detalles. Sin puntuación
    2.5 Asegúrate de que el argumento --peer-client-cert-auth esté configurado como verdadero. Con puntuación L1 Control equivalente Sin establecer GKE usa mTLS para el intercambio de tráfico entre instancias de etcd. Estas marcas se usan para clústeres regionales, pero no zonales, ya que solo hay una instancia de etcd en un clúster zonal. Consulta Confianza del clúster para obtener más detalles. Sin puntuación
    2.6 Asegúrate de que el argumento --peer-auto-tls no esté configurado como verdadero. Con puntuación L1 Control equivalente Sin establecer GKE usa mTLS para el intercambio de tráfico entre instancias de etcd. Estas marcas se usan para clústeres regionales, pero no zonales, ya que solo hay una instancia de etcd en un clúster zonal. Consulta Confianza del clúster para obtener más detalles. Sin puntuación
    4 Nodos trabajadores
    4.2 Kubelet
    4.2.4 Asegúrate de que el argumento --read-only-port esté configurado en 0. Con puntuación L1 Reprobada 10255 Algunos componentes de supervisión de GKE usan el puerto de solo lectura de kubelet para obtener métricas. Con puntuación
    4.2.6 Asegúrate de que el argumento --protect-kernel-defaults esté configurado como verdadero. Con puntuación L1 Reprobada false GKE no protege los valores predeterminados del kernel desde Kubernetes, ya que las cargas de trabajo del cliente podrían querer modificarlos. Con puntuación
    4.2.9 Asegúrate de que el argumento --event-qps esté configurado en 0 o en un nivel que garantice la captura de eventos adecuada. Sin puntuación L2 Reprobada 5 Los eventos son objetos de Kubernetes almacenados en etcd. Para evitar demasiados etcd, solo se conservan durante una hora y no son un mecanismo de auditoría de seguridad adecuado. Permitir eventos ilimitados como se sugiere en este control expone al clúster al riesgo de DoS innecesario y contradice la recomendación de usar la admisión EventRateLimits. Los eventos relevantes para la seguridad que necesitan almacenamiento permanente deben enviarse a los registros. Con puntuación
    4.2.10 Asegúrate de que los argumentos --tls-cert-file y --tls-private-key-file estén configurados según corresponda. Con puntuación L1 Control equivalente Sin establecer GKE usa mTLS para el tráfico de kubelet al servidor de la API. GKE usa TLS para el tráfico del servidor de la API a Kubelet, que se autentica para los clústeres de GKE v1.12+. GKE no usa estas marcas, sino que se especifica en el archivo de configuración de kubelet. Consulta Confianza del clúster para obtener más detalles. Con puntuación
    4.2.11 Asegúrate de que el argumento --rotate-certificates no esté configurado como falso. Con puntuación L1 Control equivalente Sin establecer GKE rota los certificados de servidor para los clústeres de GKE v1.12+. GKE no usa estas marcas, sino que se especifica en el archivo de configuración de kubelet. GKE no rota los certificados de cliente, a menos que los nodos de GKE protegidos estén habilitados. En este caso, GKE no usa estas marcas, pero ejecuta un proceso diferente para la rotación de certificados. Consulta Confianza del clúster para obtener más detalles. Con puntuación
    4.2.12 Asegúrate de que el argumento RotateKubeletServerCertificate esté configurado como verdadero. Con puntuación L1 Control equivalente Sin establecer GKE rota los certificados de servidor para los clústeres de GKE v1.12+. GKE no usa estas marcas, sino que se especifica en el archivo de configuración de kubelet. Consulta Confianza del clúster para obtener más detalles. Puntuados
    4.2.13 Asegúrate de que el kubelet solo use algoritmos de cifrado criptográficos sólidos Sin puntuación Reprobado Sin establecer GKE usa el conjunto predeterminado de algoritmos de cifrado permitidos de golang, que los expertos en criptografía de golang consideran seguro de usar y que también es la opción predeterminada para Kubernetes. Sin puntuación
    5 Políticas
    5.1 RBAC y cuentas de servicio
    5.1.1 Asegúrate de que la función de administrador de clústeres solo se use en los casos en que sea necesaria. Sin puntuación L1 Depende del entorno N/A Sin puntuación
    5.1.2 Minimiza el acceso a los secretos. Sin puntuación L1 Depende del entorno N/A Sin puntuación
    5.1.3 Minimiza el uso de comodines en las funciones y en ClusterRoles. Sin puntuación L1 Depende del entorno N/A Sin puntuación
    5.1.4 Minimiza el acceso para crear pods. Sin puntuación L1 Depende del entorno N/A Sin puntuación
    5.1.5 Asegúrate de que las cuentas de servicio predeterminadas no se usen de forma activa. Con puntuación L1 Depende del entorno N/A Con puntuación
    5.1.6 Asegúrate de que los tokens de la cuenta de servicio solo se activen cuando sea necesario. Sin puntuación L1 Depende del entorno N/A Sin puntuación
    5.2 Políticas de seguridad de los pods
    5.2.1 Minimiza la admisión de contenedores privilegiados. Sin puntuación L1 Depende del entorno N/A La política de seguridad de pods no está establecida de forma predeterminada. Con puntuación
    5.2.2 Minimiza la admisión de contenedores con la intención de compartir el espacio de nombres del ID de proceso del host. Con puntuación L1 Depende del entorno N/A La política de seguridad de pods no está establecida de forma predeterminada. Con puntuación
    5.2.3 Minimiza la admisión de contenedores con la intención de compartir el espacio de nombres de IPC del host. Con puntuación L1 Depende del entorno N/A La política de seguridad de pods no está establecida de forma predeterminada. Con puntuación
    5.2.4 Minimiza la admisión de contenedores con la intención de compartir el espacio de nombres de la red host. Con puntuación L1 Depende del entorno N/A La política de seguridad de pods no está establecida de forma predeterminada. Con puntuación
    5.2.5 Minimiza la admisión de contenedores con allowPrivilegeEscalation. Con puntuación L1 Depende del entorno N/A La política de seguridad de pods no está establecida de forma predeterminada. Con puntuación
    5.2.6 Minimiza la admisión de contenedores raíz. Sin puntuación L2 Depende del entorno N/A La política de seguridad de pods no está establecida de forma predeterminada. Con puntuación
    5.2.7 Minimiza la admisión de contenedores mediante la capacidad NET_RAW. Sin puntuación L1 Depende del entorno N/A La política de seguridad de pods no está establecida de forma predeterminada. Con puntuación
    5.2.8 Minimiza la admisión de contenedores con capacidades adicionales. Sin puntuación L1 Depende del entorno N/A La política de seguridad de pods no está establecida de forma predeterminada. Con puntuación
    5.2.9 Minimiza la admisión de contenedores con capacidades asignadas. Sin puntuación L2 Depende del entorno N/A La política de seguridad de pods no está establecida de forma predeterminada. Con puntuación
    5.3 Políticas de red y CNI
    5.3.2 Asegúrate de que todos los espacios de nombres tengan políticas de red definidas. Con puntuación L2 Depende del entorno N/A Con puntuación
    5.4 Administración de secretos
    5.4.1 Prefiere el uso de secretos como archivos en lugar de secretos como variables de entorno. Sin puntuación L1 Depende del entorno N/A Sin puntuación
    5.4.2 Considera el almacenamiento secreto externo. Sin puntuación L2 Depende del entorno N/A Sin puntuación
    5.5 Control de admisión extensible
    5.5.1 Configura la procedencia de la imagen mediante el controlador de admisión ImagePolicyWebhook. Sin puntuación L2 Depende del entorno Sin habilitar GKE no habilita el controlador de admisión de webhook de la política de imágenes de forma predeterminada. La procedencia de la imagen mediante la autorización binaria no está establecida de forma predeterminada, ya que esto requiere que se establezca una política. Sin puntuación; consulta también 6.10.5
    5.6 Políticas generales
    5.6.1 Crea límites administrativos entre los recursos que usan espacios de nombres. Sin puntuación L1 Depende del entorno N/A Sin puntuación
    5.6.2 Asegúrate de que el perfil de seccomp esté configurado como docker/default en las definiciones de pod. Sin puntuación L2 Depende del entorno N/A Se establece seccomp de forma predeterminada. Sin puntuación
    5.6.3 Aplica el contexto de seguridad a tus pods y contenedores. Sin puntuación L2 Depende del entorno N/A No existe un contexto de seguridad establecido de forma predeterminada. Sin puntuación
    5.6.4 No se debe usar el espacio de nombres predeterminado. Con puntuación L2 Depende del entorno N/A Con puntuación

    Comparativa de CIS para GKE

    Accede a la comparativa

    La comparativa de CIS para GKE está disponible en el sitio web de CIS:

    Niveles de recomendación

    En la comparativa de CIS para GKE:

    Nivel Descripción
    Nivel 1

    Las recomendaciones están diseñadas para que se apliquen de manera amplia. Deben aplicarse a casi todos los entornos.

    Nivel 2

    Las recomendaciones dan como resultado un entorno de seguridad más estricto, pero no son aplicables en todos los casos. Es posible que tengan un impacto en el rendimiento o que no se puedan aplicar en conjunto con otras recomendaciones. Debes evaluarlas para tu entorno antes de aplicarlas.

    En algunos casos, por ejemplo, con las cargas de trabajo de multiusuario, estas recomendaciones pueden ser más relevantes.

    Puntuación de las recomendaciones

    En la comparativa de CIS para GKE:

    Puntuación Descripción
    Con puntuación

    Las recomendaciones se prueban con facilidad mediante un método automatizado y tienen un valor que se puede evaluar de forma definitiva.

    Estas recomendaciones solo incluyen productos o funciones con disponibilidad general.

    Sin puntuación

    Las recomendaciones no se pueden evaluar con facilidad mediante la automatización o requieren evaluación a fin de determinar la implementación exacta adecuada para tu carga de trabajo. Estas recomendaciones pueden usar funciones o productos beta.

    Por ejemplo, la política de seguridad de pods requiere el uso de una política específica para tu carga de trabajo y es una función Beta, por lo que no tiene puntuación.

    Evaluación en GKE

    Para las recomendaciones específicas de GKE (sección 6), dado que todas estas opciones se pueden configurar para que sean aprobadas en tu entorno, usamos los siguientes valores a fin de especificar los valores predeterminados:

    Estado Descripción
    Predeterminada Un clúster nuevo cumple con una recomendación de comparativa de forma predeterminada.
    No predeterminada Un clúster nuevo no cumple con una recomendación de comparativa de forma predeterminada.
    Depende del entorno GKE no configura elementos relacionados con esta recomendación. La configuración del usuario determina si su entorno cumple con una recomendación de comparativa.

    Valores predeterminados en GKE

    Cuando crees un clúster de GKE nuevo con la versión especificada, así será el rendimiento en comparación con la comparativa de CIS para Kubernetes.

    Estado del clúster de GKE predeterminado:

    # Recomendación Con puntuación/Sin puntuación Nivel Estado predeterminado
    6 Servicios administrados
    6.1 Registro de imágenes y análisis de imágenes
    6.1.1 Garantiza el análisis de vulnerabilidades de imágenes mediante Container Analysis de GCR o un proveedor de terceros. Con puntuación L1 No predeterminada
    6.1.2 Minimiza el acceso de los usuarios a GCR. Con puntuación L1 Depende del entorno
    6.1.3 Minimiza el acceso del clúster a solo lectura para GCR. Con puntuación L1 No predeterminada
    6.1.4 Minimiza los registros de contenedores solo para los aprobados. Sin puntuación L2 No predeterminada
    6.2 Administración de identidades y accesos (IAM)
    6.2.1 Se refiere no ejecutar clústeres de GKE mediante una cuenta de servicio predeterminada de Compute Engine. Con puntuación L2 No predeterminada
    6.2.2 Prefiere usar cuentas de servicio de Google Cloud y Workload Identity dedicadas Sin puntuación L1 No predeterminada
    6.3 Cloud Key Management Service (Cloud KMS)
    6.3.1 Considera encriptar secretos de Kubernetes mediante claves administradas en Cloud KMS. Con puntuación L1 No predeterminada
    6.4 Metadatos del nodo
    6.4.1 Asegúrate de que las API de metadatos de instancias de Compute Engine heredadas estén inhabilitadas. Con puntuación L1 Predeterminada
    6.4.2 Asegúrate de que el servidor de metadatos de GKE esté habilitado. Sin puntuación L2 No predeterminada
    6.5 Configuración y mantenimiento de nodos
    6.5.1 Asegúrate de que Container-Optimized OS (COS) se use para las imágenes del nodo de GKE. Con puntuación L2 Predeterminada
    6.5.2 Asegúrate de que la reparación automática de nodos esté habilitada para los nodos de GKE. Con puntuación L1 Predeterminada
    6.5.3 Asegúrate de que la actualización automática de nodos esté habilitada para nodos de GKE. Con puntuación L1 Predeterminada
    6.5.4 Considera la posibilidad de automatizar la administración de versiones de GKE mediante canales de versiones. Sin puntuación L1 No predeterminada
    6.5.5 Asegúrate de que los nodos de GKE protegidos estén habilitados. Sin puntuación L1 No predeterminada
    6.5.6 Asegúrate de que la supervisión de integridad para los nodos de GKE protegidos esté habilitada. Sin puntuación L1 No predeterminada
    6.5.7 Asegúrate de que el inicio seguro para nodos de GKE protegidos esté habilitado. Sin puntuación L2 No predeterminada
    6.6 Herramientas de redes de clústeres
    6.6.1 Considera habilitar los registros de flujo de VPC y la visibilidad dentro de los nodos. Sin puntuación L2 No predeterminada
    6.6.2 Se prefieren clústeres nativos de la VPC. Con puntuación L1 No predeterminada
    6.6.3 Asegúrate de que las redes autorizadas de la instancia principal estén habilitadas. Con puntuación L1 No predeterminada
    6.6.4 Asegúrate de que los clústeres se creen con el extremo privado habilitado y el acceso público inhabilitado. Con puntuación L2 No predeterminada
    6.6.5 Asegúrate de que los clústeres se creen con nodos privados. Con puntuación L1 No predeterminada
    6.6.6 Considera usar firewalls en los nodos trabajadores de GKE. Sin puntuación L1 No predeterminada
    6.6.7 Asegúrate de que la política de red esté habilitada y configurada según corresponda. Sin puntuación L1 No predeterminada
    6.6.8 Considera usar certificados SSL administrados por Google. Sin puntuación L2 Depende del entorno
    6.7 Logging
    6.7.1 Asegúrate de que Stackdriver Kubernetes Logging y Monitoring estén habilitados. Con puntuación L1 Predeterminada
    6.7.2 Considera habilitar el registro de auditoría de Linux. Sin puntuación L2 No predeterminada
    6.8 Autenticación y autorización
    6.8.1 Asegúrate de que la autenticación básica mediante contraseñas estáticas esté inhabilitada. Con puntuación L1 Predeterminada
    6.8.2 Asegúrate de que la autenticación mediante certificados de cliente esté inhabilitada. Con puntuación L1 Predeterminada
    6.8.3 Considera administrar usuarios de RBAC de Kubernetes mediante Grupos de Google para RBAC. Sin puntuación L2 No predeterminada
    6.8.4 Asegúrate de que la autorización heredada (ABAC) esté inhabilitada. Con puntuación L1 Predeterminada
    6.9 Almacenamiento
    6.9.1 Considera habilitar las claves de encriptación administradas por el cliente (CMEK) para los discos persistentes (PD) de GKE. Sin puntuación L1 No predeterminada
    6.10 Otras opciones de configuración de clúster
    6.10.1 Asegúrate de que la IU web de Kubernetes esté inhabilitada. Con puntuación L1 Predeterminada
    6.10.2 Asegúrate de que los clústeres Alfa no se usen para cargas de trabajo de producción. Con puntuación L1 Predeterminada
    6.10.3 Asegúrate de que la política de seguridad de pods esté habilitada y configurada según corresponda. Sin puntuación L1 No predeterminada
    6.10.4 Considera usar GKE Sandbox para ejecutar cargas de trabajo no confiables. Sin puntuación L2 No predeterminada
    6.10.5 Se prefiere habilitar la autorización binaria y configurar la política según corresponda. Sin puntuación L2 No predeterminada
    6.10.6 Se prefiere habilitar Cloud Security Command Center (Cloud SCC). Sin puntuación L1 No predeterminada

    Cómo auditar comparativas

    Las instrucciones específicas para auditar cada recomendación están disponibles como parte de la comparativa de CIS relevante. Sin embargo, es posible que desees automatizar algunas de estas verificaciones para simplificar la verificación de estos controles en tu entorno. Las herramientas que se indican a continuación pueden ayudarte.

    Ten en cuenta que esto no te permite auditar las recomendaciones de la comparativa de CIS para Kubernetes que no se pueden auditar en GKE. Para los componentes que no puedes auditar directamente, consulta Valores predeterminados a fin de comprender cómo GKE ya configuró tu entorno.

    Auditoría automatizada de la comparativa de CIS en Kubernetes

    Puedes usar una herramienta de código abierto kube-bench a fin de probar la configuración de tu clúster con la CIS Benchmark para Kubernetes. Ten en cuenta que no podrás ejecutar las pruebas kube-bench master en tus cargas de trabajo de GKE, ya que no tienes acceso directo al nodo del plano de control y solo podrás ejecutar las pruebas kube-bench node.

    Asegúrate de especificar la versión adecuada. Por ejemplo:

    kube-bench node --benchmark cis-1.5
    

    Auditoría automatizada de la comparativa de CIS para GKE

    Las estadísticas del estado de la seguridad identifican opciones de configuración incorrectas comunes en tu entorno, como firewalls abiertos o depósitos públicos. Esto incluye las recomendaciones de seguridad de GKE. Si habilitas las estadísticas del estado de seguridad, recibirás una notificación sobre las opciones de configuración incorrectas del clúster que puedes tener en Cloud Security Command Center.

    Muchas de las recomendaciones del nivel 1 se tratan en los resultados correspondientes de las estadísticas del estado de seguridad.

    # Recomendación Con puntuación/Sin puntuación Nivel Resultados de las estadísticas del estado de seguridad
    6.1 Registro de imágenes y análisis de imágenes
    6.1.1 Garantiza el análisis de vulnerabilidades de imágenes mediante Container Analysis de GCR o un proveedor de terceros. Con puntuación L1 N/A
    6.1.2 Minimiza el acceso de los usuarios a GCR. Con puntuación L1 N/A
    6.1.3 Minimiza el acceso del clúster a solo lectura para GCR. Con puntuación L1 N/A
    6.1.4 Minimiza los registros de contenedores solo para los aprobados. Sin puntuación L2 N/A
    6.2 Administración de identidades y accesos (IAM)
    6.2.1 Se refiere no ejecutar clústeres de GKE mediante una cuenta de servicio predeterminada de Compute Engine. Con puntuación L2 OVER_PRIVILEGED_ACCOUNT y OVER_PRIVILEGED_SCOPES
    6.2.2 Prefiere usar cuentas de servicio de Google Cloud y Workload Identity dedicadas Sin puntuación L1 WORKLOAD_IDENTITY_DISABLED
    6.3 Cloud Key Management Service (Cloud KMS)
    6.3.1 Considera encriptar secretos de Kubernetes mediante claves administradas en Cloud KMS. Con puntuación L1 N/A
    6.4 Metadatos del nodo
    6.4.1 Asegúrate de que las API de metadatos de instancias de Compute Engine heredadas estén inhabilitadas. Con puntuación L1 LEGACY_METADATA_ENABLED
    6.4.2 Asegúrate de que el servidor de metadatos de GKE esté habilitado. Sin puntuación L2 N/A
    6.5 Configuración y mantenimiento de nodos
    6.5.1 Asegúrate de que Container-Optimized OS (COS) se use para las imágenes del nodo de GKE. Con puntuación L2 COS_NOT_USED
    6.5.2 Asegúrate de que la reparación automática de nodos esté habilitada para los nodos de GKE. Con puntuación L1 AUTO_REPAIR_DISABLED
    6.5.3 Asegúrate de que la actualización automática de nodos esté habilitada para nodos de GKE. Con puntuación L1 AUTO_UPGRADE_DISABLED
    6.5.4 Considera la posibilidad de automatizar la administración de versiones de GKE mediante canales de versiones. Sin puntuación L1 N/A
    6.5.5 Asegúrate de que los nodos de GKE protegidos estén habilitados. Sin puntuación L1 N/A
    6.5.6 Asegúrate de que la supervisión de integridad para los nodos de GKE protegidos esté habilitada. Sin puntuación L1 N/A
    6.5.7 Asegúrate de que el inicio seguro para nodos de GKE protegidos esté habilitado. Sin puntuación L2 N/A
    6.6 Herramientas de redes de clústeres
    6.6.1 Considera habilitar los registros de flujo de VPC y la visibilidad dentro de los nodos. Sin puntuación L2 FLOW_LOGS_DISABLED
    6.6.2 Se prefieren clústeres nativos de la VPC. Con puntuación L1 IP_ALIAS_DISABLED
    6.6.3 Asegúrate de que las redes autorizadas de la instancia principal estén habilitadas. Con puntuación L1 MASTER_AUTHORIZED_NETWORKS_DISABLED
    6.6.4 Asegúrate de que los clústeres se creen con el extremo privado habilitado y el acceso público inhabilitado. Con puntuación L2 N/A
    6.6.5 Asegúrate de que los clústeres se creen con nodos privados. Con puntuación L1 PRIVATE_CLUSTER_DISABLED
    6.6.6 Considera usar firewalls en los nodos trabajadores de GKE. Sin puntuación L1 N/A
    6.6.7 Asegúrate de que la política de red esté habilitada y configurada según corresponda. Sin puntuación L1 NETWORK_POLICY_DISABLED
    6.6.8 Considera usar certificados SSL administrados por Google. Sin puntuación L2 N/A
    6.7 Logging
    6.7.1 Asegúrate de que Stackdriver Kubernetes Logging y Monitoring estén habilitados. Con puntuación L1 CLUSTER_LOGGING_DISABLED y CLUSTER_MONITORING_DISABLED
    6.7.2 Considera habilitar el registro de auditoría de Linux. Sin puntuación L2 N/A
    6.8 Autenticación y autorización
    6.8.1 Asegúrate de que la autenticación básica mediante contraseñas estáticas esté inhabilitada. Con puntuación L1 N/A
    6.8.2 Asegúrate de que la autenticación mediante certificados de cliente esté inhabilitada. Con puntuación L1 N/A
    6.8.3 Considera administrar usuarios de RBAC de Kubernetes mediante Grupos de Google para RBAC. Sin puntuación L2 N/A
    6.8.4 Asegúrate de que la autorización heredada (ABAC) esté inhabilitada. Con puntuación L1 LEGACY_AUTHORIZATION_ENABLED
    6.9 Almacenamiento
    6.9.1 Considera habilitar las claves de encriptación administradas por el cliente (CMEK) para los discos persistentes (PD) de GKE. Sin puntuación L1 N/A
    6.10 Otras opciones de configuración de clúster
    6.10.1 Asegúrate de que la IU web de Kubernetes esté inhabilitada. Con puntuación L1 WEB_UI_ENABLED
    6.10.2 Asegúrate de que los clústeres Alfa no se usen para cargas de trabajo de producción. Con puntuación L1 N/A
    6.10.3 Asegúrate de que la política de seguridad de pods esté habilitada y configurada según corresponda. Sin puntuación L1 POD_SECURITY_POLICY_DISABLED
    6.10.4 Considera usar GKE Sandbox para ejecutar cargas de trabajo no confiables. Sin puntuación L2 N/A
    6.10.5 Se prefiere habilitar la autorización binaria y configurar la política según corresponda. Sin puntuación L2 N/A
    6.10.6 Se prefiere habilitar Cloud Security Command Center (Cloud SCC). Sin puntuación L1 N/A

    ¿Qué sigue?