CIS Benchmarks

En este documento, se presenta la comparativa de CIS Kubernetes y se explica cómo auditar tu cumplimiento con la comparativa y lo que GKE On-Prem configura cuando no puedes implementar una recomendación 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 proporcionan 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.

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 Anthos Versión de Kubernetes Versión de la comparativa de CIS para Kubernetes
1.5.1 1.17.9 1.6

Comparativas de CIS en 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

Las recomendaciones tienen como fin:

  • 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

    Extiende el perfil de 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.
  • Estado de evaluación

    Se incluye un estado de evaluación para cada recomendación. El estado de evaluación indica si la recomendación dada puede automatizarse o requiere pasos manuales para implementarse. Ambos estados tienen la misma importancia, y se determinan y admiten según se define a continuación:

    Puntuación Descripción
    Automatizada Representa recomendaciones para las que la evaluación de un control técnico se puede automatizar y validar por completo a un estado de aprobación/error. En la sección Recomendaciones, se incluirá la información necesaria para implementar la automatización.
    Manual Representa recomendaciones para las que la evaluación de un control técnico no se puede automatizar por completo y requiere todos los pasos manuales para validar que el estado esté configurado como se espera. El estado esperado puede variar según el entorno.

    Evaluación en GKE On-Prem

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

    Estado Descripción
    Pass 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 On-Prem no configura elementos relacionados con esta recomendación. La configuración del usuario determina si su entorno cumple con una recomendación de comparativa.

    Arquitectura de GKE On-Prem

    GKE On-Prem usa un “clúster de administrador” para administrar uno o más “clústeres de usuario”, que ejecutan cargas de trabajo reales de Kubernetes. Puedes encontrar más información sobre esta arquitectura en la descripción general de GKE On-Prem. La configuración de los clústeres de administrador y de usuario se evalúa en función de la comparativa que se muestra a continuación.

    Estado en GKE On-Prem

    A continuación se muestra cómo se realizará la creación de un nuevo clúster local de GKE con la versión especificada con la comparativa de Kubernetes de CIS.

    Estado del clúster de administrador de GKE On-Prem:

    # Recomendación Nivel Estado
    1 Configuración de seguridad de los nodos de instancia principal
    1.1 Archivos de configuración del nodo principal
    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 (automático) L1 Control equivalente
    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 (automático) L1 Control equivalente
    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 (automático) L1 Control equivalente
    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 (automático) L1 Control equivalente
    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 (automático) L1 Control equivalente
    1.1.6 Asegúrate de que la propiedad del archivo de especificación del pod del programador esté configurada en root:root (automático). L1 Control equivalente
    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 (automático) L1 Control equivalente
    1.1.8 Asegúrate de que la propiedad del archivo de especificación del pod de etcd esté configurada en root:root (automático) L1 Control equivalente
    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 (manual) L1 Aprobada
    1.1.10 Asegúrate de que la propiedad del archivo de la interfaz de red del contenedor esté configurada en root:root (manual) L1 Aprobada
    1.1.11 Asegúrate de que los permisos del directorio de datos de etcd estén configurados en 700 o más restringidos (automático) L1 Control equivalente
    1.1.12 Asegúrate de que la propiedad del directorio de datos de etcd esté configurada en etcd:etcd (automático) L1 Control equivalente
    1.1.13 Asegúrate de que los permisos del archivo admin.conf estén configurados en 644 o más restringidos (automático) L1 Control equivalente
    1.1.14 Asegúrate de que la propiedad del archivo admin.conf esté establecida en root:root (automático) L1 Control equivalente
    1.1.15 Asegúrate de que los permisos del archivo scheduler.conf estén configurados en 644 o más restringidos (automático) L1 Control equivalente
    1.1.16 Asegúrate de que la propiedad del archivo scheduler.conf esté configurada en root:root (automático) L1 Control equivalente
    1.1.17 Asegúrate de que los permisos del archivo controller-manager.conf estén configurados en 644 o más restringidos (automático) L1 Control equivalente
    1.1.18 Asegúrate de que la propiedad del archivo controller-manager.conf esté configurada en root:root (automático) L1 Control equivalente
    1.1.19 Asegúrate de que la propiedad del archivo y del directorio de la PKI de Kubernetes esté configurada como root:root (automático) L1 Aprobada
    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 (manual) L1 Aprobada
    1.1.21 Asegúrate de que los permisos del archivo de claves de la PKI de Kubernetes estén configurados como 600 (manual) L1 Aprobada
    1.2 Servidor de la API
    1.2.1 Asegúrate de que el argumento --anonymous-auth esté configurado como falso (manual) L1 Reprobada
    1.2.2 Asegúrate de que el argumento --basic-auth-file no esté configurado (automático) L1 Aprobada
    1.2.3 Asegúrate de que el parámetro --token-auth-file no esté configurado (automático) L1 Pass
    1.2.4 Asegúrate de que el argumento --kubelet-https esté configurado como verdadero (automático) L1 Aprobada
    1.2.5 Asegúrate de que los argumentos --kubelet-client-certificate y --kubelet-client-key estén configurados como corresponda (automático) L1 Pass
    1.2.6 Asegúrate de que el argumento --kubelet-certificate-authority esté configurado como corresponda (automático) L1 Aprobada
    1.2.7 Asegúrate de que el argumento --authorization-mode no esté configurado en AlwaysAllow (automático) L1 Pass
    1.2.8 Asegúrate de que el argumento --authorization-mode incluya Node (automático) L1 Pass
    1.2.9 Asegúrate de que el argumento --authorization-mode incluya el RBAC (automático) L1 Aprobada
    1.2.10 Asegúrate de que el complemento de control de admisión EventRateLimit esté establecido (manual) L1 Reprobada
    1.2.11 Asegúrate de que el complemento de control de admisión AlwaysAdmit no esté establecido (automático) L1 Aprobada
    1.2.12 Asegúrate de que el complemento de control de admisión AlwaysPullImages esté establecido (manual) L1 Depende del entorno
    1.2.13 Asegúrate de que el complemento de control de admisión SecurityContextDeny esté establecido si no se usa PodSecurityPolicy (manual) L1 Control equivalente
    1.2.14 Asegúrate de que el complemento de control de admisión ServiceAccount esté establecido.(automático) L1 Pass
    1.2.15 Asegúrate de que el complemento de control de admisión NamespaceLifecycle esté establecido (automático) L1 Pass
    1.2.16 Asegúrate de que el complemento de control de admisión PodSecurityPolicy esté establecido (automático) L1 Control equivalente
    1.2.17 Asegúrate de que el complemento de control de admisión NodeRestriction esté establecido (automático) L1 Aprobada
    1.2.18 Asegúrate de que el argumento --insecure-bind-address no esté configurado (automático) L1 Aprobada
    1.2.19 Asegúrate de que el argumento --insecure-port esté configurado como 0 (automático) L1 Aprobada
    1.2.20 Asegúrate de que el argumento --secure-port no esté establecido en 0 (automático) L1 Aprobada
    1.2.21 Asegúrate de que el argumento --profiling esté configurado como falso (automático) L1 Aprobada
    1.2.22 Asegúrate de que el argumento --audit-log-path esté configurado (automático) L1 Control equivalente
    1.2.23 Asegúrate de que el argumento --audit-log-maxage esté configurado como 30 o según corresponda (automático) L1 Control equivalente
    1.2.24 Asegúrate de que el argumento --audit-log-maxbackup esté configurado como 10 o según corresponda (automático) L1 Control equivalente
    1.2.25 Asegúrate de que el argumento --audit-log-maxsize esté configurado como 100 o según corresponda (automático) L1 Control equivalente
    1.2.26 Asegúrate de que el argumento --request-timeout esté configurado como corresponda (automático) L1 Aprobada
    1.2.27 Asegúrate de que el argumento --service-account-lookup esté configurado como verdadero (automático) L1 Aprobada
    1.2.28 Asegúrate de que el argumento --service-account-key-file esté configurado como corresponda (automático) L1 Aprobada
    1.2.29 Asegúrate de que los argumentos --etcd-certfile y --etcd-keyfile estén configurados como corresponda (automático) L1 Pass
    1.2.30 Asegúrate de que los argumentos --tls-cert-file y --tls-private-key-file estén configurados como corresponda (automático) L1 Control equivalente
    1.2.31 Asegúrate de que el argumento --client-ca-file esté configurado como corresponda (automático) L1 Aprobada
    1.2.32 Asegúrate de que el argumento --etcd-cafile esté configurado como corresponda (automático) L1 Aprobada
    1.2.33 Asegúrate de que el argumento --encryption-provider-config esté configurado como corresponda (manual) L1 Reprobadas
    1.2.34 Asegúrate de que los proveedores de encriptación estén configurados según corresponda (manual) L1 Reprobada
    1.2.35 Asegúrate de que el servidor de API solo use algoritmos de cifrado criptográficos sólidos (manual) L1 Pass
    1.3 Administrador del controlador
    1.3.1 Asegúrate de que el argumento --terminated-pod-gc-threshold esté configurado como corresponda (manual) L1 Aprobada
    1.3.2 Asegúrate de que el argumento --profiling esté configurado como falso (automático) L1 Pass
    1.3.3 Asegúrate de que el argumento --use-service-account-credentials esté configurado como verdadero (automático) L1 Aprobada
    1.3.4 Asegúrate de que el argumento --service-account-private-key-file esté configurado como corresponda (automático) L1 Aprobada
    1.3.5 Asegúrate de que el argumento --root-ca-file esté configurado como corresponda (automático) L1 Pass
    1.3.6 Asegúrate de que el argumento RotateKubeletServerCertificate esté configurado como verdadero (automático) L2 Control equivalente
    1.3.7 Asegúrate de que el argumento --bind-address esté configurado como 127.0.0.1 (automático) L1 Aprobada
    1.4 Programador
    1.4.1 Asegúrate de que el argumento --profiling esté configurado como falso (automático) L1 Aprobada
    1.4.2 Asegúrate de que el argumento --bind-address esté configurado como 127.0.0.1 (automático) L1 Aprobada
    2 Configuración del nodo Etcd
    2 Archivos de configuración del nodo Etcd
    2.1 Asegúrate de que los argumentos --cert-file y --key-file estén configurados como corresponda (automático) L1 Pass
    2.2 Asegúrate de que el argumento --client-cert-auth esté configurado como verdadero (automático) L1 Aprobada
    2.3 Asegúrate de que el argumento --auto-tls no esté configurado como verdadero (automático) L1 Pass
    2.4 Asegúrate de que los argumentos --peer-cert-file y --peer-key-file estén configurados como corresponda (automático) L1 Aprobada
    2.5 Asegúrate de que el argumento --peer-client-cert-auth esté configurado como verdadero (automático) L1 Aprobada
    2.6 Asegúrate de que el argumento --peer-auto-tls no esté configurado como verdadero (automático) L1 Pass
    2.7 Asegúrate de usar una autoridad certificada única para etcd (manual) L2 Aprobada
    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 (manual) L2 Pass
    3.2 Logging
    3.2.1 Asegúrate de crear una política de auditoría mínima (manual) L1 Control equivalente
    3.2.2 Asegúrate de que la política de auditoría abarque los problemas de seguridad clave (manual) L2 Control equivalente
    4 Configuración de seguridad del nodo trabajador
    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 (automático) L1 Pass
    4.1.2 Asegúrate de que la propiedad del archivo de servicio de kubelet esté configurada en root:root (automático) L1 Pass
    4.1.3 Si existe un archivo kubeconfig de proxy, asegúrate de que los permisos estén configurados como 644 o más restringidos (manual) L1 Control equivalente
    4.1.4 Asegúrate de que la propiedad del archivo kubeconfig del proxy esté configurada en root:root (manual) L1 Control equivalente
    4.1.5 Asegúrate de que los permisos del archivo kubelet.conf de --kubeconfig estén configurados en 644 o más restringidos (automático) L1 Control equivalente
    4.1.6 Asegúrate de que la propiedad del archivo kubelet.conf de --kubeconfig esté configurada en root:root (manual) L1 Control equivalente
    4.1.7 Asegúrate de que los permisos del archivo de autoridades certificadas estén configurados en 644 o más restringidos (manual) L1 Aprobada
    4.1.8 Asegúrate de que la propiedad del archivo de autoridades certificadas del cliente esté configurada en root:root (manual) L1 Aprobada
    4.1.9 Asegúrate de que el archivo de configuración --config de kubelet tenga permisos establecidos en 644 o más restringidos (automático) L1 Pass
    4.1.10 Asegúrate de que la propiedad del archivo de configuración --config de kubelet esté establecida en root:root(automático) L1 Aprobada
    4.2 Kubelet
    4.2.1 Asegúrate de que el argumento -anonymous-auth esté configurado como falso (automático) L1 Aprobada
    4.2.2 Asegúrate de que el argumento --authorization-mode no esté configurado en AlwaysAllow (automático) L1 Aprobada
    4.2.3 Asegúrate de que el argumento --client-ca-file esté configurado como corresponda (automático) L1 Aprobada
    4.2.4 Asegúrate de que el argumento --read-only-port esté configurado como 0 (manual) L1 Reprobada
    4.2.5 Asegúrate de que el argumento --streaming-connection-idle-timeout no esté establecido en 0 (manual) L1 Aprobada
    4.2.6 Asegúrate de que el argumento --protect-kernel-defaults esté configurado como verdadero (automático) L1 Reprobada
    4.2.7 Asegúrate de que el argumento --make-iptables-util-chains esté configurado como verdadero (automático) L1 Aprobada
    4.2.8 Asegúrate de que el argumento --hostname-override no esté configurado (manual) L1 Aprobada
    4.2.9 Asegúrate de que el argumento --event-qps esté configurado como 0 o en un nivel que garantice la captura de eventos apropiada (manual) L2 Reprobada
    4.2.10 Asegúrate de que los argumentos --tls-cert-file y --tls-private-key-file estén configurados como corresponda (manual) L1 Control equivalente
    4.2.11 Asegúrate de que el argumento --rotate-certificates no esté configurado como falso (manual) L1 Pass
    4.2.12 Verifica que el argumento RotateKubeletServerCertificate esté configurado como verdadero (manual) L1 Control equivalente
    4.2.13 Asegúrate de que Kubelet solo use algoritmos de cifrado criptográficos sólidos (manual) L1 Control equivalente
    Descripciones de fallas y controles equivalentes para el clúster de administrador de GKE On-Prem:
    # Recomendación Nivel Estado Valor Justificación
    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 (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    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 (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    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 (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    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 (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    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 (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    1.1.6 Asegúrate de que la propiedad del archivo de especificación del pod del programador esté configurada en root:root (automático). L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    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 (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    1.1.8 Asegúrate de que la propiedad del archivo de especificación del pod de etcd esté configurada en root:root (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    1.1.11 Asegúrate de que los permisos del directorio de datos de etcd estén configurados en 700 o más restringidos (automático) L1 Control equivalente 755 El directorio de datos de etcd tiene los permisos 755 predeterminados, pero sus subdirectorios son 700.
    1.1.12 Asegúrate de que la propiedad del directorio de datos de etcd esté configurada en etcd:etcd (automático) L1 Control equivalente root:root El contenedor etcd se ejecuta como root y el directorio de datos de etcd es propiedad de root:root.
    1.1.13 Asegúrate de que los permisos del archivo admin.conf estén configurados en 644 o más restringidos (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    1.1.14 Asegúrate de que la propiedad del archivo admin.conf esté establecida en root:root (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    1.1.15 Asegúrate de que los permisos del archivo scheduler.conf estén configurados en 644 o más restringidos (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    1.1.16 Asegúrate de que la propiedad del archivo scheduler.conf esté configurada en root:root (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    1.1.17 Asegúrate de que los permisos del archivo controller-manager.conf estén configurados en 644 o más restringidos (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    1.1.18 Asegúrate de que la propiedad del archivo controller-manager.conf esté configurada en root:root (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    1.2.1 Asegúrate de que el argumento --anonymous-auth esté configurado como falso (manual) L1 Reprobadas Sin establecer Algunos componentes de supervisión de GKE on-prem usan autenticación anónima para realizar verificaciones de estado.
    1.2.10 Asegúrate de que el complemento de control de admisión EventRateLimit esté establecido (manual) L1 Reprobadas Sin establecer GKE On-Prem no es compatible con el controlador de admisión de límite de frecuencia de eventos, ya que es una función Alfa de Kubernetes.
    1.2.12 Asegúrate de que el complemento de control de admisión AlwaysPullImages esté establecido (manual) L1 Depende del entorno 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 On-Prem 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.
    1.2.13 Asegúrate de que el complemento de control de admisión SecurityContextDeny esté establecido si no se usa PodSecurityPolicy (manual) L1 Control equivalente Sin establecer Las políticas de configuración de seguridad en los pods se administran mediante el controlador de políticas y Anthos Config Management.
    1.2.16 Asegúrate de que el complemento de control de admisión PodSecurityPolicy esté establecido (automático) L1 Control equivalente Sin establecer Las políticas de configuración de seguridad en los pods se administran mediante el controlador de políticas y Anthos Config Management.
    1.2.22 Asegúrate de que el argumento --audit-log-path esté configurado (automático) L1 Control equivalente Sin establecer GKE On-Prem captura registros de auditoría, pero no usa estas marcas para auditorías. Consulta la política de auditoría de GKE On-Prem para obtener más detalles.
    1.2.23 Asegúrate de que el argumento --audit-log-maxage esté configurado como 30 o según corresponda (automático) L1 Control equivalente Sin establecer GKE On-Prem captura registros de auditoría, pero no usa estas marcas para auditorías. Consulta la política de auditoría de GKE On-Prem para obtener más detalles.
    1.2.24 Asegúrate de que el argumento --audit-log-maxbackup esté configurado como 10 o según corresponda (automático) L1 Control equivalente Sin establecer GKE On-Prem captura registros de auditoría, pero no usa estas marcas para auditorías. Consulta la política de auditoría de GKE On-Prem para obtener más detalles.
    1.2.25 Asegúrate de que el argumento --audit-log-maxsize esté configurado como 100 o según corresponda (automático) L1 Control equivalente Sin establecer GKE On-Prem captura registros de auditoría, pero no usa estas marcas para auditorías. Consulta la política de auditoría de GKE On-Prem para obtener más detalles.
    1.2.30 Asegúrate de que los argumentos --tls-cert-file y --tls-private-key-file estén configurados como corresponda (automático) L1 Control equivalente Sin establecer GKE On-Prem administra la TLS del servidor de kubelet con la marca --rotate-server-certificates.
    1.2.33 Asegúrate de que el argumento --encryption-provider-config esté configurado como corresponda (manual) L1 Reprobadas Sin establecer GKE On-Prem aún no es compatible con la encriptación de la capa de la aplicación de secretos.
    1.2.34 Asegúrate de que los proveedores de encriptación estén configurados según corresponda (manual) L1 Reprobadas Sin establecer GKE On-Prem aún no es compatible con la encriptación de la capa de la aplicación de secretos.
    1.3.6 Asegúrate de que el argumento RotateKubeletServerCertificate esté configurado como verdadero (automático) L2 Control equivalente Sin establecer GKE On-Prem habilita la rotación de certificados de Kubelet mediante la configuración de --rotate-server-certificates=true en kubelets.
    3.2.1 Asegúrate de crear una política de auditoría mínima (manual) L1 Control equivalente Sin establecer GKE On-Prem captura registros de auditoría, pero no usa estas marcas para auditorías. Consulta la política de auditoría de GKE On-Prem para obtener más detalles.
    3.2.2 Asegúrate de que la política de auditoría abarque los problemas de seguridad clave (manual) L2 Control equivalente Sin establecer GKE On-Prem captura registros de auditoría, pero no usa estas marcas para auditorías. Consulta la política de auditoría de GKE On-Prem para obtener más detalles.
    4.1.3 Si existe un archivo kubeconfig de proxy, asegúrate de que los permisos estén configurados como 644 o más restringidos (manual) L1 Control equivalente Sin establecer kube-proxy se ejecuta como un daemonset en GKE On-Prem y los permisos se administran mediante RBAC.
    4.1.4 Asegúrate de que la propiedad del archivo kubeconfig del proxy esté configurada en root:root (manual) L1 Control equivalente Sin establecer kube-proxy se ejecuta como un daemonset en GKE On-Prem y los permisos se administran mediante RBAC.
    4.1.5 Asegúrate de que los permisos del archivo kubelet.conf de --kubeconfig estén configurados en 644 o más restringidos (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    4.1.6 Asegúrate de que la propiedad del archivo kubelet.conf de --kubeconfig esté configurada en root:root (manual) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    4.2.4 Asegúrate de que el argumento --read-only-port esté configurado como 0 (manual) L1 Reprobada 10255 Algunos componentes de supervisión de GKE on-prem usan el puerto de solo lectura de kubelet para obtener métricas.
    4.2.6 Asegúrate de que el argumento --protect-kernel-defaults esté configurado como verdadero (automático) L1 Reprobada false GKE On-Prem permite que kubelet establezca la configuración de kernel necesaria.
    4.2.9 Asegúrate de que el argumento --event-qps esté configurado como 0 o en un nivel que garantice la captura de eventos apropiada (manual) L2 Reprobadas no se estableció 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.
    4.2.10 Asegúrate de que los argumentos --tls-cert-file y --tls-private-key-file estén configurados como corresponda (manual) L1 Control equivalente Sin establecer GKE On-Prem administra la TLS del servidor de kubelet con la marca --rotate-server-certificates.
    4.2.12 Verifica que el argumento RotateKubeletServerCertificate esté configurado como verdadero (manual) L1 Control equivalente Sin establecer GKE On-Prem habilita la rotación de certificados de Kubelet mediante la configuración de --rotate-server-certificates=true en kubelets.
    4.2.13 Asegúrate de que Kubelet solo use algoritmos de cifrado criptográficos sólidos (manual) L1 Control equivalente Kubelet usa el conjunto predeterminado de algoritmo de cifrado criptográficos

    Estado del clúster de usuario de GKE On-Prem:

    # Recomendación Nivel Estado
    1 Configuración de seguridad de los nodos de instancia principal
    1.1 Archivos de configuración del nodo principal
    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 (automático) L1 Control equivalente
    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 (automático) L1 Control equivalente
    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 (automático) L1 Control equivalente
    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 (automático) L1 Control equivalente
    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 (automático) L1 Control equivalente
    1.1.6 Asegúrate de que la propiedad del archivo de especificación del pod del programador esté configurada en root:root (automático). L1 Control equivalente
    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 (automático) L1 Control equivalente
    1.1.8 Asegúrate de que la propiedad del archivo de especificación del pod de etcd esté configurada en root:root (automático) L1 Control equivalente
    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 (manual) L1 Aprobada
    1.1.10 Asegúrate de que la propiedad del archivo de la interfaz de red del contenedor esté configurada en root:root (manual) L1 Aprobada
    1.1.11 Asegúrate de que los permisos del directorio de datos de etcd estén configurados en 700 o más restringidos (automático) L1 Control equivalente
    1.1.12 Asegúrate de que la propiedad del directorio de datos de etcd esté configurada en etcd:etcd (automático) L1 Control equivalente
    1.1.13 Asegúrate de que los permisos del archivo admin.conf estén configurados en 644 o más restringidos (automático) L1 Control equivalente
    1.1.14 Asegúrate de que la propiedad del archivo admin.conf esté establecida en root:root (automático) L1 Control equivalente
    1.1.15 Asegúrate de que los permisos del archivo scheduler.conf estén configurados en 644 o más restringidos (automático) L1 Control equivalente
    1.1.16 Asegúrate de que la propiedad del archivo scheduler.conf esté configurada en root:root (automático) L1 Control equivalente
    1.1.17 Asegúrate de que los permisos del archivo controller-manager.conf estén configurados en 644 o más restringidos (automático) L1 Control equivalente
    1.1.18 Asegúrate de que la propiedad del archivo controller-manager.conf esté configurada en root:root (automático) L1 Control equivalente
    1.1.19 Asegúrate de que la propiedad del archivo y del directorio de la PKI de Kubernetes esté configurada como root:root (automático) L1 Aprobada
    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 (manual) L1 Aprobada
    1.1.21 Asegúrate de que los permisos del archivo de claves de la PKI de Kubernetes estén configurados como 600 (manual) L1 Aprobada
    1.2 Servidor de la API
    1.2.1 Asegúrate de que el argumento --anonymous-auth esté configurado como falso (manual) L1 Reprobada
    1.2.2 Asegúrate de que el argumento --basic-auth-file no esté configurado (automático) L1 Aprobada
    1.2.3 Asegúrate de que el parámetro --token-auth-file no esté configurado (automático) L1 Pass
    1.2.4 Asegúrate de que el argumento --kubelet-https esté configurado como verdadero (automático) L1 Aprobada
    1.2.5 Asegúrate de que los argumentos --kubelet-client-certificate y --kubelet-client-key estén configurados como corresponda (automático) L1 Pass
    1.2.6 Asegúrate de que el argumento --kubelet-certificate-authority esté configurado como corresponda (automático) L1 Aprobada
    1.2.7 Asegúrate de que el argumento --authorization-mode no esté configurado en AlwaysAllow (automático) L1 Pass
    1.2.8 Asegúrate de que el argumento --authorization-mode incluya Node (automático) L1 Pass
    1.2.9 Asegúrate de que el argumento --authorization-mode incluya el RBAC (automático) L1 Aprobada
    1.2.10 Asegúrate de que el complemento de control de admisión EventRateLimit esté establecido (manual) L1 Reprobada
    1.2.11 Asegúrate de que el complemento de control de admisión AlwaysAdmit no esté establecido (automático) L1 Aprobada
    1.2.12 Asegúrate de que el complemento de control de admisión AlwaysPullImages esté establecido (manual) L1 Depende del entorno
    1.2.13 Asegúrate de que el complemento de control de admisión SecurityContextDeny esté establecido si no se usa PodSecurityPolicy (manual) L1 Control equivalente
    1.2.14 Asegúrate de que el complemento de control de admisión ServiceAccount esté establecido.(automático) L1 Pass
    1.2.15 Asegúrate de que el complemento de control de admisión NamespaceLifecycle esté establecido (automático) L1 Pass
    1.2.16 Asegúrate de que el complemento de control de admisión PodSecurityPolicy esté establecido (automático) L1 Control equivalente
    1.2.17 Asegúrate de que el complemento de control de admisión NodeRestriction esté establecido (automático) L1 Aprobada
    1.2.18 Asegúrate de que el argumento --insecure-bind-address no esté configurado (automático) L1 Reprobada
    1.2.19 Asegúrate de que el argumento --insecure-port esté configurado como 0 (automático) L1 Reprobada
    1.2.20 Asegúrate de que el argumento --secure-port no esté establecido en 0 (automático) L1 Aprobada
    1.2.21 Asegúrate de que el argumento --profiling esté configurado como falso (automático) L1 Aprobada
    1.2.22 Asegúrate de que el argumento --audit-log-path esté configurado (automático) L1 Control equivalente
    1.2.23 Asegúrate de que el argumento --audit-log-maxage esté configurado como 30 o según corresponda (automático) L1 Control equivalente
    1.2.24 Asegúrate de que el argumento --audit-log-maxbackup esté configurado como 10 o según corresponda (automático) L1 Control equivalente
    1.2.25 Asegúrate de que el argumento --audit-log-maxsize esté configurado como 100 o según corresponda (automático) L1 Control equivalente
    1.2.26 Asegúrate de que el argumento --request-timeout esté configurado como corresponda (automático) L1 Aprobada
    1.2.27 Asegúrate de que el argumento --service-account-lookup esté configurado como verdadero (automático) L1 Aprobada
    1.2.28 Asegúrate de que el argumento --service-account-key-file esté configurado como corresponda (automático) L1 Aprobada
    1.2.29 Asegúrate de que los argumentos --etcd-certfile y --etcd-keyfile estén configurados como corresponda (automático) L1 Pass
    1.2.30 Asegúrate de que los argumentos --tls-cert-file y --tls-private-key-file estén configurados como corresponda (automático) L1 Control equivalente
    1.2.31 Asegúrate de que el argumento --client-ca-file esté configurado como corresponda (automático) L1 Aprobada
    1.2.32 Asegúrate de que el argumento --etcd-cafile esté configurado como corresponda (automático) L1 Aprobada
    1.2.33 Asegúrate de que el argumento --encryption-provider-config esté configurado como corresponda (manual) L1 Reprobadas
    1.2.34 Asegúrate de que los proveedores de encriptación estén configurados según corresponda (manual) L1 Reprobada
    1.2.35 Asegúrate de que el servidor de API solo use algoritmos de cifrado criptográficos sólidos (manual) L1 Pass
    1.3 Administrador del controlador
    1.3.1 Asegúrate de que el argumento --terminated-pod-gc-threshold esté configurado como corresponda (manual) L1 Aprobada
    1.3.2 Asegúrate de que el argumento --profiling esté configurado como falso (automático) L1 Pass
    1.3.3 Asegúrate de que el argumento --use-service-account-credentials esté configurado como verdadero (automático) L1 Aprobada
    1.3.4 Asegúrate de que el argumento --service-account-private-key-file esté configurado como corresponda (automático) L1 Aprobada
    1.3.5 Asegúrate de que el argumento --root-ca-file esté configurado como corresponda (automático) L1 Pass
    1.3.6 Asegúrate de que el argumento RotateKubeletServerCertificate esté configurado como verdadero (automático) L2 Control equivalente
    1.3.7 Asegúrate de que el argumento --bind-address esté configurado como 127.0.0.1 (automático) L1 Aprobada
    1.4 Programador
    1.4.1 Asegúrate de que el argumento --profiling esté configurado como falso (automático) L1 Aprobada
    1.4.2 Asegúrate de que el argumento --bind-address esté configurado como 127.0.0.1 (automático) L1 Aprobada
    2 Configuración del nodo Etcd
    2 Archivos de configuración del nodo Etcd
    2.1 Asegúrate de que los argumentos --cert-file y --key-file estén configurados como corresponda (automático) L1 Pass
    2.2 Asegúrate de que el argumento --client-cert-auth esté configurado como verdadero (automático) L1 Aprobada
    2.3 Asegúrate de que el argumento --auto-tls no esté configurado como verdadero (automático) L1 Pass
    2.4 Asegúrate de que los argumentos --peer-cert-file y --peer-key-file estén configurados como corresponda (automático) L1 Aprobada
    2.5 Asegúrate de que el argumento --peer-client-cert-auth esté configurado como verdadero (automático) L1 Aprobada
    2.6 Asegúrate de que el argumento --peer-auto-tls no esté configurado como verdadero (automático) L1 Pass
    2.7 Asegúrate de usar una autoridad certificada única para etcd (manual) L2 Aprobada
    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 (manual) L2 Pass
    3.2 Logging
    3.2.1 Asegúrate de crear una política de auditoría mínima (manual) L1 Control equivalente
    3.2.2 Asegúrate de que la política de auditoría abarque los problemas de seguridad clave (manual) L2 Control equivalente
    4 Configuración de seguridad del nodo trabajador
    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 (automático) L1 Pass
    4.1.2 Asegúrate de que la propiedad del archivo de servicio de kubelet esté configurada en root:root (automático) L1 Pass
    4.1.3 Si existe un archivo kubeconfig de proxy, asegúrate de que los permisos estén configurados como 644 o más restringidos (manual) L1 Control equivalente
    4.1.4 Asegúrate de que la propiedad del archivo kubeconfig del proxy esté configurada en root:root (manual) L1 Control equivalente
    4.1.5 Asegúrate de que los permisos del archivo kubelet.conf de --kubeconfig estén configurados en 644 o más restringidos (automático) L1 Control equivalente
    4.1.6 Asegúrate de que la propiedad del archivo kubelet.conf de --kubeconfig esté configurada en root:root (manual) L1 Control equivalente
    4.1.7 Asegúrate de que los permisos del archivo de autoridades certificadas estén configurados en 644 o más restringidos (manual) L1 Aprobada
    4.1.8 Asegúrate de que la propiedad del archivo de autoridades certificadas del cliente esté configurada en root:root (manual) L1 Aprobada
    4.1.9 Asegúrate de que el archivo de configuración --config de kubelet tenga permisos establecidos en 644 o más restringidos (automático) L1 Pass
    4.1.10 Asegúrate de que la propiedad del archivo de configuración --config de kubelet esté establecida en root:root(automático) L1 Aprobada
    4.2 Kubelet
    4.2.1 Asegúrate de que el argumento -anonymous-auth esté configurado como falso (automático) L1 Aprobada
    4.2.2 Asegúrate de que el argumento --authorization-mode no esté configurado en AlwaysAllow (automático) L1 Aprobada
    4.2.3 Asegúrate de que el argumento --client-ca-file esté configurado como corresponda (automático) L1 Aprobada
    4.2.4 Asegúrate de que el argumento --read-only-port esté configurado como 0 (manual) L1 Reprobada
    4.2.5 Asegúrate de que el argumento --streaming-connection-idle-timeout no esté establecido en 0 (manual) L1 Aprobada
    4.2.6 Asegúrate de que el argumento --protect-kernel-defaults esté configurado como verdadero (automático) L1 Reprobada
    4.2.7 Asegúrate de que el argumento --make-iptables-util-chains esté configurado como verdadero (automático) L1 Aprobada
    4.2.8 Asegúrate de que el argumento --hostname-override no esté configurado (manual) L1 Aprobada
    4.2.9 Asegúrate de que el argumento --event-qps esté configurado como 0 o en un nivel que garantice la captura de eventos apropiada (manual) L2 Reprobada
    4.2.10 Asegúrate de que los argumentos --tls-cert-file y --tls-private-key-file estén configurados como corresponda (manual) L1 Control equivalente
    4.2.11 Asegúrate de que el argumento --rotate-certificates no esté configurado como falso (manual) L1 Pass
    4.2.12 Verifica que el argumento RotateKubeletServerCertificate esté configurado como verdadero (manual) L1 Control equivalente
    4.2.13 Asegúrate de que Kubelet solo use algoritmos de cifrado criptográficos sólidos (manual) L1 Control equivalente
    Descripciones de fallas y controles equivalentes para el clúster de usuarios de GKE On-Prem:
    # Recomendación Nivel Estado Valor Justificación
    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 (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    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 (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    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 (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    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 (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    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 (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    1.1.6 Asegúrate de que la propiedad del archivo de especificación del pod del programador esté configurada en root:root (automático). L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    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 (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    1.1.8 Asegúrate de que la propiedad del archivo de especificación del pod de etcd esté configurada en root:root (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    1.1.11 Asegúrate de que los permisos del directorio de datos de etcd estén configurados en 700 o más restringidos (automático) L1 Control equivalente 755 El directorio de datos de etcd tiene los permisos 755 predeterminados, pero sus subdirectorios son 700.
    1.1.12 Asegúrate de que la propiedad del directorio de datos de etcd esté configurada en etcd:etcd (automático) L1 Control equivalente root:root El contenedor etcd se ejecuta como root y el directorio de datos de etcd es propiedad de root:root.
    1.1.13 Asegúrate de que los permisos del archivo admin.conf estén configurados en 644 o más restringidos (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    1.1.14 Asegúrate de que la propiedad del archivo admin.conf esté establecida en root:root (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    1.1.15 Asegúrate de que los permisos del archivo scheduler.conf estén configurados en 644 o más restringidos (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    1.1.16 Asegúrate de que la propiedad del archivo scheduler.conf esté configurada en root:root (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    1.1.17 Asegúrate de que los permisos del archivo controller-manager.conf estén configurados en 644 o más restringidos (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    1.1.18 Asegúrate de que la propiedad del archivo controller-manager.conf esté configurada en root:root (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    1.2.1 Asegúrate de que el argumento --anonymous-auth esté configurado como falso (manual) L1 Reprobadas Sin establecer Algunos componentes de supervisión de GKE on-prem usan autenticación anónima para realizar verificaciones de estado.
    1.2.10 Asegúrate de que el complemento de control de admisión EventRateLimit esté establecido (manual) L1 Reprobadas Sin establecer GKE On-Prem no es compatible con el controlador de admisión de límite de frecuencia de eventos, ya que es una función Alfa de Kubernetes.
    1.2.12 Asegúrate de que el complemento de control de admisión AlwaysPullImages esté establecido (manual) L1 Depende del entorno 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 On-Prem 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.
    1.2.13 Asegúrate de que el complemento de control de admisión SecurityContextDeny esté establecido si no se usa PodSecurityPolicy (manual) L1 Control equivalente Sin establecer Las políticas de configuración de seguridad en los pods se administran mediante el controlador de políticas y Anthos Config Management.
    1.2.16 Asegúrate de que el complemento de control de admisión PodSecurityPolicy esté establecido (automático) L1 Control equivalente Sin establecer Las políticas de configuración de seguridad en los pods se administran mediante el controlador de políticas y Anthos Config Management.
    1.2.18 Asegúrate de que el argumento --insecure-bind-address no esté configurado (automático) L1 Reprobada 127.0.0.1 En este momento, metrics-proxy para el clúster de usuario kube-apiserver se comunica a través de localhost dentro del pod kube-apiserver mediante HTTP.
    1.2.19 Asegúrate de que el argumento --insecure-port esté configurado como 0 (automático) L1 Reprobada 80 En este momento, metrics-proxy para el clúster de usuario kube-apiserver se comunica a través de localhost dentro del pod kube-apiserver mediante HTTP.
    1.2.22 Asegúrate de que el argumento --audit-log-path esté configurado (automático) L1 Control equivalente Sin establecer GKE On-Prem captura registros de auditoría, pero no usa estas marcas para auditorías. Consulta la política de auditoría de GKE On-Prem para obtener más detalles.
    1.2.23 Asegúrate de que el argumento --audit-log-maxage esté configurado como 30 o según corresponda (automático) L1 Control equivalente Sin establecer GKE On-Prem captura registros de auditoría, pero no usa estas marcas para auditorías. Consulta la política de auditoría de GKE On-Prem para obtener más detalles.
    1.2.24 Asegúrate de que el argumento --audit-log-maxbackup esté configurado como 10 o según corresponda (automático) L1 Control equivalente Sin establecer GKE On-Prem captura registros de auditoría, pero no usa estas marcas para auditorías. Consulta la política de auditoría de GKE On-Prem para obtener más detalles.
    1.2.25 Asegúrate de que el argumento --audit-log-maxsize esté configurado como 100 o según corresponda (automático) L1 Control equivalente Sin establecer GKE On-Prem captura registros de auditoría, pero no usa estas marcas para auditorías. Consulta la política de auditoría de GKE On-Prem para obtener más detalles.
    1.2.30 Asegúrate de que los argumentos --tls-cert-file y --tls-private-key-file estén configurados como corresponda (automático) L1 Control equivalente Sin establecer GKE On-Prem administra la TLS del servidor de kubelet con la marca --rotate-server-certificates.
    1.2.33 Asegúrate de que el argumento --encryption-provider-config esté configurado como corresponda (manual) L1 Reprobadas Sin establecer GKE On-Prem aún no es compatible con la encriptación de la capa de la aplicación de secretos.
    1.2.34 Asegúrate de que los proveedores de encriptación estén configurados según corresponda (manual) L1 Reprobadas Sin establecer GKE On-Prem aún no es compatible con la encriptación de la capa de la aplicación de secretos.
    1.3.6 Asegúrate de que el argumento RotateKubeletServerCertificate esté configurado como verdadero (automático) L2 Control equivalente Sin establecer GKE On-Prem habilita la rotación de certificados de Kubelet mediante la configuración de --rotate-server-certificates=true en kubelets.
    3.2.1 Asegúrate de crear una política de auditoría mínima (manual) L1 Control equivalente Sin establecer GKE On-Prem captura registros de auditoría, pero no usa estas marcas para auditorías. Consulta la política de auditoría de GKE On-Prem para obtener más detalles.
    3.2.2 Asegúrate de que la política de auditoría abarque los problemas de seguridad clave (manual) L2 Control equivalente Sin establecer GKE On-Prem captura registros de auditoría, pero no usa estas marcas para auditorías. Consulta la política de auditoría de GKE On-Prem para obtener más detalles.
    4.1.3 Si existe un archivo kubeconfig de proxy, asegúrate de que los permisos estén configurados como 644 o más restringidos (manual) L1 Control equivalente Sin establecer kube-proxy se ejecuta como un daemonset en GKE On-Prem y los permisos se administran mediante RBAC.
    4.1.4 Asegúrate de que la propiedad del archivo kubeconfig del proxy esté configurada en root:root (manual) L1 Control equivalente Sin establecer kube-proxy se ejecuta como un daemonset en GKE On-Prem y los permisos se administran mediante RBAC.
    4.1.5 Asegúrate de que los permisos del archivo kubelet.conf de --kubeconfig estén configurados en 644 o más restringidos (automático) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    4.1.6 Asegúrate de que la propiedad del archivo kubelet.conf de --kubeconfig esté configurada en root:root (manual) L1 Control equivalente Las especificaciones del pod de plano del control están protegidas por una política de autorización de RBAC de manera similar en el clúster de administrador y no se presentan como archivos en el disco.
    4.2.4 Asegúrate de que el argumento --read-only-port esté configurado como 0 (manual) L1 Reprobada 10255 Algunos componentes de supervisión de GKE on-prem usan el puerto de solo lectura de kubelet para obtener métricas.
    4.2.6 Asegúrate de que el argumento --protect-kernel-defaults esté configurado como verdadero (automático) L1 Reprobada false GKE On-Prem permite que kubelet establezca la configuración de kernel necesaria.
    4.2.9 Asegúrate de que el argumento --event-qps esté configurado como 0 o en un nivel que garantice la captura de eventos apropiada (manual) L2 Reprobadas no se estableció 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.
    4.2.10 Asegúrate de que los argumentos --tls-cert-file y --tls-private-key-file estén configurados como corresponda (manual) L1 Control equivalente Sin establecer GKE On-Prem administra la TLS del servidor de kubelet con la marca --rotate-server-certificates.
    4.2.12 Verifica que el argumento RotateKubeletServerCertificate esté configurado como verdadero (manual) L1 Control equivalente Sin establecer GKE On-Prem habilita la rotación de certificados de Kubelet mediante la configuración de --rotate-server-certificates=true en kubelets.
    4.2.13 Asegúrate de que Kubelet solo use algoritmos de cifrado criptográficos sólidos (manual) L1 Control equivalente Kubelet usa el conjunto predeterminado de algoritmo de cifrado criptográficos

    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.

    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 comparativa de CIS para Kubernetes.

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

    kube-bench node --benchmark cis-1.6