Skip to main content
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

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

Collaboratori

Kubernetes Pod Security Standards (PSS) e Pod Security Policy (PSP) definiscono i livelli di autorizzazione e limitano il comportamento dei pod. OpenShift Security Context Constraints (SCC) definisce analogamente la restrizione pod specifica per OpenShift Kubernetes Engine. Per fornire questa personalizzazione, Trident abilita determinate autorizzazioni durante l'installazione. Nelle sezioni seguenti vengono descritte in dettaglio le autorizzazioni impostate da Trident.

Nota PSS sostituisce Pod Security Policies (PSP). PSP è stato deprecato in Kubernetes v1.21 e verrà rimosso nella versione 1.25. Per ulteriori informazioni, fare riferimento a. "Kubernetes: Sicurezza".

Contesto di sicurezza Kubernetes obbligatorio e campi correlati

Permesso Descrizione

Privilegiato

CSI richiede che i punti di montaggio siano bidirezionali, il che significa che il pod di nodi Trident deve eseguire un container privilegiato. Per ulteriori informazioni, fare riferimento a. "Kubernetes: Propagazione del mount".

Rete host

Necessario per il daemon iSCSI. iscsiadm Gestisce i montaggi iSCSI e utilizza la rete host per comunicare con il daemon iSCSI.

Host IPC (IPC host)

NFS utilizza la comunicazione interprocesso (IPC) per comunicare con NFSD.

PID host

Necessario per avviare rpc-statd NFS. Trident interroga i processi host per determinare se rpc-statd è in esecuzione prima di montare i volumi NFS.

Funzionalità

Il SYS_ADMIN la funzionalità viene fornita come parte delle funzionalità predefinite per i container con privilegi. Ad esempio, Docker imposta queste funzionalità per i container con privilegi:
CapPrm: 0000003fffffffff
CapEff: 0000003fffffffff

Seccomp

Il profilo Seccomp è sempre "non confinato" in contenitori privilegiati; pertanto, non può essere abilitato in Trident.

SELinux

In OpenShift, i contenitori privilegiati vengono eseguiti nel spc_t dominio ("contenitore con privilegi speciali") e i contenitori senza privilegi vengono eseguiti nel container_t dominio. Su containerd, con container-selinux installato, tutti i contenitori vengono eseguiti nel spc_t dominio, il che disabilita effettivamente SELinux. Pertanto, Trident non aggiunge seLinuxOptions ai contenitori.

DAC

I container con privilegi devono essere eseguiti come root. I container non privilegiati vengono eseguiti come root per accedere ai socket unix richiesti da CSI.

Standard di sicurezza Pod (PSS)

Etichetta Descrizione Predefinito

pod-security.kubernetes.io/enforce

pod-security.kubernetes.io/enforce-version

Consente di ammettere il controller Trident e i nodi nello spazio dei nomi install. Non modificare l'etichetta dello spazio dei nomi.

enforce: privileged

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

Attenzione La modifica delle etichette dello spazio dei nomi può causare la mancata pianificazione dei pod, un "errore di creazione: …​" Oppure "Warning: trident-csi-…​". In tal caso, controllare se l'etichetta dello spazio dei nomi di privileged è stato modificato. In tal caso, reinstallare Trident.

Policy di sicurezza Pod (PSP)

Campo Descrizione Predefinito

allowPrivilegeEscalation

I container con privilegi devono consentire l'escalation dei privilegi.

true

allowedCSIDrivers

Trident non utilizza volumi effimeri CSI inline.

Vuoto

allowedCapabilities

I container Trident non con privilegi non richiedono più funzionalità rispetto al set predefinito e ai container con privilegi vengono concesse tutte le funzionalità possibili.

Vuoto

allowedFlexVolumes

Trident non utilizza un "Driver FlexVolume", quindi non sono inclusi nell'elenco dei volumi consentiti.

Vuoto

allowedHostPaths

Il pod di nodi Trident monta il filesystem root del nodo, quindi non c'è alcun beneficio nell'impostazione di questo elenco.

Vuoto

allowedProcMountTypes

Trident non ne utilizza alcuno ProcMountTypes.

Vuoto

allowedUnsafeSysctls

Trident non richiede alcuna operazione non sicura sysctls.

Vuoto

defaultAddCapabilities

Non è necessario aggiungere funzionalità ai container con privilegi.

Vuoto

defaultAllowPrivilegeEscalation

L'escalation dei privilegi viene gestita in ogni pod Trident.

false

forbiddenSysctls

No sysctls sono consentiti.

Vuoto

fsGroup

I container Trident vengono eseguiti come root.

RunAsAny

hostIPC

Il montaggio dei volumi NFS richiede l'IPC host per comunicare con nfsd

true

hostNetwork

Iscsiadm richiede che la rete host comunichi con il daemon iSCSI.

true

hostPID

Per verificare se è necessario utilizzare il PID host rpc-statd è in esecuzione sul nodo.

true

hostPorts

Trident non utilizza porte host.

Vuoto

privileged

I pod di nodi Trident devono eseguire un container privilegiato per poter montare i volumi.

true

readOnlyRootFilesystem

I pod di nodi Trident devono scrivere nel file system del nodo.

false

requiredDropCapabilities

I pod di nodi Trident eseguono un container privilegiato e non possono rilasciare funzionalità.

none

runAsGroup

I container Trident vengono eseguiti come root.

RunAsAny

runAsUser

I container Trident vengono eseguiti come root.

runAsAny

runtimeClass

Trident non utilizza RuntimeClasses.

Vuoto

seLinux

Trident non viene impostato seLinuxOptions Perché ci sono attualmente differenze nel modo in cui i runtime dei container e le distribuzioni Kubernetes gestiscono SELinux.

Vuoto

supplementalGroups

I container Trident vengono eseguiti come root.

RunAsAny

volumes

I pod Trident richiedono questi plug-in di volume.

hostPath, projected, emptyDir

SCC (Security Context Constraints)

Etichette Descrizione Predefinito

allowHostDirVolumePlugin

I pod di nodi Trident montano il filesystem root del nodo.

true

allowHostIPC

Il montaggio dei volumi NFS richiede l'IPC host per comunicare con nfsd.

true

allowHostNetwork

Iscsiadm richiede che la rete host comunichi con il daemon iSCSI.

true

allowHostPID

Per verificare se è necessario utilizzare il PID host rpc-statd è in esecuzione sul nodo.

true

allowHostPorts

Trident non utilizza porte host.

false

allowPrivilegeEscalation

I container con privilegi devono consentire l'escalation dei privilegi.

true

allowPrivilegedContainer

I pod di nodi Trident devono eseguire un container privilegiato per poter montare i volumi.

true

allowedUnsafeSysctls

Trident non richiede alcuna operazione non sicura sysctls.

none

allowedCapabilities

I container Trident non con privilegi non richiedono più funzionalità rispetto al set predefinito e ai container con privilegi vengono concesse tutte le funzionalità possibili.

Vuoto

defaultAddCapabilities

Non è necessario aggiungere funzionalità ai container con privilegi.

Vuoto

fsGroup

I container Trident vengono eseguiti come root.

RunAsAny

groups

Questo SCC è specifico di Trident ed è vincolato al proprio utente.

Vuoto

readOnlyRootFilesystem

I pod di nodi Trident devono scrivere nel file system del nodo.

false

requiredDropCapabilities

I pod di nodi Trident eseguono un container privilegiato e non possono rilasciare funzionalità.

none

runAsUser

I container Trident vengono eseguiti come root.

RunAsAny

seLinuxContext

Trident non viene impostato seLinuxOptions Perché ci sono attualmente differenze nel modo in cui i runtime dei container e le distribuzioni Kubernetes gestiscono SELinux.

Vuoto

seccompProfiles

I container privilegiati vengono sempre eseguiti "senza confinare".

Vuoto

supplementalGroups

I container Trident vengono eseguiti come root.

RunAsAny

users

Viene fornita una voce per associare SCC all'utente Trident nello spazio dei nomi Trident.

n/a.

volumes

I pod Trident richiedono questi plug-in di volume.

hostPath, downwardAPI, projected, emptyDir