我对Kubernetes很新鲜。
我对secret
的理解是,它通过base64
对信息进行编码。从我所看到的资源来看,据称secret
可以保护敏感信息。我不明白这一点。
除了使用base64
编码信息外,我没有看到secret
和configMap
之间的任何实际区别。而且,我们可以如此轻松地解码base64
编码的信息。这意味着根本没有保护...
我的理解错误吗?
答案 0 :(得分:3)
保护Secret
的事实是,它是kubernetes中的独特资源类型,因此可以受制于ConfigMap
以外的RBAC策略。
如果您当前能够读取集群中的Secret
,那是因为您的ClusterRoleBinding
(或RoleBinding
)具有专门授予对这些资源的访问权限的规则。可能是由于您从主节点之一通过其“未经身份验证”的端口访问群集,也可能是由于[{Cluster
] RoleBinding
将Subject
附加到{{1} },这在问候世界中可能很常见,但是我想在生产集群设置中不太常见。
那是一个ped脚的答案,但是,真的保护cluster-admin
中包含的秘密是比较棘手的,因为它们通常通过环境注入或卷安装。这意味着有权Secret
访问Pod
的任何人都可以很容易地泄露机密值,因此,如果机密非常重要,并且甚至必须保留在团队中,则您需要撤销{ {1}}也可以访问您的exec
。一个中间立场可能是授予团队访问他们自己Pod
中的exec
的权限,但禁止其他Pod
进行访问。它是安全的,因此排列和特殊情况几乎没有止境。