如何防止 pods 在同一命名空间中挂载秘密?

问题描述 投票:0回答:1

我的命名空间包含多个秘密和 pod。使用部署规范将秘密作为卷有选择地挂载在 pod 上。是否可以拒绝特定的秘密在某些 pod 中被挂载为卷。我测试过RBAC,它可以防止pods通过api访问秘密。考虑到允许将所有秘密挂载在同一命名空间的 pod 中存在安全风险,是否有类似的机制用于挂载秘密。

kubernetes rbac kubernetes-pod
1个回答
3
投票

没有简单的方法,因为秘密是由kubelet挂载的。但你可以有一个验证的 网钩 配置为拦截所有进入Kubernetes API服务器的pod创建请求。你将在web-hook中写代码来验证,只有在pod spec没有任何无效或不需要的秘密时才允许pod创建请求,否则它将拒绝pod创建请求。

另一种选择是通过以下方式来验证pod创建请求 开放式政策代理 其中你可以写策略来实现类似的验证。


2
投票

另一个答案是正确的,但为了完整起见,你可以写一个接纳控制器,根据某种策略检查请求。这就是内置的NodeRestriction接纳控制器所做的事情,以帮助限制事情,所以kubelet只能访问它应该运行的pods的秘密。

© www.soinside.com 2019 - 2024. All rights reserved.