Activer les règles de sécurité des pods

En activant les règles de sécurité des pods, vous vous assurez que les espaces de noms compromis (autres que istio-system) n'affectent pas la sécurité des autres espaces de noms qui partagent les mêmes nœuds. Des exemples de fichiers de ressources PodSecurityPolicy qui fonctionnent avec Mesh CA sont fournis avec Anthos Service Mesh. Vous pouvez modifier ces fichiers si nécessaire. Par la suite, vous devez d'abord appliquer les règles de sécurité des pods, puis activer la règle de sécurité des pods pour le cluster GKE.

Activer les règles de sécurité des pods

  1. Vérifiez si des règles de sécurité des pods sont déjà définies dans votre système :

    kubectl get psp --all-namespaces
    
    • Si la commande renvoie une liste de règles existantes, des règles de sécurité des pods sont déjà appliquées dans votre système. Nous vous recommandons d'avoir vos fichiers YAML PodSecurityPolicy existants accessibles au cas où vous auriez besoin d'effectuer un rollback. Vous devez ajouter la section suivante à la partie spec de chacune de vos règles de sécurité des pods, à l'exception de celles commençant par gce.

      allowedHostPaths:
        - pathPrefix: "/var/run/sds"
          readOnly: true
      allowedCapabilities:
        - NET_ADMIN
        - NET_RAW
      

      Ces lignes permettent la lecture à partir du chemin d'accès à l'hôte /var/run/sds et autorisent l'injection side-car automatique.

      Vous pouvez utiliser kubectl pour modifier et appliquer les règles de sécurité des pods dans Kubernetes :

      kubectl edit psp YOUR_EXISTING_POD_SECURITY_POLICY
      
    • Si la commande renvoie No resources found, aucune règle de sécurité des pods n'est définie. Vous devrez peut-être modifier le fichier samples/security/psp/all-pods-psp.yaml pour vous assurer qu'il n'entre pas en conflit avec vos charges de travail existantes. Pour en savoir plus, consultez le guide des règles de sécurité des pods. Après avoir modifié le fichier, appliquez-le :

      kubectl apply -f "samples/security/psp/all-pods-psp.yaml"
      
  2. Appliquez la règle de sécurité des pods pour sécuriser le service de détection de secrets (SDS) :

    kubectl apply -f "samples/security/psp/citadel-agent-psp.yaml"
    

    Cela donne à l'agent Citadel (également appelé Agent de nœuds) le droit de créer le chemin d'accès UDS /var/run/sds sur la VM hôte.

  3. Exécutez la commande suivante pour activer la règle de sécurité des pods :

    gcloud beta container clusters update ${CLUSTER_NAME} \
        --enable-pod-security-policy
    

    L'activation des règles de sécurité des pods peut prendre plusieurs minutes. Pendant ce processus, les charges de travail existantes ne peuvent pas se connecter au maître Kubernetes. Attendez que le maître Kubernetes soit à nouveau opérationnel. Vous pouvez vérifier l'état du cluster dans Google Cloud Console sur la page Clusters Kubernetes.

    Pour en savoir plus, consultez la page Utiliser des règles de sécurité des pods.

Vérifier les règles de sécurité des pods

Si vous avez des charges de travail existantes, nous vous recommandons de vérifier que celles-ci peuvent être déployées avec les nouvelles règles de sécurité des pods.

  1. Choisissez les déploiements que vous souhaitez vérifier et augmenter leurs instances dupliquées. Par exemple, si le service spécifié comporte une instance dupliquée, augmentez-la de 1 :

    kubectl scale deployment YOUR_DEPLOYMENT --replicas=2 -n YOUR_NAMESPACE
    
  2. Vérifiez que le déploiement fait un scaling à la hausse :

    kubectl get deploy
    
  3. Vérifiez que la nouvelle charge de travail peut être déployée. Cela signifie que la règle de sécurité des pods n'a pas d'incidence sur le déploiement d'une charge de travail pour le service.

    kubectl get deployment YOUR_SERVICE -n YOUR_NAMESPACE
    NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
    YOUR_SERVICE            2/2     2            2           ...
    
  4. Faire un scaling à la baisse des instances dupliquées du service :

    kubectl scale deployment YOUR_SERVICE --replicas=1 -n YOUR_NAMESPACE
    
  5. Si vos charges de travail ne parviennent pas à se déployer, vous pouvez désactiver temporairement la stratégie de sécurité des pods tout en corrigeant les fichiers YAML :

    gcloud beta container clusters update ${CLUSTER_NAME} \
      --no-enable-pod-security-policy
    

Étapes suivantes