【发布时间】:2019-06-08 13:02:22
【问题描述】:
我想构建一个 pod 安全策略,在其中删除所有功能,然后仅启用 CHOWN。
问题在于,“requiredDropCapabilities: ALL”似乎是主要规则,如果我将其配置为 ALL,则无法使用 AllowedCapabilities 或 DefaultAddCapabilities 添加单个功能。
https://kubernetes.io/docs/concepts/policy/pod-security-policy/
RequiredDropCapabilities - 必须从中删除的功能 容器。这些功能已从默认设置中删除,并且 不得添加。 RequiredDropCapabilities 中列出的功能 不得包含在 AllowedCapabilities 或 DefaultAddCapabilities 中
我怎么能拒绝除一个以外的所有能力?
--编辑
这是我的例子:
PodSecurityPolicy:
apiVersion: extensions/v1beta1
kind: PodSecurityPolicy
metadata:
name: a-pot-root
spec:
allowPrivilegeEscalation: false
forbiddenSysctls:
- '*'
allowedCapabilities:
- CHOWN
requiredDropCapabilities:
- ALL
fsGroup:
ranges:
- max: 65535
min: 1
rule: MustRunAs
runAsUser:
rule: RunAsAny
seLinux:
rule: RunAsAny
supplementalGroups:
ranges:
- max: 65535
min: 1
rule: MustRunAs
volumes:
- configMap
- emptyDir
- projected
- secret
- downwardAPI
- persistentVolumeClaim
那么容器内部就没有 CHOWN 能力了:
root@hellonode-6d654c57b8-b8hz8:/app# capsh --print
Current: =
Bounding set =
Securebits: 00/0x0/1'b0
secure-noroot: no (unlocked)
secure-no-suid-fixup: no (unlocked)
secure-keep-caps: no (unlocked)
uid=0(root)
gid=0(root)
groups=1(daemon)
谢谢。
【问题讨论】:
-
您能否提供一个示例和/或更具体地说明“我无法添加个人功能”;
kubectl会抱怨它无效吗?它没有效果吗?另外,您对allowPrivilegeEscalation和privileged使用什么值(如果有)? -
@MichaelHausenblas 我已经用细节编辑了这个问题。
-
谢谢@Jxadro,如果你设置了
allowPrivilegeEscalation: true,它会改变什么还是结果还是一样? -
@MichaelHausenblas 同样的结果
标签: kubernetes