Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Pod Security Admission (PSA) utilise des libellés pour appliquer les politiques Pod Security Standards aux pods s’exécutant dans un espace de noms. Dans AKS, Pod Security Admission est activé par défaut. Pour plus d’informations sur l’admission de la sécurité des pods et les normes de sécurité des pods, consultez Appliquer des normes de sécurité de pod avec des étiquettes d’espace de noms et Normes de sécurité des pods.
Pod Security Admission est une solution intégrée de gestion des stratégies pour les déploiements sur un seul cluster. Si vous souhaitez utiliser une stratégie de niveau entreprise, nous vous recommandons d’utiliser une stratégie Azure.
Avant de commencer
- Un abonnement Azure. Si vous n’avez pas d’abonnement Azure, vous pouvez créer un compte gratuit.
- Azure CLI installé.
- Un cluster AKS existant exécutant Kubernetes version 1.23 ou ultérieure.
Activer l’admission de la sécurité des pods pour un espace de noms dans votre cluster
Activer PSA pour un seul espace de noms
Activez PSA pour un seul espace de noms dans votre cluster à l’aide de la commande
kubectl label, puis définissez l’étiquettepod-security.kubernetes.io/enforceavec la valeur de politique que vous souhaitez appliquer. L’exemple suivant active la stratégierestrictedpour l’espace de noms NAMESPACE.kubectl label --overwrite ns NAMESPACE pod-security.kubernetes.io/enforce=restricted
Activer PSA pour tous les namespaces
Activez l’admission de la sécurité des pods pour tous les espaces de noms dans votre cluster à l’aide de la commande
kubectl label, puis définissez l’étiquettepod-security.kubernetes.io/warnavec la valeur de stratégie que vous souhaitez appliquer. L’exemple suivant active la stratégiebaselinepour tous les espaces de noms de votre cluster. Cette stratégie génère un avertissement visible par l’utilisateur si des pods sont déployés dans un espace de noms qui ne répond pas à la stratégie de base.kubectl label --overwrite ns --all pod-security.kubernetes.io/warn=baseline
Appliquer une stratégie Pod Security Admission à l’aide d’un déploiement
Créez deux espaces de noms à l’aide de la commande
kubectl create namespace.kubectl create namespace test-restricted kubectl create namespace test-privilegedActivez une stratégie PSA pour chaque espace de noms, l’un avec la stratégie
restrictedet l’autre avec la stratégiebaseline, à l’aide de la commandekubectl label.kubectl label --overwrite ns test-restricted pod-security.kubernetes.io/enforce=restricted pod-security.kubernetes.io/warn=restricted kubectl label --overwrite ns test-privileged pod-security.kubernetes.io/enforce=privileged pod-security.kubernetes.io/warn=privilegedCela configure les espaces de noms
test-restrictedettest-privilegedpour bloquer les pods en cours d’exécution et générer un avertissement à l’utilisateur si des pods qui ne répondent pas à la stratégie configurée tentent de s’exécuter.Tentez de déployer des pods dans l’espace de noms
test-restrictedà l’aide de la commandekubectl apply. Cette commande génère une erreur, car l’espace de nomstest-restrictedest configuré pour bloquer les pods qui ne répondent pas à la stratégierestricted.kubectl apply --namespace test-restricted -f https://raw.githubusercontent.com/Azure-Samples/azure-voting-app-redis/master/azure-vote-all-in-one-redis.yamlL’exemple de sortie suivant montre un avertissement indiquant que les pods violent la stratégie configurée :
... Warning: would violate PodSecurity "restricted:latest": allowPrivilegeEscalation != false (container "azure-vote-back" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (container "azure-vote-back" must set securityContext.capabilities.drop=["ALL"]), runAsNonRoot != true (pod or container "azure-vote-back" must set securityContext.runAsNonRoot=true), seccompProfile (pod or container "azure-vote-back" must set securityContext.seccompProfile.type to "RuntimeDefault" or "Localhost") deployment.apps/azure-vote-back created service/azure-vote-back created Warning: would violate PodSecurity "restricted:latest": allowPrivilegeEscalation != false (container "azure-vote-front" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (container "azure-vote-front" must set securityContext.capabilities.drop=["ALL"]), runAsNonRoot != true (pod or container "azure-vote-front" must set securityContext.runAsNonRoot=true), seccompProfile (pod or container "azure-vote-front" must set securityContext.seccompProfile.type to "RuntimeDefault" or "Localhost") deployment.apps/azure-vote-front created service/azure-vote-front createdVérifiez qu’aucun pod n’est en cours d’exécution dans l’espace de noms
test-restrictedà l’aide de la commandekubectl get pods.kubectl get pods --namespace test-restrictedL’exemple de sortie suivant ne montre aucun pod en cours d’exécution dans l’espace de noms
test-restricted:No resources found in test-restricted namespace.Tentez de déployer des pods dans l’espace de noms
test-privilegedà l’aide de la commandekubectl apply. Cette fois, les pods doivent être déployés correctement, car l’espace de nomstest-privilegedest configuré pour autoriser les pods qui enfreignent la stratégieprivileged.kubectl apply --namespace test-privileged -f https://raw.githubusercontent.com/Azure-Samples/azure-voting-app-redis/master/azure-vote-all-in-one-redis.yamlL’exemple de sortie suivant montre les pods déployés avec succès :
deployment.apps/azure-vote-back created service/azure-vote-back created deployment.apps/azure-vote-front created service/azure-vote-front createdVérifiez que des pods sont en cours d’exécution dans l’espace de noms
test-privilegedà l’aide de la commandekubectl get pods.kubectl get pods --namespace test-privilegedL’exemple de sortie suivant montre deux pods en cours d’exécution dans l’espace de noms
test-privileged:NAME READY STATUS RESTARTS AGE azure-vote-back-6fcdc5cbd5-svbdf 1/1 Running 0 2m29s azure-vote-front-5f4b8d498-tqzwv 1/1 Running 0 2m28sSupprimez les espaces de noms
test-restrictedettest-privilegedà l’aide de la commandekubectl delete.kubectl delete namespace test-restricted test-privileged
Étapes suivantes
Dans cet article, vous avez appris à activer Pod Security Admission sur un cluster AKS. Pour plus d’informations sur Pod Security Admission, consultez Faire appliquer les normes de sécurité des pods avec des labels d’espace de noms. Pour plus d’informations sur les normes de sécurité des pods utilisées par Pod Security Admission, consultez Normes de sécurité des pods.