Attivazione dei criteri di sicurezza dei pod

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

  1. 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 parte spec in ciascuno dei criteri di sicurezza dei pod esistenti, ad eccezione di quelli che iniziano con gce.

      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 file samples/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"
      
  2. 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.

  3. 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.

  1. 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
    
  2. Verifica che il deployment faccia lo scale up:

    kubectl get deploy
    
  3. 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           ...
    
  4. Fai lo scale down delle repliche del servizio:

    kubectl scale deployment YOUR_SERVICE --replicas=1 -n YOUR_NAMESPACE
    
  5. 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
    

Passaggi successivi