`secret` 如何保护 Kubernetes 中的敏感信息
how could `secret` protect sensitive information in Kubernetes
我刚接触 Kubernetes。
我对secret
的理解是,它通过base64
对信息进行编码。从我看到的资源来看,据说 secret
可以保护敏感信息。我不明白这个。
除了用 base64
编码信息外,我看不出 secret
和 configMap
之间有什么真正的区别。我们可以如此轻松地解码 base64
编码的信息。也就是说完全没有保护...
我的理解有误吗?
保护 Secret
的是它在 kubernetes 中是一种独特的资源类型,因此可能会受到与 ConfigMap
不同的 RBAC 策略的约束。
如果您当前能够读取集群中的 Secret
,那是因为您的 ClusterRoleBinding
(或 RoleBinding
)具有专门授予对这些资源的访问权限的规则。这可能是由于您从其中一个主节点通过其 "unauthenticated" 端口访问集群,或者是由于 [Cluster
]RoleBinding
将您的 Subject
附加到 cluster-admin
,这在 hello-world 情况下可能很常见,但我猜在生产集群设置中不太常见。
这是迂腐的答案,但是,真正 保护 Secret
中包含的秘密更加棘手,因为它们通常暴露于 Pod
通过环境注入或卷安装。这意味着任何人 exec
访问 Pod
的人都可以很容易地泄露秘密值,所以如果秘密非常重要,并且必须对团队保密,你需要撤销 exec
也可以访问您的 Pod
。中间立场可能是允许团队访问他们自己的 Namespace
中的 Secret
,但禁止其他 Namespace
访问。它是安全的,所以几乎没有尽头的排列和特殊情况。
我刚接触 Kubernetes。
我对secret
的理解是,它通过base64
对信息进行编码。从我看到的资源来看,据说 secret
可以保护敏感信息。我不明白这个。
除了用 base64
编码信息外,我看不出 secret
和 configMap
之间有什么真正的区别。我们可以如此轻松地解码 base64
编码的信息。也就是说完全没有保护...
我的理解有误吗?
保护 Secret
的是它在 kubernetes 中是一种独特的资源类型,因此可能会受到与 ConfigMap
不同的 RBAC 策略的约束。
如果您当前能够读取集群中的 Secret
,那是因为您的 ClusterRoleBinding
(或 RoleBinding
)具有专门授予对这些资源的访问权限的规则。这可能是由于您从其中一个主节点通过其 "unauthenticated" 端口访问集群,或者是由于 [Cluster
]RoleBinding
将您的 Subject
附加到 cluster-admin
,这在 hello-world 情况下可能很常见,但我猜在生产集群设置中不太常见。
这是迂腐的答案,但是,真正 保护 Secret
中包含的秘密更加棘手,因为它们通常暴露于 Pod
通过环境注入或卷安装。这意味着任何人 exec
访问 Pod
的人都可以很容易地泄露秘密值,所以如果秘密非常重要,并且必须对团队保密,你需要撤销 exec
也可以访问您的 Pod
。中间立场可能是允许团队访问他们自己的 Namespace
中的 Secret
,但禁止其他 Namespace
访问。它是安全的,所以几乎没有尽头的排列和特殊情况。