Las versiones 1.25 y posteriores de Tanzu Kubernetes admiten la controladora de admisión de seguridad de pods. La controladora de admisión de la directiva de seguridad de pods es obsoleta y se eliminó.

Requisito previo: TKR 1.25 y versiones posteriores

El contenido de este tema se aplica a los clústeres de TKG en Supervisor que se aprovisionan con TKR v1.25 y versiones posteriores. De forma predeterminada, versiones de Tanzu Kubernetes habilita la controladora de admisión de seguridad de pods.

El precursor de la controladora de admisión de seguridad de pods es la controladora de admisión de la directiva de seguridad de pods. Los clústeres de TKG en Supervisor aprovisionados con TKR v1.24 y versiones anteriores habilitan la controladora de admisión de la directiva de seguridad de pods. Consulte Configurar la seguridad de pods para TKR 1.24 y Eariler.

Controladora de admisión de seguridad de pods

La controladora de admisión de seguridad de pods es una controladora de Kubernetes que permite aplicar estándares de seguridad de pods a los pods que se ejecutan en los clústeres de TKG. La controladora de admisión de seguridad de pods aplica la seguridad de pods en el nivel del espacio de nombres de Kubernetes. Aplique etiquetas de admisión de seguridad de pods a fin de definir el modo de control de admisión que desea utilizar para la seguridad de pods en cada espacio de nombres.

En la tabla se enumeran los tres modos de control de admisión compatibles con la controladora de admisión de seguridad de pods.
MODO Descripción
Aplicar Las infracciones de directivas harán que se rechace el pod.
Auditar Las infracciones de directivas generarán la adición de una anotación de auditoría al evento registrado en el registro de auditoría, pero de lo contrario están permitidas.
Advertir Las infracciones de directivas activarán una advertencia orientada al usuario, pero de lo contrario están permitidas.

Estándares de seguridad de pods

Los estándares de seguridad de pods definen tres niveles de directivas que cubren el espectro de seguridad. Los estándares son acumulativos y van de permisivos a restrictivos. En la tabla se enumera y describe cada estándar.
Tabla 1. Estándares de seguridad de pods
NIVEL Descripción
Con privilegios Directiva sin restricciones, que brinda el nivel más amplio posible de permisos. Esta directiva permite escalaciones de privilegios conocidos.
Línea base Directiva poco restrictiva que impide escalaciones de privilegios conocidos. Permite la configuración predeterminada (mínimamente especificada) del pod.
Restringido Directiva muy restringida, siguiendo las prácticas recomendadas actuales de protección de pods.

Etiquetas de seguridad de pods

Kubernetes proporciona un conjunto de etiquetas que pueden utilizarse para definir cuáles de los estándares se utilizarán para un espacio de nombres. La etiqueta que aplique define la acción que realiza el plano de control si se detecta una posible infracción. Para un espacio de nombres dado, puede configurar algún modo o todos, o incluso establecer un nivel diferente para los distintos modos.

La sintaxis estándar de las etiquetas es la siguiente:
# MODE must be one of `enforce`, `audit`, or `warn`.
# LEVEL must be one of `privileged`, `baseline`, or `restricted`.
pod-security.kubernetes.io/<MODE>=<LEVEL>

También puede aplicar una etiqueta de versión por modo que se pueda utilizar para fijar la directiva a la versión que se envió con una versión secundaria de Kubernetes determinada. Consulte Aplicar estándares de seguridad de pods con etiquetas de espacio de nombres en la documentación de Kubernetes para obtener más información.

Exigir seguridad de pods para clústeres de TKG

A partir de TKR 1.25, la controladora de admisión de seguridad de pods (Pod Security Admission, PSA) reemplaza las directivas de seguridad de pods (Pod Security Policies, PSP). Con TKR 1.25, TKG en Supervisor admite la aplicación de los tipos de estándares de seguridad de pods con privilegios, línea base y restringido mediante la controladora de PSA. Consulte las Notas de la versión para obtener más información.

De forma predeterminada, para un clúster de TKG en Supervisor creado con TKR 1.25, todos los espacios de nombres tienen restringidos los modos de advertencia y auditoría de seguridad del pod. Este es un ajuste de aplicación no obligatoria: la controladora de PSA puede generar advertencias sobre los pods que infringen la directiva, pero los pods seguirán ejecutándose. Algunos pods del sistema que se ejecutan en kube-system, tkg-system y vmware-system-cloud-provider requieren privilegios elevados. Estos espacios de nombres se excluyen de la seguridad de pods.

Con TKR 1.26, TKG en Supervisor aplicará PSA restringida de forma predeterminada en los clústeres de carga de trabajo. Consulte las Notas de la versión para obtener más información. Los usuarios de TKR 1.25 deben planificar la migración de sus cargas de trabajo de clústeres de TKG a PSA antes de actualizar los clústeres de TKG a TKR 1.26. Consulte Migrar de PodSecurityPolicy al controlador de admisión de PodSecurity integrado en la documentación de Kubernetes para obtener instrucciones.

En la tabla se muestra la configuración de PSA para TKG en Supervisor:
Versión de TKR PSA predeterminada
TKR 1.25.7

modo de advertencia: restringido

modo de auditoría: restringido

modo de aplicación: no establecido

TKR 1.26 y versiones posteriores

modo de aplicación: restringido

En los clústeres de TKG compilados con TKR 1.25, puede utilizar el siguiente comando de ejemplo para actualizar PSA en un espacio de nombres de Kubernetes:
kubectl label --overwrite ns NAMESPACE pod-security.kubernetes.io/audit=privileged 
kubectl label --overwrite ns NAMESPACE pod-security.kubernetes.io/warn=privileged
En los clústeres de TKG compilados con TKR 1.26 y versiones posteriores, puede utilizar los siguientes comandos de ejemplo para actualizar PSA en todos los espacios de nombres de Kubernetes:
kubectl label --overwrite ns NAMESPACE pod-security.kubernetes.io/enforce=privileged
kubectl label --overwrite ns --all pod-security.kubernetes.io/enforce=privileged
kubectl label --overwrite ns --all pod-security.kubernetes.io/warn=restricted