Skip to main content
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Pod Security Standards (PSS) und Security Context Constraints (SCC)

Beitragende

Kubernetes Pod Security Standards (PSS) und Pod Security Policies (PSP) definieren Berechtigungsebenen und schränken das Verhalten von Pods ein. OpenShift Security Context Constraints (SCC) definieren ebenfalls die Pod-Einschränkung speziell für die OpenShift Kubernetes Engine. Um diese Anpassung zu ermöglichen, aktiviert Trident bestimmte Berechtigungen während der Installation. In den folgenden Abschnitten werden die von Trident festgelegten Berechtigungen beschrieben.

Hinweis PSS ersetzt Pod Security Policies (PSP). PSP war in Kubernetes v1.21 veraltet und wird in v1.25 entfernt. Weitere Informationen finden Sie unter "Kubernetes: Sicherheit".

Erforderlicher Kubernetes-Sicherheitskontext und zugehörige Felder

Berechtigung Beschreibung

Privileged

Bei CSI müssen Mount-Punkte bidirektional sein. Das Trident Node-POD muss einen privilegierten Container ausführen. Weitere Informationen finden Sie unter "Kubernetes: Mount-Ausbreitung".

Host-Netzwerk

Für den iSCSI-Daemon erforderlich. iscsiadm Managt iSCSI-Mounts und verwendet Host-Netzwerke für die Kommunikation mit dem iSCSI-Daemon.

Host-IPC

NFS nutzt Prozesskommunikation (IPC) mit dem NFSD.

Host-PID

Erforderlich für den Start rpc-statd von NFS. Trident fragt Hostprozesse ab, um festzustellen, ob rpc-statd vor dem Mounten von NFS-Volumes ausgeführt wird.

Sorgen

Der SYS_ADMIN Diese Funktion wird als Teil der Standardfunktionen für privilegierte Container bereitgestellt. Docker legt beispielsweise die folgenden Funktionen für privilegierte Container fest:
CapPrm: 0000003fffffffff
CapEff: 0000003fffffffff

Abt

Seccomp-Profil ist in privilegierten Containern immer „unbeschränkt“; daher kann es in Trident nicht aktiviert werden.

SELinux

Auf OpenShift werden privilegierte Container in der Domäne („Super Privileged Container“) ausgeführt spc_t, und nicht privilegierte Container werden in der Domäne ausgeführt container_t. Auf containerd, bei container-selinux installed werden alle Container in der Domain ausgeführt spc_t, was SELinux effektiv deaktiviert. Aus diesem Grund wird Trident den Containern nicht hinzugefügt seLinuxOptions.

DAC

Privilegierte Container müssen als Root ausgeführt werden. Nicht privilegierte Container werden als Root ausgeführt, um auf unix-Sockets zuzugreifen, die von CSI benötigt werden.

Pod-Sicherheitsstandards (PSS)

Etikett Beschreibung Standard

pod-security.kubernetes.io/enforce

pod-security.kubernetes.io/enforce-version

Ermöglicht die Aufnahme der Trident Controller und Knoten im Namespace für die Installation. Ändern Sie nicht die Namespace-Bezeichnung.

enforce: privileged

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

Warnung Das Ändern der Namespace-Labels kann dazu führen, dass Pods nicht geplant werden, ein „Error Creating: …​“ oder „Warnung: trident-csi-…​“. Wenn dies geschieht, prüfen Sie, ob die Namespace-Bezeichnung für verwendet wird privileged Wurde geändert. Falls ja, installieren Sie Trident neu.

Pod-Sicherheitsrichtlinien (PSP)

Feld Beschreibung Standard

allowPrivilegeEscalation

Privilegierte Container müssen die Eskalation von Berechtigungen ermöglichen.

true

allowedCSIDrivers

Trident verwendet keine kurzlebigen CSI-Inline-Volumes.

Leer

allowedCapabilities

Für Trident Container ohne Privilegien sind nicht mehr Funktionen erforderlich als für die Standardwerte. Privilegierte Container erhalten alle möglichen Funktionen.

Leer

allowedFlexVolumes

Trident verwendet kein a "FlexVolume-Treiber", Sie sind daher nicht in die Liste der zulässigen Volumen.

Leer

allowedHostPaths

Der Trident-Node-Pod hängt das Root-Dateisystem des Node zusammen, daher bietet es keinen Vorteil, diese Liste zu setzen.

Leer

allowedProcMountTypes

Trident verwendet keine ProcMountTypes.

Leer

allowedUnsafeSysctls

Trident erfordert keine Unsicherheit sysctls.

Leer

defaultAddCapabilities

Zu privilegierten Containern müssen keine Funktionen hinzugefügt werden.

Leer

defaultAllowPrivilegeEscalation

In jedem Trident Pod werden Berechtigungen erteilt.

false

forbiddenSysctls

Nein sysctls Zulässig.

Leer

fsGroup

Trident Container werden als Root ausgeführt.

RunAsAny

hostIPC

Das Mounten von NFS-Volumes erfordert die Kommunikation zwischen dem Host IPC und dem nfsd

true

hostNetwork

Iscsiadm erfordert, dass das Hostnetzwerk mit dem iSCSI-Daemon kommunizieren kann.

true

hostPID

Host PID ist erforderlich, um zu überprüfen, ob rpc-statd Wird auf dem Node ausgeführt.

true

hostPorts

Trident verwendet keine Host Ports.

Leer

privileged

Trident Node-Pods müssen einen privilegierten Container ausführen, um Volumes mounten zu können.

true

readOnlyRootFilesystem

Trident Node-Pods müssen in das Node-Dateisystem schreiben.

false

requiredDropCapabilities

Trident Node-Pods führen einen privilegierten Container aus und können Funktionen nicht ablegen.

none

runAsGroup

Trident Container werden als Root ausgeführt.

RunAsAny

runAsUser

Trident Container werden als Root ausgeführt.

runAsAny

runtimeClass

Trident wird nicht verwendet RuntimeClasses.

Leer

seLinux

Trident ist nicht eingerichtet seLinuxOptions Weil es derzeit Unterschiede hinsichtlich der Handhabung von Container-Laufzeiten und Kubernetes-Distributionen für SELinux gibt.

Leer

supplementalGroups

Trident Container werden als Root ausgeführt.

RunAsAny

volumes

Trident Pods erfordern diese Volume-Plug-ins.

hostPath, projected, emptyDir

Sicherheitskontexteinschränkungen (SCC)

Etiketten Beschreibung Standard

allowHostDirVolumePlugin

Trident-Node-Pods mounten das Root-Dateisystem des Node.

true

allowHostIPC

Das Mounten von NFS-Volumes erfordert die Kommunikation zwischen dem Host IPC und dem nfsd.

true

allowHostNetwork

Iscsiadm erfordert, dass das Hostnetzwerk mit dem iSCSI-Daemon kommunizieren kann.

true

allowHostPID

Host PID ist erforderlich, um zu überprüfen, ob rpc-statd Wird auf dem Node ausgeführt.

true

allowHostPorts

Trident verwendet keine Host Ports.

false

allowPrivilegeEscalation

Privilegierte Container müssen die Eskalation von Berechtigungen ermöglichen.

true

allowPrivilegedContainer

Trident Node-Pods müssen einen privilegierten Container ausführen, um Volumes mounten zu können.

true

allowedUnsafeSysctls

Trident erfordert keine Unsicherheit sysctls.

none

allowedCapabilities

Für Trident Container ohne Privilegien sind nicht mehr Funktionen erforderlich als für die Standardwerte. Privilegierte Container erhalten alle möglichen Funktionen.

Leer

defaultAddCapabilities

Zu privilegierten Containern müssen keine Funktionen hinzugefügt werden.

Leer

fsGroup

Trident Container werden als Root ausgeführt.

RunAsAny

groups

Dieses SCC ist speziell für Trident bestimmt und an den Anwender gebunden.

Leer

readOnlyRootFilesystem

Trident Node-Pods müssen in das Node-Dateisystem schreiben.

false

requiredDropCapabilities

Trident Node-Pods führen einen privilegierten Container aus und können Funktionen nicht ablegen.

none

runAsUser

Trident Container werden als Root ausgeführt.

RunAsAny

seLinuxContext

Trident ist nicht eingerichtet seLinuxOptions Weil es derzeit Unterschiede hinsichtlich der Handhabung von Container-Laufzeiten und Kubernetes-Distributionen für SELinux gibt.

Leer

seccompProfiles

Privilegierte Container laufen immer „unbegrenzt“.

Leer

supplementalGroups

Trident Container werden als Root ausgeführt.

RunAsAny

users

Es ist ein Eintrag verfügbar, um diesen SCC an den Trident-Benutzer im Trident Namespace zu binden.

k. A.

volumes

Trident Pods erfordern diese Volume-Plug-ins.

hostPath, downwardAPI, projected, emptyDir