Skip to main content
Astra Trident
本产品推出了新版本。
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

POD安全标准(PSS)和安全上下文限制(SCC)

贡献者 netapp-aruldeepa

Kubernetes Pod安全标准(PSS)和Pod安全策略(PSP)定义权限级别并限制Pod的行为。OpenShift安全上下文约束(SCC)同样定义了特定于OpenShift Kubernetes引擎的POD限制。为了提供此自定义设置、Astra Trident会在安装期间启用某些权限。以下各节详细介绍了Astra Trident设置的权限。

备注 PSS将取代Pod安全策略(PSP)。PSP已在Kubernetes v1.21中弃用、并将在v1.25中删除。有关详细信息,请参阅"Kubernetes:安全性"。
权限 说明

特权

CSI要求挂载点为双向挂载点、这意味着Trident节点POD必须运行特权容器。有关详细信息,请参阅 "Kubernetes:挂载传播"。

主机网络连接

对于iSCSI守护进程为必需项。 `iscsiadm`管理iSCSI挂载并使用主机网络与iSCSI守护进程进行通信。

主机IPC

NFS使用进程间通信(Interprocess Communication、IPC)与NFSD进行通信。

主机PID

启动NFS时需要此参数 rpc-statd。Asta Trident会在挂载NFS卷之前查询主机进程以确定是否 `rpc-statd`正在运行。

功能

此 SYS_ADMIN`功能是作为有权限的容器的默认功能的一部分提供的。例如、Docker可为有权限的容器设置以下功能:
`CapPrm: 0000003fffffffff

CapEff: 0000003fffffffff

Seccomp

Seccomp配置文件在特权容器中始终处于"非受限"状态;因此、无法在Astra Trident中启用它。

SELinux

在OpenShift上、有权限的容器在("超级特权容器")域中运行 spc_t、无权限的容器在域中运行 container_t。在上 containerd,安装后 container-selinux,所有容器都在域中运行 spc_t,从而有效地禁用SELinux。因此、Astra Trident不会添加 `seLinuxOptions`到容器中。

DAC

有权限的容器必须以root用户身份运行。非特权容器以root用户身份运行、以访问CSI所需的UNIX套接字。

POD安全标准(PSS)

标签 说明 默认

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

允许将Trident控制器和节点收入安装命名空间。请勿更改命名空间标签。

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

警告 更改命名空间标签可能会导致Pod未计划、出现"创建时出错:…​"或"警告:Trident CSI -…​"。如果发生这种情况、请检查的命名空间标签是否 `privileged`已更改。如果是、请重新安装Trident。

POD安全策略(PSP)

字段 说明 默认

allowPrivilegeEscalation

有权限的容器必须允许权限升级。

true

allowedCSIDrivers

Trident不使用实时CSI临时卷。

空

allowedCapabilities

非特权Trident容器所需的功能不会超过默认设置、而特权容器会获得所有可能的功能。

空

allowedFlexVolumes

Trident不使用"FlexVolume驱动程序",因此它们不包括在允许的卷列表中。

空

allowedHostPaths

Trident节点POD挂载节点的根文件系统、因此设置此列表没有好处。

空

allowedProcMountTypes

Trident不使用任何 ProcMountTypes。

空

allowedUnsafeSysctls

Trident不需要任何不安全的 sysctls。

空

defaultAddCapabilities

无需向有权限的容器添加任何功能。

空

defaultAllowPrivilegeEscalation

允许权限升级在每个Trident POD中进行处理。

false

forbiddenSysctls

`sysctls`不允许。

空

fsGroup

Trident容器以root身份运行。

RunAsAny

hostIPC

挂载NFS卷需要与主机IPC进行通信 nfsd

true

hostNetwork

iscsiadm要求主机网络与iSCSI守护进程进行通信。

true

hostPID

需要主机PID来检查节点上是否 `rpc-statd`正在运行。

true

hostPorts

Trident不使用任何主机端口。

空

privileged

Trident节点Pod必须运行特权容器才能挂载卷。

true

readOnlyRootFilesystem

Trident节点Pod必须写入节点文件系统。

false

requiredDropCapabilities

Trident节点Pod运行有权限的容器、无法删除功能。

none

runAsGroup

Trident容器以root身份运行。

RunAsAny

runAsUser

Trident容器以root身份运行。

runAsAny

runtimeClass

Trident不使用 RuntimeClasses。

空

seLinux

未设置Trident seLinuxOptions、因为容器运行时和Kubnetes分发版处理SELinux的方式目前存在差异。

空

supplementalGroups

Trident容器以root身份运行。

RunAsAny

volumes

Trident Pod需要这些卷插件。

hostPath, projected, emptyDir

安全上下文限制(SCC)

标签 说明 默认

allowHostDirVolumePlugin

Trident节点Pod挂载节点的根文件系统。

true

allowHostIPC

挂载NFS卷需要主机IPC与进行通信 nfsd。

true

allowHostNetwork

iscsiadm要求主机网络与iSCSI守护进程进行通信。

true

allowHostPID

需要主机PID来检查节点上是否 `rpc-statd`正在运行。

true

allowHostPorts

Trident不使用任何主机端口。

false

allowPrivilegeEscalation

有权限的容器必须允许权限升级。

true

allowPrivilegedContainer

Trident节点Pod必须运行特权容器才能挂载卷。

true

allowedUnsafeSysctls

Trident不需要任何不安全的 sysctls。

none

allowedCapabilities

非特权Trident容器所需的功能不会超过默认设置、而特权容器会获得所有可能的功能。

空

defaultAddCapabilities

无需向有权限的容器添加任何功能。

空

fsGroup

Trident容器以root身份运行。

RunAsAny

groups

此SCC专用于Trident并绑定到其用户。

空

readOnlyRootFilesystem

Trident节点Pod必须写入节点文件系统。

false

requiredDropCapabilities

Trident节点Pod运行有权限的容器、无法删除功能。

none

runAsUser

Trident容器以root身份运行。

RunAsAny

seLinuxContext

未设置Trident seLinuxOptions、因为容器运行时和Kubnetes分发版处理SELinux的方式目前存在差异。

空

seccompProfiles

有权限的容器始终运行"无限制"。

空

supplementalGroups

Trident容器以root身份运行。

RunAsAny

users

提供了一个条目、用于将此SCC绑定到Trident命名空间中的Trident用户。

不适用

volumes

Trident Pod需要这些卷插件。

hostPath, downwardAPI, projected, emptyDir