Cuando habilitas las políticas de seguridad de Pods, te aseguras de que los espacios de nombres vulnerados (que no sean istio-system
) no afecten la seguridad de otros espacios de nombres que comparten los mismos nodos. Los archivos de recursos de muestra PodSecurityPolicy
que funcionan con la CA de Mesh se proporcionan con Anthos Service Mesh. Puedes modificar estos archivos según sea necesario. En lo sucesivo, primero debes aplicar las políticas de seguridad del Pod y, luego, habilitar la política de seguridad de Pods para el clúster de GKE.
Habilitar políticas de seguridad en los pods
Verifica si tu sistema ya tiene políticas de seguridad de Pods definidas:
kubectl get psp --all-namespaces
Si el comando muestra una lista de políticas existentes, tu sistema ya tiene políticas de seguridad de Pods aplicadas. Te recomendamos que tengas tus archivos YAML
PodSecurityPolicy
existentes disponibles en caso de que necesites hacer un rollback. Debes agregar la siguiente sección a la partespec
en cada una de las políticas de seguridad de Pods existentes, excepto las que comienzan congce
.allowedHostPaths: - pathPrefix: "/var/run/sds" readOnly: true allowedCapabilities: - NET_ADMIN - NET_RAW
Estas líneas permiten leer desde la ruta de acceso del host
/var/run/sds
y permiten la inserción automática del archivo adicional.Puedes usar
kubectl
para editar y aplicar las políticas de seguridad de Pods en Kubernetes:kubectl edit psp YOUR_EXISTING_POD_SECURITY_POLICY
Si el comando muestra
No resources found
, no tienes definida una política de seguridad de Pod. Es posible que debas modificar el archivosamples/security/psp/all-pods-psp.yaml
para asegurarte de que no entren en conflicto con tus cargas de trabajo existentes. Para obtener más detalles, consulta la Guía de políticas de seguridad de Pods. Luego de modificar el archivo, aplícalo:kubectl apply -f "samples/security/psp/all-pods-psp.yaml"
Aplica la política de seguridad del pod para proteger el Servicio de descubrimiento de secretos (SDS):
kubectl apply -f "samples/security/psp/citadel-agent-psp.yaml"
Esto le da al agente de Citadel (también conocido como agente de nodo) el privilegio para crear la ruta de acceso
/var/run/sds
de UDS en la VM host.Ejecuta el siguiente comando para habilitar la política de seguridad de Pods:
gcloud beta container clusters update ${CLUSTER_NAME} \ --enable-pod-security-policy
Es posible que la habilitación de las políticas de seguridad de Pods demore varios minutos. Durante este proceso, las cargas de trabajo existentes no podrán conectarse a la instancia principal de Kubernetes. Espere hasta que la instancia principal de Kubernetes vuelva a estar disponible. Puedes verificar el estado del clúster en la consola de Google Cloud en la página de clústeres de Kubernetes.
Para obtener más información, consulta Usa políticas de seguridad de Pods.
Verifica las políticas de seguridad en los Pods
Si tienes cargas de trabajo existentes, te recomendamos que verifiques que las cargas de trabajo puedan implementarse con las nuevas políticas de seguridad de Pods.
Selecciona las implementaciones que deseas verificar y aumentar sus réplicas. Por ejemplo, si el servicio especificado tiene 1 réplica, entonces aumenta el número en 1:
kubectl scale deployment YOUR_DEPLOYMENT --replicas=2 -n YOUR_NAMESPACE
Verifica que la implementación escale verticalmente:
kubectl get deploy
Verifica que se pueda implementar la carga de trabajo nueva. Esto significa que la política de seguridad del Pod no afecta la implementación de una carga de trabajo para el servicio.
kubectl get deployment YOUR_SERVICE -n YOUR_NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE YOUR_SERVICE 2/2 2 2 ...
Reduce la escala de las réplicas del servicio:
kubectl scale deployment YOUR_SERVICE --replicas=1 -n YOUR_NAMESPACE
Si tus cargas de trabajo no se implementan de forma correcta, puedes inhabilitar la política de seguridad de Pods de forma temporal mientras corriges los archivos YAML:
gcloud beta container clusters update ${CLUSTER_NAME} \ --no-enable-pod-security-policy