16.2. 关于 pod 安全准入同步
除了全局 pod 安全准入控制配置外,还存在一个控制器,它会根据给定命名空间中的服务帐户的 SCC 权限将 pod 安全准入控制 warn
和 audit
标签应用到命名空间。
控制器检查 ServiceAccount
对象权限,以便在每个命名空间中使用安全性上下文约束。安全性上下文约束 (SCC) 根据其字段值映射到 Pod 安全配置集,控制器使用这些翻译配置集。Pod 安全准入 warn
和 audit
标签被设置为命名空间中的最特权 pod 安全配置集,以防止在创建 pod 时显示警告和日志记录审计事件。
命名空间标签基于对命名空间本地服务帐户权限的考虑。
直接应用 pod 可能会使用运行 Pod 的用户的 SCC 特权。但是,在自动标记过程中不会考虑用户权限。
16.2.1. Pod 安全准入同步命名空间排除
在大多数系统创建的命名空间中永久禁用 Pod 安全准入同步。同步最初在用户创建的带有 openshift
前缀的命名空间上被禁用,但您可以在以后启用同步。
如果 pod 安全准入标签 (pod-security.kubernetes.io/<mode>
) 被来自一个标签同步的命名空间中自动进行标签的值进行了修改,则对此标签的同步会被禁用。
如果需要,您可以使用以下方法之一再次启用同步:
- 从命名空间中删除修改后的 pod 安全准入标签
将
security.openshift.io/scc.podSecurityLabelSync
标签设置为true
如果您通过添加此标签强制同步,则任何修改过的 pod 安全准入标签都会被覆盖。
永久禁用命名空间
定义为集群有效负载一部分的命名空间会永久禁用 pod 安全准入同步。以下命名空间被永久禁用:
-
default
-
kube-node-lease
-
kube-system
-
kube-public
-
openshift
-
所有带有
openshift-
前缀的系统创建命名空间,但openshift-operators
除外
最初禁用命名空间
默认情况下,具有 openshift-
前缀的所有命名空间最初都禁用了 pod 安全准入同步。您可以为用户创建的 openshift-*
命名空间和 openshift-operators
命名空间启用同步。
除了 openshift-operators
之外,您无法为任何系统创建的 openshift-*
命名空间启用同步。
如果在用户创建的 openshift-*
命名空间中安装了 Operator,则在命名空间中创建集群服务版本 (CSV) 后会自动启用同步。同步标签派生自命名空间中服务帐户的权限。