【问题标题】:How do I prevent pods from mounting secrets in the same namespace?如何防止 pod 在同一个命名空间中挂载秘密?
【发布时间】:2020-08-14 13:37:47
【问题描述】:

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

【问题讨论】:

    标签: kubernetes rbac kubernetes-pod


    【解决方案1】:

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

    另一种选择是让 pod 创建请求由 Open Policy Agent 验证,您可以在其中编写策略来实现类似的验证。

    【讨论】:

    • 感谢您的回复。我将查看链接的文档。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2021-08-07
      • 2018-08-21
      • 1970-01-01
      • 2021-10-21
      • 1970-01-01
      • 2022-10-07
      • 1970-01-01
      • 2018-02-28
      • 2019-04-03
      相关资源
      最近更新 更多