首页/云/云与容器速查/Secret 密钥管理
本包目录(340 条)
云基础概念44 条计算与存储56 条网络与安全组33 条容器与 Docker106 条
Kubernetes68 条
容器排障33 条

Secret 密钥管理

存放口令、证书、令牌等敏感数据:值默认 base64(编码≠加密),可配 etcd 静态加密与 KMS。类型含 Opaque、dockerconfigjson、tls 等,必须收紧 RBAC。

云与容器速查云更新于 2026-10-12
创建kubectl create secret generic db-pass --from-literal=password=…(或 stringData 写明文)
类型Opaque(默认)/ kubernetes.io/dockerconfigjson / kubernetes.io/tls
使用env/envFrom 或卷挂载;tls 型 Secret 直接被 Ingress 引用
安全RBAC 限制 get/list;开启 etcd 加密;审计读取行为
注意Secret 是命名空间级对象,跨命名空间要各建一份

Secret 示例(stringData 更友好)

Secret 示例(stringData 更友好)
apiVersion: v1
kind: Secret
metadata:
  name: db-pass
type: Opaque
stringData:
  password: "S3cr3t-Example"
---
# 使用:环境变量
env:
  - name: DB_PASSWORD
    valueFrom:
      secretKeyRef:
        name: db-pass
        key: password
能读 Secret 就能读业务密码:默认 ServiceAccount 不该有 list secrets 权限,按最小权限收紧。

易错点

  • 把 base64 当加密:kubectl get secret -o yaml 谁都能还原明文
  • Secret 用于环境变量后想热更:同样需要重启 Pod

数据来源与参考

  • Kubernetes Docs:Secrets
  • Kubernetes Docs:Encrypting Secret Data at Rest

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌