Pod-Sicherheitsstandards (PSS) und Security Context Constraints (SCC)
Die Kubernetes Pod Security Standards (PSS) und Pod Security Policies (PSP) definieren Berechtigungsstufen und schränken das Verhalten von Pods ein. OpenShift Security Context Constraints (SCC) definieren analog dazu pod-spezifische Einschränkungen für die OpenShift Kubernetes Engine. Um diese Anpassung zu ermöglichen, aktiviert Trident während der Installation bestimmte Berechtigungen. Die folgenden Abschnitte beschreiben die von Trident gesetzten Berechtigungen.
|
|
PSS ersetzt Pod Security Policies (PSP). PSP wurde in Kubernetes v1.21 als veraltet markiert und wird in v1.25 entfernt. Weitere Informationen finden Sie unter "Kubernetes: Sicherheit". |
Erforderlicher Kubernetes-Sicherheitskontext und zugehörige Felder
| Berechtigung | Beschreibung |
|---|---|
Privilegiert |
CSI erfordert bidirektionale Mountpunkte, was bedeutet, dass der Trident-Node-Pod einen privilegierten Container ausführen muss. Weitere Informationen finden Sie unter "Kubernetes: Mount Propagation". |
Host-Netzwerk |
Erforderlich für den iSCSI-Daemon. |
Host-IPC |
NFS nutzt Interprozesskommunikation (IPC), um mit dem NFSD zu kommunizieren. |
Host-PID |
Erforderlich, um |
Fähigkeiten |
Die |
Seccomp |
Das Seccomp-Profil ist in privilegierten Containern immer "Unconfined"; daher kann es in Trident nicht aktiviert werden. |
SELinux |
Auf OpenShift werden privilegierte Container in der |
DAC |
Privilegierte Container müssen als Root ausgeführt werden. Nicht privilegierte Container werden als Root ausgeführt, um auf die von CSI benötigten Unix-Sockets zuzugreifen. |
Pod Security Standards (PSS)
| Etikett | Beschreibung | Standard |
|---|---|---|
|
Ermöglicht dem Trident Controller und den Knoten die Aufnahme in den Installations-Namespace. Ändern Sie das Namespace-Label nicht. |
|
|
|
Das Ändern der Namespace-Labels kann dazu führen, dass Pods nicht eingeplant werden, eine „Error creating: …“- oder „Warning: trident-csi-…“-Meldung erscheint. Wenn dies geschieht, überprüfen Sie, ob das Namespace-Label für privileged geändert wurde. Falls ja, installieren Sie Trident neu.
|
Pod-Sicherheitsrichtlinien (PSP)
| Feld | Beschreibung | Standard |
|---|---|---|
|
Privilegierte Container müssen eine Privilegien-Eskalation zulassen. |
|
|
Trident verwendet keine Inline-CSI-Ephemeral-Volumes. |
Leer |
|
Nicht privilegierte Trident-Container benötigen nicht mehr Berechtigungen als die Standardmenge, und privilegierten Containern werden alle möglichen Berechtigungen gewährt. |
Leer |
|
Trident verwendet keine "FlexVolume-Treiber", daher sind sie nicht in der Liste der erlaubten Volumes. |
Leer |
|
Der Trident-Node-Pod mountet das Root-Dateisystem des Nodes, daher bringt das Festlegen dieser Liste keinen Vorteil. |
Leer |
|
Trident verwendet kein |
Leer |
|
Trident benötigt keine unsicheren |
Leer |
|
Für privilegierte Container müssen keine Funktionen hinzugefügt werden. |
Leer |
|
Die Gewährung von Privilegienerweiterungen wird in jedem Trident Pod gehandhabt. |
|
|
Keine |
Leer |
|
Trident Container werden als root ausgeführt. |
|
|
Das Einbinden von NFS-Volumes erfordert Host-IPC, um mit |
|
|
iscsiadm benötigt das Host-Netzwerk, um mit dem iSCSI-Daemon zu kommunizieren. |
|
|
Host-PID ist erforderlich, um zu überprüfen, ob |
|
|
Trident verwendet keine Host-Ports. |
Leer |
|
Trident node pods müssen einen privilegierten Container ausführen, um Volumes einzubinden. |
|
|
Trident node pods müssen in das Node-Dateisystem schreiben. |
|
|
Trident node pods führen einen privilegierten Container aus und können keine Capabilities ablegen. |
|
|
Trident Container werden als root ausgeführt. |
|
|
Trident Container werden als root ausgeführt. |
|
|
Trident verwendet |
Leer |
|
Trident setzt |
Leer |
|
Trident Container werden als root ausgeführt. |
|
|
Trident Pods benötigen diese Volume-Plugins. |
|
Security Context Constraints (SCC)
| Etiketten | Beschreibung | Standard |
|---|---|---|
|
Trident-Knoten-Pods mounten das Root-Dateisystem des Knotens. |
|
|
Das Mounten von NFS-Volumes erfordert Host-IPC, um mit |
|
|
iscsiadm benötigt das Host-Netzwerk, um mit dem iSCSI-Daemon zu kommunizieren. |
|
|
Host-PID ist erforderlich, um zu überprüfen, ob |
|
|
Trident verwendet keine Host-Ports. |
|
|
Privilegierte Container müssen eine Privilegien-Eskalation zulassen. |
|
|
Trident node pods müssen einen privilegierten Container ausführen, um Volumes einzubinden. |
|
|
Trident benötigt keine unsicheren |
|
|
Nicht privilegierte Trident-Container benötigen nicht mehr Berechtigungen als die Standardmenge, und privilegierten Containern werden alle möglichen Berechtigungen gewährt. |
Leer |
|
Für privilegierte Container müssen keine Funktionen hinzugefügt werden. |
Leer |
|
Trident Container werden als root ausgeführt. |
|
|
Diese SCC ist spezifisch für Trident und ist an ihren Benutzer gebunden. |
Leer |
|
Trident node pods müssen in das Node-Dateisystem schreiben. |
|
|
Trident node pods führen einen privilegierten Container aus und können keine Capabilities ablegen. |
|
|
Trident Container werden als root ausgeführt. |
|
|
Trident setzt |
Leer |
|
Privilegierte Container laufen immer "Unconfined". |
Leer |
|
Trident Container werden als root ausgeführt. |
|
|
Ein Eintrag wird bereitgestellt, um diese SCC an den Trident Benutzer im Trident-Namensraum zu binden. |
n/a |
|
Trident Pods benötigen diese Volume-Plugins. |
|