K8S之Secret

K8S的Secret用于安全地存储密码、token和密钥等敏感信息,包括Service Account、Opaque Secret和kubernetes.io/dockerconfigjson三种类型。Opaque Secret用于存储base64编码的敏感数据,Service Account自动创建并用于API访问,而kubernetes.io/dockerconfigjson则存储私有Docker仓库的认证。Secret可以通过挂载Volume或环境变量供Pod使用,提高生产环境数据安全性。
摘要由CSDN通过智能技术生成

K8S之Secret

Secret介绍

k8s secrets用于存储和管理一些敏感数据,比如密码,token,密钥等敏感信息。它把 Pod 想要访问的加密数据存放到 Etcd 中。然后用户就可以通过在 Pod 的容器里挂载 Volume 的方式或者环境变量的方式访问到这些 Secret 里保存的信息了。

Secret 有三种类型:

  • Service Account :用来访问 Kubernetes API,由 Kubernetes 自动创建,并且会自动挂载到 Pod 的 /run/secrets/kubernetes.io/serviceaccount 目录中
  • Opaque:base64编码格式的Secret,用来存储密码、密钥等
  • kubernetes.io/dockerconfigjson:用来存储私有 docker registry 的认证信息

Service Account

系统默认使用的类型,k8s集群为了确认pod是否属于这个集群,所以在每个pod里都会有证明pod身份的信息

kubectl exec nginx-3137573019-md1u2 ls /run/secrets/kubernetes.io/serviceaccount、
ca.crt   namespace  token  #这三个文件就是证明pod身份的东西

Opaque Secret

使用base64加密后,用来存储密码、密钥

需要注意的是:base64加密时我们手动加密的,系统不会自动加密,但是会自动解密

1、手动加密用户名和密码

Opaque 类型的数据是一个 map 类型,要求 value 是 base64 编码格式:

echo "admin" | base64   # 将用户名和密码加密
YWRtaW4=
echo -n "1f2d1e2e67df" | base64
MWYyZDFlMmU2N2Rm

这里需要注意的是,像这样创建的 Secret 对象,它里面的内容仅仅是经过了转码,而并没有被加密。在真正的生产环境中,你需要在 Kubernetes 中开启 Secret 的加密插件,增强数据的安全性。

2、生成secret

vim secret.yaml
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  password: MWYyZDFlMmU2N2Rm  
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值