跳到正文

Kubernetes Secret 解码

Kubernetes Secret Decoder

把 Secret 清单里的每个 Base64 值都解出来,改完再编码回去,直接就能 apply。

打开一份 Kubernetes Secret 清单,解码每一个 Base64 值让你能读,允许你编辑其中任何一个,再用重新编码的值重建清单。它完全在标签页里运行——Secret 是最不该被送到服务器上去解码的东西。

🔒 完全在你的浏览器里运行kubernetessecretbase64devops

Secret 清单

放进一个 secret.yaml

在这个标签页里读取。不会上传。

全部在这个标签页里运行:不往任何地方发送,也不写进存储。

4个值

值
username

YWRtaW4=

password

c3VwZXItc2VjcmV0LXBhc3N3b3Jk

DATABASE_URL

cG9zdGdyZXM6Ly9hZG1pbjpzdXBlci1zZWNyZXQtcGFzc3dvcmRAZGI6NTQzMi9hcHA=

NOT_ENCODEDstringData — 不是 Base64

dGhpcyBvbmUgaXMgcGxhaW4gdGV4dA==

重新编码的清单

在上面改一个值,这里就跟着变。`stringData` 条目会按 Base64 折进 `data`,反正 `kubectl apply` 也是这么干的。

Base64 是编码,不是加密。Kubernetes Secret 本身什么都保护不了——真正在保护的是 RBAC 和静态加密。

怎么用

  1. 粘贴清单

    `kubectl get secret name -o yaml` 的输出,或者你仓库里的文件。`data` 和 `stringData` 都会读。

  2. 读值

    每个键显示解码后的值,下面是 Base64。`stringData` 条目会被标出来,因为它本来就没有编码过。

  3. 编辑,然后拿走重建的清单

    改一个值,下方的清单随之更新。`stringData` 条目会作为 Base64 折进 `data`,这正是 `kubectl apply` 在入口处做的事。

常见问题

Kubernetes Secret 加密任何东西吗?

它自己不加密。Base64 是一种编码——任何能读到清单的人都能读它。保护 Secret 的是集群上的 RBAC 和 etcd 里的静态加密,两者在 YAML 里都看不见。

为什么有一个值显示为错误?

因为它不是合法的 Base64,通常意味着清单被手工改过,或者这个值本该放在 `stringData` 下。Kubernetes 也会拒绝它。

把生产环境的 Secret 粘到这里安全吗?

什么都不会发送到任何地方,也不会写进存储——解码在你的浏览器里进行。关于屏幕共享和浏览器历史的常规注意事项仍然适用,因为这些值现在显示在屏幕上了。

可以从这些接进来

接下来

这些工具吃得下当前工具的产出,结果可以直接送过去。