Skip to main content
Une version plus récente de ce produit est disponible.
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Normes de sécurité des pods (PSS) et Security Context Constraints (SCC)

Les normes de sécurité des pods Kubernetes (PSS) et les politiques de sécurité des pods (PSP) définissent les niveaux d'autorisation et limitent le comportement des pods. OpenShift Security Context Constraints (SCC) définissent de la même manière des restrictions de pods spécifiques au OpenShift Kubernetes Engine. Pour permettre cette personnalisation, Trident active certaines autorisations lors de l'installation. Les sections suivantes détaillent les autorisations définies par Trident.

Remarque PSS remplace les Pod Security Policies (PSP). PSP a été déprécié dans Kubernetes v1.21 et sera supprimé dans la v1.25. Pour plus d'informations, consultez "Kubernetes : sécurité".

Contexte de sécurité Kubernetes requis et champs associés

Autorisation Description

Privilégié

CSI exige que les points de montage soient bidirectionnels, ce qui signifie que le pod Trident du nœud doit exécuter un conteneur privilégié. Pour plus d'informations, consultez "Kubernetes : propagation du montage".

Réseau hôte

Nécessaire pour le démon iSCSI. iscsiadm Gère les montages iSCSI et utilise le réseau hôte pour communiquer avec le démon iSCSI.

IPC hôte

NFS utilise la communication interprocessus (IPC) pour communiquer avec le NFSD.

PID de l'hôte

Nécessaire pour démarrer rpc-statd pour NFS. Trident interroge les processus hôtes pour déterminer si rpc-statd est en cours d'exécution avant de monter les volumes NFS.

Capacités

La SYS_ADMIN fonctionnalité est fournie dans le cadre des fonctionnalités par défaut pour les conteneurs privilégiés. Par exemple, Docker définit ces fonctionnalités pour les conteneurs privilégiés :
CapPrm: 0000003fffffffff
CapEff: 0000003fffffffff

Seccomp

Le profil Seccomp est toujours « non confiné » dans les conteneurs privilégiés ; par conséquent, il ne peut pas être activé dans Trident.

SELinux

Sur OpenShift, les conteneurs privilégiés s’exécutent dans le domaine spc_t (« Super Privileged Container »), et les conteneurs non privilégiés s’exécutent dans le domaine container_t. Sur containerd, avec container-selinux installé, tous les conteneurs s’exécutent dans le domaine spc_t, ce qui désactive effectivement SELinux. Par conséquent, Trident n’ajoute pas seLinuxOptions aux conteneurs.

DAC

Les conteneurs privilégiés doivent être exécutés en tant que root. Les conteneurs non privilégiés s'exécutent en tant que root pour accéder aux sockets unix requis par CSI.

Normes de sécurité des pods (PSS)

Étiquette Description Défaut

pod-security.kubernetes.io/enforce pod-security.kubernetes.io/enforce-version

Autorise le contrôleur Trident et les nœuds à être admis dans l’espace de noms d’installation. Ne modifiez pas l’étiquette de l’espace de noms.

enforce: privileged
enforce-version: <version of the current cluster or highest version of PSS tested.>

Avertissement Modifier les étiquettes d'espace de noms peut empêcher la planification des pods, entraîner une « Error creating: …​ » ou un « Warning: trident-csi-…​ ». Si cela se produit, vérifiez si l'étiquette d'espace de noms pour privileged a été modifiée. Si c'est le cas, réinstallez Trident.

Politiques de sécurité des pods (PSP)

Champ Description Défaut

allowPrivilegeEscalation

Les conteneurs privilégiés doivent autoriser l'élévation de privilèges.

true

allowedCSIDrivers

Trident n'utilise pas de volumes CSI éphémères en ligne.

Vide

allowedCapabilities

Les conteneurs Trident non privilégiés ne nécessitent pas plus de capacités que l'ensemble par défaut et les conteneurs privilégiés se voient accorder toutes les capacités possibles.

Vide

allowedFlexVolumes

Trident n'utilise pas de "Pilote FlexVolume", par conséquent, ils ne sont pas inclus dans la liste des volumes autorisés.

Vide

allowedHostPaths

Le pod Trident du nœud monte le système de fichiers racine du nœud, par conséquent, la configuration de cette liste ne présente aucun avantage.

Vide

allowedProcMountTypes

Trident n'utilise aucun ProcMountTypes.

Vide

allowedUnsafeSysctls

Trident ne nécessite aucune opération non sécurisée sysctls.

Vide

defaultAddCapabilities

Aucune capacité n'est requise pour être ajoutée aux conteneurs privilégiés.

Vide

defaultAllowPrivilegeEscalation

L'autorisation d'élévation de privilèges est gérée dans chaque pod Trident.

false

forbiddenSysctls

Aucun sysctls n'est autorisé.

Vide

fsGroup

Les conteneurs Trident s'exécutent en tant que root.

RunAsAny

hostIPC

Le montage de volumes NFS nécessite que l'IPC de l'hôte communique avec nfsd

true

hostNetwork

iscsiadm nécessite que le réseau hôte communique avec le démon iSCSI.

true

hostPID

L'identifiant du processus hôte (PID) est requis pour vérifier si rpc-statd est en cours d'exécution sur le nœud.

true

hostPorts

Trident n'utilise aucun port hôte.

Vide

privileged

Les pods de nœuds Trident doivent exécuter un conteneur privilégié pour pouvoir monter des volumes.

true

readOnlyRootFilesystem

Les pods de nœud Trident doivent écrire sur le système de fichiers du nœud.

false

requiredDropCapabilities

Les pods de nœuds Trident exécutent un conteneur privilégié et ne peuvent pas supprimer de fonctionnalités.

none

runAsGroup

Les conteneurs Trident s'exécutent en tant que root.

RunAsAny

runAsUser

Les conteneurs Trident s'exécutent en tant que root.

runAsAny

runtimeClass

Trident n'utilise pas RuntimeClasses.

Vide

seLinux

Trident ne configure pas `seLinuxOptions`car il existe actuellement des différences dans la manière dont les environnements d'exécution de conteneurs et les distributions Kubernetes gèrent SELinux.

Vide

supplementalGroups

Les conteneurs Trident s'exécutent en tant que root.

RunAsAny

volumes

Les pods Trident nécessitent ces plugins de volume.

hostPath, projected, emptyDir

Security Context Constraints (SCC)

Étiquettes Description Défaut

allowHostDirVolumePlugin

Les pods de nœud Trident montent le système de fichiers racine du nœud.

true

allowHostIPC

Le montage des volumes NFS nécessite que l'IPC de l'hôte communique avec nfsd.

true

allowHostNetwork

iscsiadm nécessite que le réseau hôte communique avec le démon iSCSI.

true

allowHostPID

L'identifiant du processus hôte (PID) est requis pour vérifier si rpc-statd est en cours d'exécution sur le nœud.

true

allowHostPorts

Trident n'utilise aucun port hôte.

false

allowPrivilegeEscalation

Les conteneurs privilégiés doivent autoriser l'élévation de privilèges.

true

allowPrivilegedContainer

Les pods de nœuds Trident doivent exécuter un conteneur privilégié pour pouvoir monter des volumes.

true

allowedUnsafeSysctls

Trident ne nécessite aucune opération non sécurisée sysctls.

none

allowedCapabilities

Les conteneurs Trident non privilégiés ne nécessitent pas plus de capacités que l'ensemble par défaut et les conteneurs privilégiés se voient accorder toutes les capacités possibles.

Vide

defaultAddCapabilities

Aucune capacité n'est requise pour être ajoutée aux conteneurs privilégiés.

Vide

fsGroup

Les conteneurs Trident s'exécutent en tant que root.

RunAsAny

groups

Ce SCC est spécifique à Trident et est lié à son utilisateur.

Vide

readOnlyRootFilesystem

Les pods de nœud Trident doivent écrire sur le système de fichiers du nœud.

false

requiredDropCapabilities

Les pods de nœuds Trident exécutent un conteneur privilégié et ne peuvent pas supprimer de fonctionnalités.

none

runAsUser

Les conteneurs Trident s'exécutent en tant que root.

RunAsAny

seLinuxContext

Trident ne configure pas `seLinuxOptions`car il existe actuellement des différences dans la manière dont les environnements d'exécution de conteneurs et les distributions Kubernetes gèrent SELinux.

Vide

seccompProfiles

Les conteneurs privilégiés s'exécutent toujours en mode "Unconfined".

Vide

supplementalGroups

Les conteneurs Trident s'exécutent en tant que root.

RunAsAny

users

Une entrée est prévue pour lier ce SCC à l'utilisateur Trident dans l'espace de noms Trident.

s.o.

volumes

Les pods Trident nécessitent ces plugins de volume.

hostPath, downwardAPI, projected, emptyDir