Configurar la admisión de seguridad de Pod en Kubernetes

Configurar la admisión de seguridad de Pod en Kubernetes
La admisión de seguridad de POD en Kubernetes es una característica que proporciona características de seguridad en pods que se ejecutan en un espacio de nombres. Los estándares nos permiten poner restricciones sobre el comportamiento de las vainas de manera simple y consistente. En esta guía, estamos a punto de la administración de seguridad. Aprenderemos a configurar la seguridad de la cápsula en las cápsulas que se ejecutan en un espacio de nombres con la ayuda de un escenario básico.

¿Qué es la admisión de seguridad de Pod en Kubernetes??

Para hacer cumplir los estándares de seguridad de Pod en las cápsulas que se ejecutan en un espacio de nombres, Kubernetes V1.22 tiene un controlador de admisión incorporado llamado Admisión de Seguridad de Pod. Estos estándares se utilizan para establecer exenciones y valores predeterminados. Para configurar la admisión de seguridad de Pod, debe tener un mínimo de V1.22 Kubernetes y Podsecurity Gate Pate habilitado. Liberación alfa de Kubernetes V1.22 tiene Política de seguridad POD (PSP) que se ha desapercido en Kubernetes V1.25. Ahora, la mejora de la Política de Seguridad del Pod (PSP) se conoce como Admisión de Seguridad POD (PSA). A diferencia de la política de seguridad del POD, la admisión de seguridad del POD no respalda los recursos de mutación, sin embargo, valida el controlador de admisión.

Además, los estándares de seguridad del POD han definido tres niveles para la admisión de seguridad de POD: línea de base, restringida y privilegiada. Estos niveles se colocan en un contexto de seguridad de una cápsula y varios otros campos mediante la admisión de seguridad de POD. Después de configurar el modo de control de admisión para la seguridad de POD para cada espacio de nombres, puede configurar el espacio de nombres para especificar ese modo. El conjunto de etiquetas proporcionadas por Kubernetes le permite elegir cualquier nivel estándar de seguridad POD para un espacio de nombres. Ahora, aprendamos cómo configurar la admisión de seguridad de Pod con la ayuda de un ejemplo simple.

Requisitos previos

Antes de moverse más allá, asegúrese de tener estas herramientas básicas instaladas y las características requeridas habilitadas:

  • Ubuntu 22.04 o cualquier otra última versión
  • Clúster de Kubernetes V1.22 con -Feature -Gates = ".. .,PODSECURITY = True "Bandera habilitada
  • Clúster de minikube
  • Herramienta de línea de comandos kubectl

Una vez que haya configurado estas herramientas en su sistema, está listo para configurar la admisión de seguridad de Pod en Kubernetes. Pasando a la sección de implementación suponiendo que ya ha instalado todos estos requisitos previos.

Cómo configurar la admisión de seguridad de Pod?

Siga los pasos que se dan a continuación y configure fácilmente la admisión de seguridad de Pod en Kubernetes para su sistema.

Paso # 1: Inicie Kubernetes

Primero, necesitamos el clúster de Minikube en funcionamiento. Entonces, para eso usaremos el comando que se indica a continuación para iniciarlo correctamente:

> Minikube Start

Este comando asegura que el clúster de minikube esté funcionando para que pueda implementar su comando y ejecutar aplicaciones en el clúster.

Paso # 2: Hacer cumplir la admisión de seguridad de POD con implementación

Hay tres niveles definidos por los estándares de seguridad del POD: línea de base, privilegio y restringidos. Aquí, aplicaremos una admisión de seguridad de Pod en dos niveles de estándares de seguridad de POD, privilegiados y restringidos.

Paso # 2 (a): Crear espacios de nombres para vainas

Primero, crearemos dos espacios de nombres. El espacio de nombres se creará con la Política privilegiada utilizando el comando que se proporciona a continuación:

> kubectl crea el espacio de nombres privilegiado

El segundo espacio de nombres se creará con la política restringida, utilizando el comando que se proporciona a continuación:

> kubectl crea el espacio de nombres restringido

Paso # 2 (b): Establezca estándares de seguridad en los espacios de nombres

Ahora, necesitamos establecer estándares de seguridad para los espacios de nombres que hemos creado en el paso anterior. Para establecer el estándar de seguridad para la política privilegiada, estamos utilizando el comando que se proporciona a continuación:

> Etiqueta Kubectl-Overwrite NS Priviled POD-Security.Kubernetes.io/force = privilegiado pod-seguridad.Kubernetes.io/warn = privilegiado

Estamos utilizando el siguiente comando para establecer el estándar de seguridad para la política limitada:

> Etiqueta Kubectl-Overwrite NS Restricción de la seguridad de la prueba.Kubernetes.IO/Force = Restringly Pod-Security.Kubernetes.io/warn = restringido

Estos estándares permitirán que los espacios de nombres bloqueen cualquier POD en ejecución y enviarán una advertencia al usuario si algún POD intenta ejecutarse en caso de no cumplir con la política configurada. Ahora, intentemos implementar vainas en el espacio de nombres para verificar qué resultado obtenemos.

Paso # 3: Implementar vainas en los espacios de nombres

Se han creado los espacios de nombres y se establecen los estándares de seguridad en ellos. Entonces, implementemos vainas en esos espacios de nombres administrados por la seguridad de POD.

Paso # 3 (a): Intente implementar vainas

Primero, estamos implementando vainas en la política privilegiada utilizando el comando que se proporciona a continuación:

kalsoom@kalsoom-virtualbox> Kubectl Aplicar-Namespace Test-Privileged -f https: // raw.githubusercontent.com/azure-samples/azure-voting-app-redis/maestro/azure-vote-todo en uno-redis.yaml

En segundo lugar, utilizando el comando proporcionado a continuación, estamos implementando vainas en la política privilegiada:

kalsoom@kalsoom-virtualbox> Kubectl Aplicar-Namespace Test-Restrictted -f https: // raw.githubusercontent.com/azure-samples/azure-voting-app-redis/maestro/azure-vote-todo en uno-redis.yaml

Cuando intentamos desplegar vainas en la política limitada, se generó una advertencia, como se puede ver. A medida que las vainas están violando la política configurada, esta advertencia se ha generado. No hay advertencia generada para la política privilegiada porque ningún POD ha estado violando la política configurada.

Paso # 3 (b): Verifique la ejecución de vainas en los espacios de nombres

Ahora, verifiquemos si hay algún pod en los espacios de nombres o no. Primero, verificaremos la Política privilegiada con el siguiente comando:

> Kubectl Get Pods -namespace Priviled

Tenga en cuenta que algunas vainas se están ejecutando en el espacio de nombres. No se generaron advertencias para la política privilegiada, lo que significa que algunas vainas se ejecutan en el espacio de nombres que no violan la política configurada. Ahora, verifiquemos si hay algún POD en el espacio de nombres restringido con el siguiente comando:

> Kubectl Get Pods -Namespace Test -Restricted

No hay pod corriendo en el espacio de nombres restringido. Recuerde que obtuvimos la advertencia de que algunas vainas han violado la política configurada en el paso anterior.

Paso # 4: Eliminar el espacio de nombres

El último paso es eliminar los espacios de nombres que hemos creado. Use el comando que se proporciona a continuación para eliminar los espacios de nombres:

> Kubectl Eliminar el espacio de nombres de prueba restringido a prueba

Este comando eliminará ambos espacios de nombres del clúster.

Conclusión

En este artículo, proporcionamos pautas sobre la admisión de seguridad del POD (PSA) en Kubernetes. Exploramos lo que es una admisión de seguridad de Pod en Kubernetes. También aprendimos a configurar la admisión de seguridad de Pod en Kubernetes para las cápsulas que se ejecutan en un espacio de nombres. Al demostrar un escenario simple, demostramos cómo configurar fácilmente la admisión de seguridad de Pod para las vainas que se ejecutan en diferentes espacios de nombres.