Aidez à améliorer cette page
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.
Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.
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.
Comprendre les politiques de sécurité des Pod (PSP) créées par Amazon EKS
Le contrôleur d'admission à la politique de sécurité du Kubernetes Pod valide les demandes de création et de mise à jour du pod par rapport à 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 Pod Security Policies
Note
La PodSecurityPolicy
(PSP) était obsolète dans la version Kubernetes et supprimée dans Kubernetes. 1.21
1.25
PSPs sont remplacés par Pod Security Admission (PSA)1.25
, nous vous recommandons d'implémenter le PSS dans Amazon EKS. Pour plus d'informations, consultez la section Implementation des normes de sécurité des pods dans Amazon EKS
Politique de sécurité par défaut d'Amazon EKS pour Pod
Les clusters Amazon EKS dotés d'une version Kubernetes 1.13
ou supérieure ont une politique de sécurité Pod par défaut nommée. eks.privileged
Cette politique n'impose aucune restriction quant au type de Pod pouvant être accepté dans le système, ce qui équivaut à exécuter Kubernetes avec le PodSecurityPolicy
contrôleur 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 la politique de sécurité du eks.privileged
Pod, son rôle de cluster et la liaison des rôles de cluster dans Installer ou restaurer la politique de sécurité par défaut du Pod.
Supprimer la politique de sécurité par défaut d'Amazon EKS Pod
Si vous créez des politiques plus restrictives pour vos pods, vous pouvez ensuite supprimer la politique de sécurité par défaut d'Amazon EKS eks.privileged
Pod pour activer vos politiques personnalisées.
Important
Si vous utilisez une version 1.7.0
ou une version ultérieure du plugin CNI et que vous attribuez une politique de sécurité Pod personnalisée au compte de service aws-node
Kubernetes utilisé pour les aws-node
Pods déployés par le Daemonset, la politique doit figurer NET_ADMIN
dans sa allowedCapabilities
section avec hostNetwork: true
et dans celle de la politique. privileged: true
spec
-
Créez un fichier nommé
privileged-podsecuritypolicy.yaml
avec le contenu du fichier d'exemple dans Installer ou restaurez la politique de sécurité par défaut du Pod. -
Supprimez le fichier YAML avec la commande suivante. Cela supprime la politique de sécurité par défaut du Pod, la
ClusterRole
, et celle qui y estClusterRoleBinding
associée.kubectl delete -f privileged-podsecuritypolicy.yaml
Installer ou restaurer la politique de sécurité par défaut du Pod
Si vous effectuez une mise à niveau depuis une version antérieure de Kubernetes, ou si vous avez modifié ou supprimé la politique de sécurité par défaut d'Amazon EKS eks.privileged
Pod, vous pouvez la restaurer en procédant comme suit.
-
Créez un fichier nommé
privileged-podsecuritypolicy.yaml
avec le contenu suivant.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