Pregunta 38 | Configuración Pod Security Policy
Crea una Pod Security Policy con las siguientes condiciones:
- PSP name : pod-psp
- No permitir pods privilegiados
- Permitir montaje de volúmenes en pod: secret, configMap
- seLinux, runAsUser, fsGroup: RunAsAny
Solución
1 - Habilitar PSP en el servidor kube-api
Edita el archivo /etc/kubernetes/manifests/kube-api-server.yaml y añade la siguiente configuración.
--enable-admission-plugins=NodeRestriction,PodSecurityPolicy ## añadir "PodSecurityPolicy"
2 - Crear la PSP
vi ~/psp.yaml
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
name: pod-psp
spec:
privileged: false ## asegurar que esto esté configurado como false
seLinux:
rule: RunAsAny
runAsUser:
rule: RunAsAny
supplementalGroups:
rule: RunAsAny
fsGroup:
rule: RunAsAny
volumes: ## aplicar los volúmenes correctos como se especifica en la pregunta
- configMap
- secret
kubectl apply -f ~/psp.yaml
3 - Aplicar PSP en el pod
vi ~/pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: psp-pod
spec:
containers:
- name: app
image: ubuntu
command: ["sleep" , "3600"]
securityContext:
privileged: False ## no-privilegiado
runAsUser: 0
volumes:
- name: data-volume
hostPath:
path: '/data'
type: Directory
kubectl apply -f ~/pod.yaml