Abilitando i criteri di sicurezza dei pod, ti assicuri che gli spazi dei nomi compromessi (diversi da istio-system
) non influiscano sulla sicurezza di altri spazi dei nomi che condividono gli stessi nodi. I file di risorse PodSecurityPolicy
di esempio che funzionano con Mesh CA sono forniti con Anthos Service Mesh. Puoi modificare questi file in base alle esigenze. Di seguito, devi prima applicare i criteri di sicurezza dei pod, quindi abilitare il criterio di sicurezza dei pod per il cluster GKE.
Attivazione dei criteri di sicurezza dei pod
Controlla se nel sistema sono già stati definiti criteri di sicurezza dei pod:
kubectl get psp --all-namespaces
Se il comando restituisce un elenco di criteri esistenti, nel sistema sono già applicati i criteri di sicurezza dei pod. Ti consigliamo di avere a disposizione i tuoi file YAML
PodSecurityPolicy
esistenti nel caso in cui tu debba eseguire un rollback. Devi aggiungere la seguente sezione alla partespec
in ciascuno dei criteri di sicurezza dei pod esistenti, ad eccezione di quelli che iniziano congce
.allowedHostPaths: - pathPrefix: "/var/run/sds" readOnly: true allowedCapabilities: - NET_ADMIN - NET_RAW
Queste righe consentono la lettura dal percorso host
/var/run/sds
e consentono l'inserimento automatico del file collaterale.Puoi utilizzare
kubectl
per modificare e applicare i criteri di sicurezza dei pod in Kubernetes:kubectl edit psp YOUR_EXISTING_POD_SECURITY_POLICY
Se il comando restituisce
No resources found
, non hai definito un criterio di sicurezza dei pod. Potresti comunque dover modificare il filesamples/security/psp/all-pods-psp.yaml
per assicurarti che non sia in conflitto con i carichi di lavoro esistenti. Per ulteriori dettagli, consulta la guida ai criteri di sicurezza dei pod. Dopo aver modificato il file, applicalo:kubectl apply -f "samples/security/psp/all-pods-psp.yaml"
Applica il criterio di sicurezza dei pod per proteggere il Secret Discovery Service (SDS):
kubectl apply -f "samples/security/psp/citadel-agent-psp.yaml"
In questo modo concedi all'agente Citadel (noto anche come agente Node) il privilegio di creare il percorso UDS
/var/run/sds
sulla VM host.Esegui questo comando per abilitare il criterio di sicurezza dei pod:
gcloud beta container clusters update ${CLUSTER_NAME} \ --enable-pod-security-policy
L'attivazione dei criteri di sicurezza dei pod potrebbe richiedere diversi minuti. Durante questo processo, i carichi di lavoro esistenti non saranno in grado di connettersi al master Kubernetes. Attendi che il master Kubernetes sia di nuovo attivo. Puoi verificare lo stato del cluster nella console Google Cloud nella pagina Cluster Kubernetes.
Per ulteriori informazioni, consulta Utilizzare i criteri di sicurezza dei pod.
Verifica dei criteri di sicurezza dei pod
Se disponi di carichi di lavoro esistenti, ti consigliamo di verificare che sia possibile eseguirne il deployment con i nuovi criteri di sicurezza dei pod.
Scegli i deployment che vuoi controllare e aumentane le repliche. Ad esempio, se il servizio specificato ha 1 replica, aumentala di 1:
kubectl scale deployment YOUR_DEPLOYMENT --replicas=2 -n YOUR_NAMESPACE
Verifica che il deployment faccia lo scale up:
kubectl get deploy
Verifica che sia possibile eseguire il deployment del nuovo carico di lavoro. Ciò significa che il criterio di sicurezza dei pod non influisce sul deployment di un carico di lavoro per il servizio.
kubectl get deployment YOUR_SERVICE -n YOUR_NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE YOUR_SERVICE 2/2 2 2 ...
Fai lo scale down delle repliche del servizio:
kubectl scale deployment YOUR_SERVICE --replicas=1 -n YOUR_NAMESPACE
Se il deployment dei carichi di lavoro non viene eseguito correttamente, puoi disattivare temporaneamente il criterio di sicurezza dei pod durante la correzione dei file YAML:
gcloud beta container clusters update ${CLUSTER_NAME} \ --no-enable-pod-security-policy