1 |
Componentes del plano de control |
|
|
|
1.1 |
Archivos de configuración de nodo del plano de control |
|
|
|
1.1.1 |
Asegúrese de que los permisos del archivo de especificación del pod del servidor de API están establecidos en 600 o son más restrictivos. |
Automatizados |
L1 |
N/D |
1.1.2 |
Garantizar que la propiedad del archivo de especificación del pod del servidor de API está establecida en root:root. |
Automatizados |
L1 |
N/D |
1.1.3 |
Asegúrese de que los permisos del archivo de especificación del pod del administrador del controlador están establecidos en 600 o son más restrictivos. |
Automatizados |
L1 |
N/D |
1.1.4 |
Garantizar que la propiedad del archivo de especificación del pod del administrador del controlador está establecida en root:root. |
Automatizados |
L1 |
N/D |
1.1.5 |
Asegúrese de que los permisos del archivo de especificación del pod del programador están establecidos en 600 o son más restrictivos. |
Automatizados |
L1 |
N/D |
1.1.6 |
Garantizar que la propiedad del archivo de especificación del pod del programador está establecida en root:root. |
Automatizados |
L1 |
N/D |
1.1.7 |
Asegúrese de que los permisos del archivo de especificación del pod etcd están establecidos en 600 o son más restrictivos. |
Automatizados |
L1 |
N/D |
1.1.8 |
Garantizar que la propiedad del archivo de especificación del pod etcd está establecida en root:root. |
Automatizados |
L1 |
N/D |
1.1.9 |
Asegúrese de que los permisos del archivo de la interfaz de red de contenedor están establecidos en 600 o son más restrictivos. |
Manual |
L1 |
N/D |
1.1.10 |
Garantizar que la propiedad del archivo de la interfaz de red de contenedor está establecida en root:root. |
Manual |
L1 |
N/D |
1.1.11 |
Garantizar que los permisos del directorio de datos etcd están establecidos en 700 o más restrictivos. |
Automatizados |
L1 |
N/D |
1.1.12 |
Garantizar que la propiedad del directorio de datos etcd está establecida en etcd:etcd. |
Automatizados |
L1 |
N/D |
1.1.13 |
Asegúrese de que los permisos del archivo admin.conf están establecidos en 600 o son más restrictivos. |
Automatizados |
L1 |
N/D |
1.1.14 |
Garantizar que la propiedad del archivo admin.conf está establecida en root:root. |
Automatizados |
L1 |
N/D |
1.1.15 |
Asegúrese de que los permisos del archivo scheduler.conf están establecidos en 600 o son más restrictivos. |
Automatizados |
L1 |
N/D |
1.1.16 |
Garantizar que la propiedad del archivo scheduler.conf está establecida en root:root. |
Automatizados |
L1 |
N/D |
1.1.17 |
Asegúrese de que los permisos del archivo controller-manager.conf están establecidos en 600 o son más restrictivos. |
Automatizados |
L1 |
N/D |
1.1.18 |
Garantizar que la propiedad del archivo controller-manager.conf está establecida en root:root. |
Automatizados |
L1 |
N/D |
1.1.19 |
Garantizar que la propiedad del archivo y el directorio PKI de Kubernetes esta establecida en root:root. |
Automatizados |
L1 |
N/D |
1.1.20 |
Asegúrese de que los permisos del archivo de certificado PKI de Kubernetes están establecidos en 600 o son más restrictivos. |
Manual |
L1 |
N/D |
1.1.21 |
Garantizar que los permisos del archivo de clave PKI de Kubernetes están establecidos en 600. |
Manual |
L1 |
N/D |
1.2 |
Servidor de API |
|
|
|
1.2.1 |
Garantizar que el argumento --anonymous-auth está establecido en false. |
Manual |
L1 |
Aprobado |
1.2.2 |
Garantizar que el parámetro --token-auth-file no está establecido. |
Automatizados |
L1 |
Suspenso |
1.2.3 |
Asegúrese de que --DenyServiceExternalIPs no está establecido. |
Manual |
L1 |
Error |
1.2.4 |
Asegúrese de que los argumentos --kubelet-client-certificate y --kubelet-client-key están establecidos según corresponda. |
Automatizados |
L1 |
Aprobado |
1.2.5 |
Garantizar que el argumento --kubelet-certificate-authority está establecido según corresponda. |
Automatizados |
L1 |
Suspenso |
1.2.6 |
Garantizar que el argumento --authorization-mode no está establecido en AlwaysAllow. |
Automatizados |
L1 |
Aprobado |
1.2.7 |
Garantizar que el argumento --authorization-mode incluye Node. |
Automatizados |
L1 |
Aprobado |
1.2.8 |
Garantizar que el argumento --authorization-mode incluye RBAC. |
Automatizados |
L1 |
Aprobado |
1.2.9 |
Garantizar que el complemento de control de admisión EventRateLimit está establecido. |
Manual |
L1 |
Suspenso |
1.2.10 |
Garantizar que el complemento de control de admisión AlwaysAdmit no está establecido. |
Automatizados |
L1 |
Aprobado |
1.2.11 |
Garantizar que el complemento de control de admisión AlwaysPullImages está establecido. |
Manual |
L1 |
Suspenso |
1.2.12 |
Garantizar que el complemento de control de admisión ServiceAccount está establecido. |
Automatizados |
L2 |
No superada |
1.2.13 |
Garantizar que el complemento de control de admisión NamespaceLifecycle está establecido. |
Automatizados |
L2 |
Aprobado |
1.2.14 |
Garantizar que el complemento de control de admisión NodeRestriction está establecido. |
Automatizados |
L2 |
Aprobado |
1.2.15 |
Garantizar que el argumento --profiling está establecido en false. |
Automatizados |
L1 |
Aprobado |
1.2.16 |
Garantizar que el argumento --audit-log-path está establecido. |
Automatizados |
L1 |
Aprobado |
1.2.17 |
Garantizar que el argumento --audit-log-maxage está establecido en 30 o según corresponda. |
Automatizados |
L1 |
Control equivalente |
1.2.18 |
Garantizar que el argumento --audit-log-maxbackup está establecido en 10 o según corresponda. |
Automatizados |
L1 |
Control equivalente |
1.2.19 |
Garantizar que el argumento --audit-log-maxsize está establecido en 100 o según corresponda. |
Automatizados |
L1 |
Aprobado |
1.2.20 |
Garantizar que el argumento --request-timeout está establecido según corresponda. |
Manual |
L1 |
Pass (pasado) |
1.2.21 |
Garantizar que el argumento --service-account-lookup está establecido en true. |
Automatizados |
L1 |
Aprobado |
1.2.22 |
Garantizar que el argumento --service-account-key-file está establecido según corresponda. |
Automatizados |
L1 |
Aprobado |
1.2.23 |
Asegúrese de que los argumentos --etcd-certfile y --etcd-keyfile están establecidos según corresponda. |
Automatizados |
L1 |
Aprobado |
1.2.24 |
Asegúrese de que los argumentos --tls-cert-file y --tls-private-key-file están establecidos según corresponda. |
Automatizados |
L1 |
Aprobado |
1.2.25 |
Garantizar que el argumento --client-ca-file está establecido según corresponda. |
Automatizados |
L1 |
Aprobado |
1.2.26 |
Garantizar que el argumento --etcd-cafile está establecido según corresponda. |
Automatizados |
L1 |
Aprobado |
1.2.27 |
Garantizar que el argumento --encryption-provider-config está establecido según corresponda. |
Manual |
L1 |
Depende del entorno |
1.2.28 |
Asegúrese de que los proveedores de cifrado están configurados correctamente. |
Manual |
L1 |
Depende del entorno |
1.2.29 |
Asegúrese de que el servidor de API solo usa cifrados criptográficos fuertes. |
Manual |
L1 |
Aprobado |
1.3 |
Administrador de controladores |
|
|
|
1.3.1 |
Asegúrese de que el argumento --terminated-pod-gc-threshold está establecido según corresponda. |
Manual |
L1 |
Aprobado |
1.3.2 |
Garantizar que el argumento --profiling está establecido en false. |
Automatizados |
L1 |
Aprobado |
1.3.3 |
Asegúrese de que el argumento --use-service-account-credentials está establecido en true. |
Automatizados |
L1 |
Aprobado |
1.3.4 |
Asegúrese de que el argumento --service-account-private-key-file está establecido según corresponda. |
Automatizados |
L1 |
Aprobado |
1.3.5 |
Asegúrese de que el argumento --root-ca-file está establecido según corresponda. |
Automatizados |
L1 |
Aprobado |
1.3.6 |
Asegúrese de que el argumento RotateKubeletServerCertificate está establecido en true. |
Automatizados |
L2 |
Aprobado |
1.3.7 |
Asegúrese de que el argumento --bind-address está establecido en 127.0.0.1. |
Automatizados |
L1 |
Control equivalente |
1.4 |
Scheduler |
|
|
|
1.4.1 |
Garantizar que el argumento --profiling está establecido en false. |
Automatizados |
L1 |
Aprobado |
1.4.2 |
Asegúrese de que el argumento --bind-address está establecido en 127.0.0.1. |
Automatizados |
L1 |
Control equivalente |
2 |
etcd |
|
|
|
2.1 |
Asegúrese de que los argumentos --cert-file y --key-file están establecidos según corresponda. |
Automatizados |
L1 |
Aprobado |
2,2 |
Asegúrese de que el argumento --client-cert-auth está establecido en true. |
Automatizados |
L1 |
Aprobado |
2.3 |
Asegúrese de que el argumento --auto-tls no está establecido en true. |
Automatizados |
L1 |
Aprobado |
2.4 |
Asegúrese de que los argumentos --peer-cert-file y --peer-key-file están establecidos según corresponda. |
Automatizados |
L1 |
Aprobado |
2.5 |
Asegúrese de que el argumento --peer-client-cert-auth está establecido en true. |
Automatizados |
L1 |
Aprobado |
2.6 |
Asegúrese de que el argumento --peer-auto-tls no está establecido en true. |
Automatizados |
L1 |
Aprobado |
2.7 |
Asegúrese de que se usa una Entidad de certificación única para etcd. |
Manual |
L2 |
Aprobado |
3 |
Configuración del plano de control |
|
|
|
3.1 |
Autenticación y autorización |
|
|
|
3.1.1 |
La autenticación de certificados de cliente no debe usarse para los usuarios. |
Manual |
L1 |
Aprobado |
3.1.2 |
No se debe usar la autenticación de token de cuenta de servicio para los usuarios |
Manual |
L1 |
Aprobado |
3.1.3 |
No se debe usar la autenticación de token de arranque para los usuarios |
Manual |
L1 |
Aprobado |
3.2 |
Registro |
|
|
|
3.2.1 |
Asegúrese de que se crea una directiva de auditoría mínima. |
Manual |
L1 |
Aprobado |
3.2.2 |
Asegúrese de que la directiva de auditoría cubre los principales problemas de seguridad. |
Manual |
L2 |
Aprobado |
4 |
Nodos de trabajo |
|
|
|
4,1 |
Archivos de configuración del nodo de trabajo |
|
|
|
4.1.1 |
Asegúrese de que los permisos del de servicio de kubelet están establecidos en 600 o son más restrictivos. |
Automatizados |
L1 |
Aprobado |
4.1.2 |
Asegúrese de que la propiedad del archivo de servicio de kubelet está establecida en root:root. |
Automatizados |
L1 |
Aprobado |
4.1.3 |
Si existe un archivo kubeconfig de proxy, asegúrese de que los permisos están establecidos en 600 o son más restrictivos. |
Manual |
L1 |
N/D |
4.1.4 |
Si existe un archivo kubeconfig de proxy, asegúrese de que la titularidad está establecida en root:root. |
Manual |
L1 |
N/D |
4.1.5 |
Asegúrese de que los permisos del archivo kubelet.conf --kubeconfig están establecidos en 600 o son más restrictivos. |
Automatizados |
L1 |
Aprobado |
4.1.6 |
Asegúrese de que la titularidad del archivo kubelet.conf --kubeconfig está establecida en root:root. |
Automatizados |
L1 |
Aprobado |
4.1.7 |
Asegúrese de que los permisos del archivo de las entidades de certificación están establecidos en 600 o son más restrictivos. |
Manual |
L1 |
Aprobado |
4.1.8 |
Asegúrese de que la propiedad del archivo de las entidades de certificado de cliente está establecida en root:root. |
Manual |
L1 |
Aprobado |
4.1.9 |
Si se usa el archivo de configuración kubelet config.yaml, asegúrese de que los permisos están establecidos en 600 o son más restrictivos. |
Automatizados |
L1 |
Aprobado |
4.1.10 |
Si se usa el archivo de configuración kubelet config.yaml, asegúrese de que la titularidad del archivo esté establecida en root:root. |
Automatizados |
L1 |
Aprobado |
4,2 |
Kubelet |
|
|
|
4.2.1 |
Garantizar que el argumento --anonymous-auth está establecido en false. |
Automatizados |
L1 |
Aprobado |
4.2.2 |
Garantizar que el argumento --authorization-mode no está establecido en AlwaysAllow. |
Automatizados |
L1 |
Aprobado |
4.2.3 |
Garantizar que el argumento --client-ca-file está establecido según corresponda. |
Automatizados |
L1 |
Aprobado |
4.2.4 |
Garantizar que el argumento --read-only-port está establecido en 0. |
Manual |
L1 |
Aprobado |
4.2.5 |
Garantizar que el argumento --streaming-connection-idle-timeout no está establecido en 0. |
Manual |
L1 |
Aprobado |
4.2.6 |
Garantizar que el argumento --make-iptables-util-chains está establecido en true. |
Automatizados |
L1 |
Aprobado |
4.2.7 |
Garantizar que el argumento --hostname-override no está establecido. |
Manual |
L1 |
Aprobado |
4.2.8 |
Asegúrese de que el argumento --eventRecordQPS esté establecido en un nivel que garantice la captura de eventos adecuada |
Manual |
L2 |
Aprobado |
4.2.9 |
Asegúrese de que los argumentos --tls-cert-file y --tls-private-key-file están establecidos según corresponda. |
Manual |
L1 |
Aprobado |
4.2.10 |
Garantizar que el argumento --rotate-certificates no está establecido en false. |
Automatizados |
L1 |
Aprobado |
4.2.11 |
Compruebe que el argumento RotateKubeletServerCertificate esté establecido en true |
Manual |
L1 |
No superada |
4.2.12 |
Garantizar que Kubelet solo usa cifrados criptográficos fuertes. |
Manual |
L1 |
Aprobado |
4.2.13 |
Asegúrese de que se establece un límite en los PID de pod |
Manual |
L1 |
Aprobado |
4.3 |
kube-proxy |
|
|
|
4.3.1 |
Asegúrese de que el servicio de métricas kube-proxy está enlazado a localhost |
Automatizados |
L1 |
Aprobado |
5 |
Directivas |
|
|
|
5,1 |
RBAC y cuentas de servicio |
|
|
|
5.1.1 |
Garantizar que el rol de administrador del clúster solo se usa cuando es necesario. |
Automatizados |
L1 |
Depende del entorno |
5.1.2 |
Minimizar el acceso a secretos. |
Automatizados |
L1 |
Depende del entorno |
5.1.3 |
Minimizar el uso de caracteres comodín en Roles y ClusterRoles. |
Automatizados |
L1 |
Depende del entorno |
5.1.4 |
Minimizar el acceso para crear pods. |
Automatizados |
L1 |
Depende del entorno |
5.1.5 |
Garantizar que las cuentas de servicio predeterminadas no se usan activamente. |
Automatizados |
L1 |
Depende del entorno |
5.1.6 |
Garantizar que los tokens de la cuenta de servicio solo se montan cuando sea necesario. |
Automatizados |
L1 |
Depende del entorno |
5.1.7 |
Evitar el uso del grupo system:masters |
Manual |
L1 |
Depende del entorno |
5.1.8 |
Limitar el uso de los permisos Bind, Impersonate y Escalate en el clúster de Kubernetes |
Manual |
L1 |
Depende del entorno |
5.1.9 |
Minimizar el acceso para crear volúmenes persistentes |
Manual |
L1 |
Depende del entorno |
5.1.10 |
Minimizar el acceso al subrecurso de proxy de los nodos |
Manual |
L1 |
Depende del entorno |
5.1.11 |
Minimizar el acceso al subrecurso de aprobación de los objetos certificatesigningrequests |
Manual |
L1 |
Depende del entorno |
5.1.12 |
Minimizar el acceso a los objetos de configuración de webhook |
Manual |
L1 |
Depende del entorno |
5.1.13 |
Minimizar el acceso a la creación de tokens de cuenta de servicio |
Manual |
L1 |
Depende del entorno |
5.2 |
Estándares de seguridad de pods |
|
|
|
5.2.1 |
Asegúrese de que el clúster tenga al menos un mecanismo de control de directivas activo implementado |
Manual |
L1 |
Depende del entorno |
5.2.2 |
Minimizar la admisión de contenedores con privilegios. |
Manual |
L1 |
Depende del entorno |
5.2.3 |
Minimizar la admisión de contenedores que quieren compartir el espacio de nombres de id. del proceso de host. |
Manual |
L1 |
Depende del entorno |
5.2.4 |
Minimizar la admisión de contenedores que quieren compartir el espacio de nombres de IPC del proceso de host. |
Manual |
L1 |
Depende del entorno |
5.2.5 |
Minimizar la admisión de contenedores que quieren compartir el espacio de nombres de red del host. |
Manual |
L1 |
Depende del entorno |
5.2.6 |
Minimizar la admisión de contenedores con allowPrivilegeEscalation. |
Manual |
L1 |
Depende del entorno |
5.2.7 |
Minimizar la admisión de contenedores raíz. |
Manual |
L2 |
Depende del entorno |
5.2.8 |
Minimizar la admisión de contenedores con capacidad NET_RAW. |
Manual |
L1 |
Depende del entorno |
5.2.9 |
Minimizar la admisión de contenedores con capacidades agregadas. |
Manual |
L1 |
Depende del entorno |
5.2.10 |
Minimizar la admisión de contenedores con capacidades asignadas. |
Manual |
L2 |
Depende del entorno |
5.2.11 |
Minimizar la admisión de contenedores de Windows HostProcess |
Manual |
L1 |
Depende del entorno |
5.2.12 |
Minimizar la admisión de volúmenes de HostPath |
Manual |
L1 |
Depende del entorno |
5.2.13 |
Minimizar la admisión de contenedores que usan HostPorts |
Manual |
L1 |
Depende del entorno |
5.3 |
Directivas de red y CNI |
|
|
|
5.3.1 |
Garantizar que la CNI en uso admite directivas de red. |
Manual |
L1 |
Aprobado |
5.3.2 |
Garantizar que todos los espacios de nombres tienen definidas directivas de red. |
Manual |
L2 |
Depende del entorno |
5.4 |
Administración de secretos |
|
|
|
5.4.1 |
Preferir usar secretos como archivos en lugar de secretos como variables de entorno. |
Manual |
L2 |
Depende del entorno |
5.4.2 |
Considerar la posibilidad de usar el almacenamiento de secretos externo. |
Manual |
L2 |
Depende del entorno |
5.5 |
Control de admisión extensible |
|
|
|
5.5.1 |
Configurar Image Provenance mediante el controlador de admisión ImagePolicyWebhook |
Manual |
L2 |
No superada |
5.6 |
Directivas generales |
|
|
|
5.6.1 |
Crear límites administrativos entre recursos mediante espacios de nombres. |
Manual |
L1 |
Depende del entorno |
5.6.2 |
Garantizar que el perfil seccomp está establecido en docker/predeterminado en las definiciones de pod. |
Manual |
L2 |
Depende del entorno |
5.6.3 |
Aplicar contexto de seguridad a los pods y contenedores. |
Manual |
L2 |
Depende del entorno |
5.6.4 |
No se debe usar el espacio de nombres predeterminado. |
Manual |
L2 |
Depende del entorno |