POD安全标准(PSS)和安全上下文限制(SCC)
Kubernetes Pod安全标准(PSS)和Pod安全策略(PSP)定义权限级别并限制Pod的行为。OpenShift安全上下文约束(SCC)同样定义了特定于OpenShift Kubernetes引擎的POD限制。为了提供此自定义功能、Trident会在安装期间启用某些权限。以下各节详细介绍了Trident设置的权限。
PSS将取代Pod安全策略(PSP)。PSP已在Kubernetes v1.21中弃用、并将在v1.25中删除。有关详细信息、请参见 "Kubernetes:安全性"。 |
所需的Kubernetes安全上下文和相关字段
权限 | Description |
---|---|
特权 |
CSI要求挂载点为双向挂载点、这意味着Trident节点POD必须运行特权容器。有关详细信息,请参见 "Kubernetes:挂载传播"。 |
主机网络连接 |
iSCSI守护进程所需的。`iscsiadm`可管理iSCSI挂载、并使用主机网络与iSCSI守护进程进行通信。 |
主机IPC |
NFS使用进程间通信(Interprocess Communication、IPC)与NFSD进行通信。 |
主机PID |
启动NFS时需要此参数 |
功能 |
|
Seccomp |
Seccomp配置文件始终处于"非受限"状态、因此无法在Trident中启用。 |
SELinux |
在OpenShift上、有权限的容器在("超级特权容器")域中运行 |
DAC |
有权限的容器必须以root用户身份运行。非特权容器以root用户身份运行、以访问CSI所需的UNIX套接字。 |
POD安全标准(PSS)
Label | Description | Default |
---|---|---|
|
允许将Trident控制器和节点收入安装命名空间。请勿更改命名空间标签。 |
|
更改命名空间标签可能会导致Pod未计划、出现"创建时出错:…"或"警告:Trident CSI -…"。如果发生这种情况、请检查`privileged`的命名空间标签是否已更改。如果是、请重新安装Trident。 |
POD安全策略(PSP)
字段 | Description | Default |
---|---|---|
|
有权限的容器必须允许权限升级。 |
|
|
Trident不使用实时CSI临时卷。 |
空 |
|
非特权Trident容器所需的功能不会超过默认设置、而特权容器会获得所有可能的功能。 |
空 |
|
Trident不使用 "FlexVolume驱动程序"、因此它们不会包含在允许的卷列表中。 |
空 |
|
Trident节点POD挂载节点的根文件系统、因此设置此列表没有好处。 |
空 |
|
Trident不使用任何`ProcMountTypes`。 |
空 |
|
Trident不需要任何不安全的`sysctls`。 |
空 |
|
无需向有权限的容器添加任何功能。 |
空 |
|
允许权限升级在每个Trident POD中进行处理。 |
|
|
不允许使用`sysctls`。 |
空 |
|
Trident容器以root身份运行。 |
|
|
挂载NFS卷需要主机IPC才能与`nfsd`进行通信 |
|
|
iscsiadm要求主机网络与iSCSI守护进程进行通信。 |
|
|
需要使用主机PID来检查节点上是否正在运行`rpc-statd`。 |
|
|
Trident不使用任何主机端口。 |
空 |
|
Trident节点Pod必须运行特权容器才能挂载卷。 |
|
|
Trident节点Pod必须写入节点文件系统。 |
|
|
Trident节点Pod运行有权限的容器、无法删除功能。 |
|
|
Trident容器以root身份运行。 |
|
|
Trident容器以root身份运行。 |
|
|
Trident不使用`RuntimeClasses`。 |
空 |
|
Trident未设置`seLinuxOptions`、因为容器运行时间和Kubernetes分发程序处理SELinux的方式目前存在差异。 |
空 |
|
Trident容器以root身份运行。 |
|
|
Trident Pod需要这些卷插件。 |
|
安全上下文限制(SCC)
标签 | Description | Default |
---|---|---|
|
Trident节点Pod挂载节点的根文件系统。 |
|
|
挂载NFS卷需要主机IPC才能与`nfsd`进行通信。 |
|
|
iscsiadm要求主机网络与iSCSI守护进程进行通信。 |
|
|
需要使用主机PID来检查节点上是否正在运行`rpc-statd`。 |
|
|
Trident不使用任何主机端口。 |
|
|
有权限的容器必须允许权限升级。 |
|
|
Trident节点Pod必须运行特权容器才能挂载卷。 |
|
|
Trident不需要任何不安全的`sysctls`。 |
|
|
非特权Trident容器所需的功能不会超过默认设置、而特权容器会获得所有可能的功能。 |
空 |
|
无需向有权限的容器添加任何功能。 |
空 |
|
Trident容器以root身份运行。 |
|
|
此SCC专用于Trident并绑定到其用户。 |
空 |
|
Trident节点Pod必须写入节点文件系统。 |
|
|
Trident节点Pod运行有权限的容器、无法删除功能。 |
|
|
Trident容器以root身份运行。 |
|
|
Trident未设置`seLinuxOptions`、因为容器运行时间和Kubernetes分发程序处理SELinux的方式目前存在差异。 |
空 |
|
有权限的容器始终运行"无限制"。 |
空 |
|
Trident容器以root身份运行。 |
|
|
提供了一个条目、用于将此SCC绑定到Trident命名空间中的Trident用户。 |
不适用 |
|
Trident Pod需要这些卷插件。 |
|