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

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

贡献者

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:安全性"

所需的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