看起来Pod控制器在丢弃能力时接受不同的ALL
shell
apiVersion: v1
kind: Pod
metadata:
labels:
run: foo
name: foo
spec:
containers:
- image: ubuntu
command: ["sleep","9999"]
name: foo
resources: {}
securityContext:
capabilities:
drop:
- all
root@foo:/# cat /proc/1/status | grep Cap
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: 0000000000000000
CapAmb: 0000000000000000
但是Pod安全准入控制器要求常量为ALL
kubernetes/staging/src/k8s.io/pod-security-admission/policy/check_capabilities_restricted.go
第30行 in a08ee80
| | capabilityAll="ALL" |
kubernetes/staging/src/k8s.io/pod-security-admission/policy/check_capabilities_restricted.go
第94行 in a08ee80
| | ifc==capabilityAll { |
考虑到有很多现有的K8s yaml可以在受限制的配置文件中运行,将准入控制器的比较设置为不区分大小写可能有意义。
/sig security
9条答案
按热度按时间5jvtdoz21#
这个问题目前正在等待分类。
如果SIG或子项目确定这是一个相关的问题,他们将通过应用
triage/accepted
标签并提供进一步的指导来接受它。组织成员可以通过在评论中写入
/triage accepted
来添加triage/accepted
标签。有关使用PR评论与我互动的说明,请查看here。如果您对我的行为有任何问题或建议,请针对kubernetes/test-infra仓库提出一个问题。
9o685dep2#
/sig node
9wbgstp73#
Kubernetes项目目前缺乏足够的贡献者来充分应对所有问题。
此机器人根据以下规则对未分类的问题进行分级处理:
lifecycle/stale
应用后的90天不活动后,将应用lifecycle/stale
lifecycle/stale
应用后的30天不活动后,将应用lifecycle/rotten
lifecycle/rotten
应用后的30天不活动后,该问题将被关闭您可以:
/remove-lifecycle stale
/close
关闭此问题请将反馈发送至sig-contributor-experience@kubernetes/community。
/lifecycle stale
0yycz8jy4#
Kubernetes项目目前缺乏足够的活跃贡献者来充分应对所有问题。
此机器人根据以下规则对未分类的问题进行分级处理:
lifecycle/stale
应用后的90天内无活动,将应用lifecycle/stale
lifecycle/stale
应用后的30天内无活动,将应用lifecycle/rotten
lifecycle/rotten
应用后的30天内无活动,将关闭该问题您可以:
/remove-lifecycle rotten
标记此问题为新鲜/close
关闭此问题请将反馈发送至sig-contributor-experience@kubernetes/community。
/lifecycle rotten
o4tp2gmn5#
/lifecycle frozen
zbwhf8kr6#
根据与@tallclair的沟通,我的理解如下:
ALL
关键字进行不区分大小写的匹配,但这并不保证对其他运行时也有效。ALL
大小写形式。这样它们将与其他规范保持一致。ruoxqz4g7#
为什么API不能接受所有
ALL
的情况,然后在与CRI通信时将其转换为大写?我只是认为我们不需要在这里过于苛求,但可以进行一些轻微的更改,使其更具可扩展性和安全性。
u7up0aaq8#
这是一个有趣的想法,也许是一种在不改变CRI规范的情况下达到一致、合规状态的方法。
我认为任何更改确实需要从低级(如pod控制器)开始,并从那里逐渐传播开来。
一旦可以保证CRI会收到“所有”,那么准入控制器和其他验证测试就可以更加宽松。
目前的情况是,有一些验证测试正在接受那些(1)可能会被合规的准入控制器拒绝的资源,当它们应用于集群时,以及(2)尽管不太可能,但实际上可能不会在运行时完全删除所有资源。
rkkpypqq9#
为什么API不能接受所有情况的ALL,然后在与CRI通信时将其转换为大写?
允许像那样的混合大小写功能会给Pod安全标准的所有实现(有很多)带来更多的工作。
我们希望引入使用CEL的变异准入策略,允许您设置集群在准入时将值转换为大写。欢迎提供关于MutationAdmissionPolicy实现的帮助。