4.2.5.5.3. 了解预分配值和安全性上下文约束


准入控制器清楚安全性上下文约束中的某些条件,这些条件会触发它从命名空间中查找预分配值并在处理 pod 前填充安全性上下文约束。每个 SCC 策略都独立于其他策略进行评估,每个策略的预分配值(允许)与 Pod 规格值聚合,为运行的 Pod 中定义的不同 ID 生成最终值。

以下 SCC 导致准入控制器在 Pod 规格中没有定义范围时查找预分配值:

  1. RunAsUser 策略为 MustRunAsRange 且未设置最小或最大值。准入查找 openshift.io/sa.scc.uid-range 注解来填充范围字段。
  2. SELinuxContext 策略为 MustRunAs 且未设定级别。准入查找 openshift.io/sa.scc.mcs 注解来填充级别。
  3. FSGroup 策略为 MustRunAs。准入查找 openshift.io/sa.scc.supplemental-groups 注解。
  4. SupplementalGroups 策略为 MustRunAs。准入查找 openshift.io/sa.scc.supplemental-groups 注解。

在生成阶段,安全性上下文提供程序将默认使用 pod 中未具体设置的任何值。默认基于所使用的策略:

  1. RunAsAnyMustRunAsNonRoot 策略不提供默认值。因此,如果 pod 需要定义有一个字段(如组 ID),必须在 pod 规格中定义此字段。
  2. MustRunAs (单值)策略提供始终使用的默认值。例如,对于组 ID:即使 pod 规格定义了自己的 ID 值,命名空间的默认字段也会出现在 pod 的组中。
  3. MustRunAsRangeMustRunAs (基于范围)策略提供范围的最小值。与单值 MustRunAs 策略一样,命名空间的默认值将出现在运行的 Pod 中。如果基于范围的策略可以配置多个范围,它会提供第一个配置范围内的最小值。
注意

如果命名空间上不存在 openshift.io/sa.scc.supplemental-groups 注解,则 FSGroupSupplementalGroups 策略回退到 openshift.io/sa.scc.uid-range 注解。如果两者都不存在,则 SCC 将无法创建。

注意

默认情况下,基于注解的 FSGroup 策略使用基于注解的最小值的单个范围来配置其自身。例如,如果您的注解显示为 1/3,则 FSGroup 策略会将其自身配置为最小和最大 1。如果要允许 FSGroup 字段接受多个组,可以配置不使用注解的自定义 SCC。

注意

openshift.io/sa.scc.supplemental-groups 注解接受以逗号分隔的块列表,格式为 < start>/<length 或 < start>-<end>openshift.io/sa.scc.uid-range 注解只接受一个块。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.