摘要:一般使用kubectl describe secret 打印出来的key是明文的,value是密文的。
kubernetes secret的资源清单文件secret.yaml
apiVersion: v1
kind: Service
metadata:
name: musecret
namespace: default
type: Opaque
password: MTIzCg==
username: YWRtaW4K
通过资源清单文件,创建secret:
kubectl create -f secret.yaml
查看secret:
kubectl get secret -n default
描述secret:
kubectl describe secret mysecret -n default
一般使用kubectl describe secret 打印出来的key是明文的,value是密文的。
但是使用:
kubectl get cm $configmap_name -n $namespace_name
打印出来的cm都是明文的。
如果想要获取secret的内容,可以把资源清单文件输出为yaml:
kubectl get secret mysecret -n default -o yaml
想要获取secret对象数据中的key对应的明文,可以通过base64算法去解密:
echo -n "密文" | base64 --decode
这样就得到了我们要用的数据或者数据本身。
通过base64算法进行加密和解密的过程是可逆的。
所以对于运维工程师来说,可以通过一条命令把隐藏的密文进行解密,把数据给还原回来。
所以不能把secret对象当成唯一的安全手段。
对于有些数据库密码,密码要求不太严格的,可以放到secret里面,使用起来比configmap更安全一些,但是当成安全的唯一手段,还是不建议这么使用的,Secret增强了获取密码的难度。编码不是加密,可防君子,不可防小人。
繁花似锦
鼓励的话语:所有的隐忍,都是为了未来的腾飞!
来源:春蕾教育