Aidez à améliorer cette page
Vous souhaitez contribuer à ce guide de l'utilisateur ? Faites défiler cette page vers le bas et sélectionnez Modifier cette page sur GitHub. Vos contributions aideront à améliorer notre guide de l'utilisateur pour tout le monde.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Politique de sécurité de pod
Le contrôleur d'admission de la stratégie de sécurité de Pod Kubernetes valide les demandes de création et de mise à jour de Pod en fonction d'un ensemble de règles. Par défaut, les clusters Amazon EKS sont livrés avec une politique de sécurité entièrement permissive sans aucune restriction. Pour plus d'informations, consultez Stratégies de sécurité de Pod
Note
PodSecurityPolicy
(PSP) est devenue obsolète dans Kubernetes 1.21
et a été supprimée dans Kubernetes 1.25
. Les PSPs sont remplacés par Pod Security Admission (PSA)1.25
, nous vous recommandons d'implémenter PSS dans Amazon EKS. Pour plus d'informations, consultez la section Implémentation des normes de sécurité des pods dans Amazon EKS
Stratégie de sécurité de Pod Amazon EKS par défaut
Les clusters Amazon EKS avec Kubernetes version 1.13
ou ultérieure ont une stratégie de sécurité de Pod par défaut nommée eks.privileged
. Cette stratégie n'a aucune limite en ce qui concerne le type de Pod pouvant être accepté dans le système, ce qui équivaut à exécuter Kubernetes avec le contrôleur PodSecurityPolicy
désactivé.
Note
Cette politique a été créée pour maintenir la rétrocompatibilité avec les clusters pour lesquels le contrôleur PodSecurityPolicy
n'était pas activé. Vous pouvez créer des politiques plus restrictives pour votre cluster et pour les espaces de noms et comptes de service individuels, puis supprimer la politique par défaut pour activer les politiques plus restrictives.
Vous pouvez afficher la politique par défaut à l'aide de la commande suivante.
kubectl get psp eks.privileged
L'exemple qui suit illustre un résultat.
NAME PRIV CAPS SELINUX RUNASUSER FSGROUP SUPGROUP READONLYROOTFS VOLUMES
eks.privileged true * RunAsAny RunAsAny RunAsAny RunAsAny false *
Pour plus de détails, vous pouvez décrire la politique avec la commande suivante.
kubectl describe psp eks.privileged
L'exemple qui suit illustre un résultat.
Name: eks.privileged Settings: Allow Privileged: true Allow Privilege Escalation: 0xc0004ce5f8 Default Add Capabilities: <none> Required Drop Capabilities: <none> Allowed Capabilities: * Allowed Volume Types: * Allow Host Network: true Allow Host Ports: 0-65535 Allow Host PID: true Allow Host IPC: true Read Only Root Filesystem: false SELinux Context Strategy: RunAsAny User: <none> Role: <none> Type: <none> Level: <none> Run As User Strategy: RunAsAny Ranges: <none> FSGroup Strategy: RunAsAny Ranges: <none> Supplemental Groups Strategy: RunAsAny Ranges: <none>
Vous pouvez consulter le fichier YAML complet pour connaître la stratégie de sécurité du Pod eks.privileged
, son rôle de cluster et la liaison du rôle de cluster dans Installer ou restaurer la stratégie de sécurité de Pod par défaut.
Supprimer la stratégie de sécurité de Pod Amazon EKS par défaut
Si vous créez des stratégies plus restrictives pour vos Pods, vous pouvez, après l'avoir fait, supprimer la stratégie de sécurité par défaut du Pod eks.privileged
d'Amazon EKS pour activer vos stratégies personnalisées.
Important
Si vous utilisez la version 1.7.0
ou une version ultérieure du plug-in CNI et que vous attribuez une politique de sécurité de Pod personnalisée au compte de service aws-node
Kubernetes utilisé pour les Pods aws-node
déployés par le Daemonset, la politique doit comporter NET_ADMIN
dans sa section allowedCapabilities
, avec hostNetwork: true
et privileged: true
dans les spec
de la politique.
Pour supprimer la stratégie de sécurité de Pod par défaut
-
Créez un fichier nommé
avec le contenu du fichier d'exemple dans Installer ou restaurer la stratégie de sécurité de Pod par défaut.privileged-podsecuritypolicy.yaml
-
Supprimez le fichier YAML avec la commande suivante. Ceci supprime la stratégie de sécurité de Pod par défaut, le
ClusterRole
et leClusterRoleBinding
qui lui est associé.kubectl delete -f
privileged-podsecuritypolicy.yaml
Installer ou restaurer la stratégie de sécurité de Pod par défaut
Si vous effectuez une mise à niveau à partir d'une version antérieure de Kubernetes ou si vous avez modifié ou supprimé la stratégie de sécurité de Pod par défaut eks.privileged
Amazon EKS, vous pouvez la restaurer en procédant comme suit.
Pour installer ou restaurer la stratégie de sécurité de Pod par défaut
-
Créez un fichier nommé
avec le contenu suivant.privileged-podsecuritypolicy.yaml
apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: eks.privileged annotations: kubernetes.io/description: 'privileged allows full unrestricted access to Pod features, as if the PodSecurityPolicy controller was not enabled.' seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*' labels: kubernetes.io/cluster-service: "true" eks.amazonaws.com/component: pod-security-policy spec: privileged: true allowPrivilegeEscalation: true allowedCapabilities: - '*' volumes: - '*' hostNetwork: true hostPorts: - min: 0 max: 65535 hostIPC: true hostPID: true runAsUser: rule: 'RunAsAny' seLinux: rule: 'RunAsAny' supplementalGroups: rule: 'RunAsAny' fsGroup: rule: 'RunAsAny' readOnlyRootFilesystem: false --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: eks:podsecuritypolicy:privileged labels: kubernetes.io/cluster-service: "true" eks.amazonaws.com/component: pod-security-policy rules: - apiGroups: - policy resourceNames: - eks.privileged resources: - podsecuritypolicies verbs: - use --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: eks:podsecuritypolicy:authenticated annotations: kubernetes.io/description: 'Allow all authenticated users to create privileged Pods.' labels: kubernetes.io/cluster-service: "true" eks.amazonaws.com/component: pod-security-policy roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: eks:podsecuritypolicy:privileged subjects: - kind: Group apiGroup: rbac.authorization.k8s.io name: system:authenticated
-
Appliquez le fichier YAML avec la commande suivante.
kubectl apply -f
privileged-podsecuritypolicy.yaml