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
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 partiespec
de chacune de vos règles de sécurité des pods, à l'exception de celles commençant pargce
.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 fichiersamples/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"
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.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.
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
Vérifiez que le déploiement fait un scaling à la hausse :
kubectl get deploy
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 ...
Faire un scaling à la baisse des instances dupliquées du service :
kubectl scale deployment YOUR_SERVICE --replicas=1 -n YOUR_NAMESPACE
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
- Mettre à jour vos stratégies d'autorisation
- Apprenez-en plus sur la sécurité dans Anthos Service Mesh.