如果我可以解码 Kubernetes 机密,它们有什么意义?

ale*_*lex 6 kubernetes kubernetes-security kubernetes-secrets

我可以轻松获取存储在Kubernetes.

$ kubectl get secret my-app-secrets -o yaml
Run Code Online (Sandbox Code Playgroud)

从我要解码的输出中选择秘密值。

例子 ZXhwb3NlZC1wYXNzd29yZAo=

$ echo ZXhwb3NlZC1wYXNzd29yZAo= | base64 --decode
> exposed-password
Run Code Online (Sandbox Code Playgroud)

我不确定我是否了解Kubernetes生态系统中的秘密资源的有效性,因为它很容易获得。

Btc*_*ces 6

关键是,在 Kubernetes 中,秘密允许您通过控制对秘密的访问来保护您的密码(您想要通过加密它来做什么),而不是通过加密它。

它有几种机制:

That said, in case something goes wrong, solutions as Sealed Secrets created by Bitnami or others solutions (see Mokrecov answer) have arisen to give even more robustness to the matter, just in case someone undesired gained access to your secret.


V. *_*cov 5

base64是编码,而不是加密,它允许您以方便的方式简单地编码信息。

您编码的数据可能包含许多无法识别的字符、换行符等,因此对它们进行编码很方便。

在 kubernetes 中,您可以使用此指令启用加密。

但是 kubernetes 不应该是唯一的真实来源,而是 kubernetes 从您需要选择的外部保管库加载这些机密,例如hashicorp 的保管库,如注释中所示。

除了 hashicorp vault,还有多种方式可以在 git 中存储机密:

您可能还对kubesec项目感兴趣,该项目可用于分析 Kubernetes 资源的安全风险。

  • 我想我仍然没有看到这种编码的用处以及为什么它“方便”。更不用说任何加密建议 https://kubernetes.io/docs/tasks/inject-data-application/distribute-credentials-secure/ 。我认为他们会促进更好的实践来存储编码的秘密,这些秘密不需要 1 个命令就可以暴露密码/密钥。 (3认同)