¿Qué es Runasuser en el entorno Kubernetes??
El RunAsUser es uno de los campos de contexto de seguridad especificados en el archivo de configuración que especifica la ID de usuario para proporcionar los privilegios de seguridad para un determinado contenedor o POD. El valor del campo RunAsUser determina que todos los procesos en el contenedor se ejecutarán con la ID de RunAsUser especificada.
El contexto de seguridad se utiliza para definir la configuración de control de acceso o definir los privilegios del usuario para un determinado contenedor o una cápsula. La configuración del contexto de seguridad principal incluye ID de usuario, ID de grupo primario, ID de grupo complementaria, SECCOMP, APARMOR, Capacidades de LINEX, etc. La configuración del contexto de seguridad no se limita a estas cosas, se incluyen muchas más configuraciones.
Sin embargo, en este artículo, nuestro objetivo es guiarlo sobre cómo definir los privilegios de seguridad para un determinado usuario para que el proceso pueda ejecutarse utilizando la ID de ese usuario en lugar del usuario administrador. Entonces, pasemos a la siguiente sección para verificar para aprender cómo definir la configuración del contexto de seguridad para un contenedor o una vaina.
Requisitos previos
Antes de comenzar, asegúrese de que su sistema satisfaga las necesidades de requisitos previos para que no termine con ningún error mientras usa Kubernetes como usuario general. La lista de los requisitos previos se da a continuación:
Si tiene todas estas herramientas instaladas en su sistema, está listo para usar el entorno Kubernetes como usuario general.
Especifique el contexto de seguridad de RunAsUser para el entorno Kubernetes
En general, todos los comandos se ejecutan o trabajan en el entorno Kubernetes con privilegios de administración. Si necesita cambiar los privilegios de seguridad del usuario, puede cambiar los derechos del usuario al permitir que un cierto usuario tenga acceso al sistema. Esto se puede hacer siguiendo el proceso que se proporciona a continuación.
Primero, debemos asegurarnos de que el clúster de Minikube esté funcionando con éxito y para eso, utilizaremos el siguiente comando:
> Minikube Start
Esto iniciará el clúster de minikube si no se ha iniciado anteriormente o se asegurará de que el minikube esté en modo activo.
Ahora que nuestro clúster de minikube está en funcionamiento, estamos listos para cambiar las limitaciones de seguridad para nuestro sistema. Para especificar la configuración de seguridad para un POD en el clúster, necesitaremos un archivo de configuración YAML donde necesitemos proporcionar la definición de implementación. Use el comando 'nano' para producir un nuevo archivo de configuración de YAML.
> Nano SC.yaml
Este comando creará un archivo YAML llamado SC.yaml. Ahora, puede poner la definición de implementación en este archivo de configuración. La definición de implementación se proporciona a continuación para su referencia:
Ahora, guarde la definición de implementación en el SC.Archivo de configuración de YAML para que podamos aplicar la implementación en los pods. Tenga en cuenta que el valor del RunAsUser es 1000, lo que significa que la ID de usuario es 1000 que podemos usar para referirnos al usuario específico. El RunAsUser especifica que todos los procesos para los contenedores en el POD se ejecutarán con el valor de RunAsuser dado. RinasSgroup especifica la ID del grupo principal para el proceso en el contenedor del POD, mientras que el FSGroup especifica la ID de grupo complementaria para el proceso en el contenedor del POD.
Ahora, apliquemos la definición de configuración en la implementación utilizando el comando que se proporciona a continuación:
> kubectl aplicar -f sc.yaml
Esto ha creado las vainas a partir de la definición de configuración. Verifiquemos el estado actual del POD en el clúster con el siguiente comando:
> Kubectl Get POD Security-Context-Demo
El estado de la cápsula está 'en ejecución', lo que significa que podemos implementar el shell en este contenedor. Use el siguiente comando para obtener el shell en el contenedor de Security-Context-Demo Pod:
> kubectl exec -it Security -Context -Demo - -SH
El siguiente paso es enumerar todos los procesos que se están ejecutando:
> PD
Como hemos definido el runasuser como 1000, todos los procesos se ejecutan como 1000, lo que significa que hemos proporcionado al usuario 1000 privilegios para tener acceso al sistema. Las preferencias de seguridad se han cambiado para el usuario 1000. Ahora, todos los procesos se ejecutarán con el ID de usuario 1000. Vamos a navegar a otro directamente para verificar el contexto de seguridad del usuario 1000:
> CD /Datos
Esto nos navegará al directorio /Data donde podemos enumerar todo en el directorio con el siguiente comando:
> ls -l
En la salida anterior, puede ver que el directorio /Data está utilizando la ID de usuario complementaria 2000. Ahora, navegamos a otro directorio para verificar qué ID de usuario está usando:
> CD Demo
Esto nos llevará al directorio /demo donde podemos enumerar todo desde el directorio:
> ls -l
Veamos qué ID (s) han sido utilizados por el directorio /Data /Demo:
> ID
La salida muestra que los archivos en el directorio /datos /demo están utilizando el ID de usuario 1000, la ID de grupo primaria 3000 y la ID de grupo complementaria 2000.
Para cerrar el shell, puede usar el comando de salida y salir del shell inmediatamente:
> existir
Recuerde que hemos navegado a diferentes directorios para verificar los privilegios de RunAsuser, por lo que debemos salir correctamente del shell para recuperar los privilegios de seguridad del usuario.
Conclusión
En este artículo, aprendimos específicamente sobre los privilegios de seguridad de RunAsuser. Aprendimos que el proceso se puede ejecutar en el entorno de Kubernetes sin tener derechos de administrador. El contexto de seguridad se puede definir para otros usuarios y pueden tener acceso seguro al sistema y pueden ejecutar todos los procesos según sea necesario. Cuando habilita el contexto de seguridad para un determinado usuario asignándoles la ID de RunAsUser, todos los procesos en los contenedores de la cápsula se ejecutarán con esa identificación.