是否可以防止 k8s 秘密为空零字节?

问题描述

是否有可能以不可能出现空秘密的方式配置 k8s?

我在一项服务中遇到了一个问题,这个秘密在某种程度上被一个空的(零字节)覆盖,因此我的服务出现故障。我看不到任何时候让秘密为空的好处,并希望一起防止空秘密。

感谢您的帮助!

解决方法

虽然这不是一个简单的实现答案,但我可以告诉你,你正在寻找的是 Admission Controller,其中一个非常受欢迎的是 OPA Gatekeeper

理论上,kubernetes 作为一个平台,不了解您的业务需求,以防止错误覆盖 Secret。但是作为策略规则引擎的 OPA 允许您指定这些内容,而无需上游 kubernetes 为每个人采用这些策略

另一种方法是turn on audit logging并追查再教育的责任方

另一种替代方法是正确地确定 RBAC 角色的范围,以实际拒绝对 Secret 的写入,但已知可信的凭据除外