k8s文档中有一个关于受限PodSecurityPolicy的示例:
https://kubernetes.io/docs/concepts/policy/pod-security-policy/#example-policies
包含以下代码片段:
supplementalGroups:
rule: 'MustRunAs'
ranges:
# Forbid adding the root group.
- min: 1
max: 65535
fsGroup:
rule: 'MustRunAs'
ranges:
# Forbid adding the root group.
- min: 1
max: 65535我想知道为什么他们使用规则'MustRunAs‘而不是'MayRunAs’。
“MustRunAs”的文档说明:“使用第一个范围的最小值作为默认值。”
因此,我的理解是,对于任何容器,supplementalGroup和fsGroup都将默认为1(如果在pod或容器securityContext中没有另外指定),而如果使用了'MayRunAs‘,则不会分配默认的supplementalGroup / fsGroup。
因此,对于受限的PodSecurityPolicy,使用'MayRunAs‘而不是'MustRunAs’不是更好吗?
发布于 2020-08-13 22:30:05
因此,对于受限的PodSecurityPolicy,使用'MayRunAs‘而不是'MustRunAs’不是更好吗?
在我看来,MustRunAs比MayRunAs有更多的限制。让我们看看引入MayRunAs的Pull Request:
在其他组策略中增加了"MayRunAs“的价值。此策略允许在PSP中为FSGroupStrategy和SupplementalGroupStrategy定义一定范围的GID。
这个新策略的工作原理类似于"MustRunAs“策略,除了在pod/容器安全上下文中没有指定GID时,就不会为相应的容器生成GID。
下面是Realease注释:
PodSecurityPolicy对象现在支持
fsGroup和supplementalGroups选项的MayRunAs规则。这允许为pod/容器指定允许的GID范围,而无需像MustRunAs那样强制使用默认GID。这意味着,如果未明确指定,应用此类策略的容器将不会使用任何fsGroup/supplementalGroup GID,但根据策略,指定的GID仍必须落在GID范围内。
对于这两种情况,当容器的定义中没有指定GID时:
MustRunAs将设置为默认值,而MayRunAs将不会设置为默认值。https://stackoverflow.com/questions/63286987
复制相似问题