如何解码/解密Kubernetes秘密
时间:2020-02-23 14:30:29 来源:igfitidea点击:
密码,SSH密钥,API凭据和OAuth令牌等敏感信息将存储在Kubernetes中的秘密。
我们最近对如何将Kubernetes秘密从一个名称空间复制到另一个名称的教程。
当我们需要确认秘密的实际值时,我们可以解码Base64数据。
在此简短教程中,我们将向我们展示如何使用kubectl命令解码Kubernetes中的Base64秘密。
对于此演示,我们将为数据库的用户名和密码创建一个简单的秘密。
echo -n 'admin' > ./username.txt echo -n 'Password' > ./password.txt
运行kubectl创建秘密命令以创建Kubernetes API服务器的秘密对象。
$kubectl create secret generic my-user-pass --from-file=./username.txt --from-file=./password.txt secret/my-user-pass created
我们可以通过运行以下kubectl命令确认已成功创建的秘密对象:
$kubectl get secret
解码秘密数据:
secret_name="my-user-pass" kubectl get secret $secret_name -o go-template='{{range $k,$v := .data}}{{printf "%s: " $k}}{{if not $v}}{{$v}}{{else}}{{$v | base64decode}}{{end}}{{"\n"}}{{end}}'
这是我的命令执行
password.txt: Password username.txt: admin
如果我们有JQ,我们可以使用以下命令解码。
$kubectl get secret my-user-pass -o json | jq '.data | map_values(@base64d)' { "password.txt": "Password", "username.txt": "admin" }
使用命令安装JQ:
--- Ubuntu/Debian -- $sudo apt install jq --- CentOS/Fedora -- $sudo yum install jq