对比 Docker Secrets 与 Kubernetes Secrets 的加密强度
解读
面试官问“加密强度”并不是让你背算法名称,而是想确认三件事:
- 你是否清楚两种 Secret 在数据静止(at-rest)、传输中(in-transit)、**使用时(in-use)**三阶段分别被谁、用什么机制加密;
- 你是否知道国内等保 2.0/3.0、密评、关基对密钥管理的硬性要求;
- 你能否给出可落地的加固方案,而不是只背官方文档。
回答思路:先分层对比加密链路,再给出国内合规视角下的风险点与改进动作,最后落到“选 Swarm 还是 K8s”的决策建议。
知识点
-
Docker Swarm Secrets
- 仅存在于 Swarm Mode,Raft 日志作为唯一持久化载体,默认 AES-256-GCM 加密;
- 密钥材料由** swarm unlock key** 派生,存储在 manager 节点本地 /var/lib/docker/swarm/certificates/swarm-node.key;
- 传输层走 mutual TLS(TLS 1.2/1.3),证书轮换周期 90 天可配;
- 使用阶段通过 tmpfs 挂载到容器,宿主机层面不落地,内存明文但不可宿主机直接读取;
- 无 KMS 集成,无法对接国内云 HSM/专属加密机,等保三级场景需自行改造。
-
Kubernetes Secrets
- etcd 中默认 AES-GCM 加密,密钥存于 EncryptionConfiguration 文件,可配置 KMS v1/v2 provider;
- 1.27+ 版本支持 KMS v2,可对接 阿里云 KMS、腾讯云 KMS、华为云 KMS 以及国密 SM4 硬件模块,满足密评要求;
- 传输层走 kube-apiserver 双 443,TLS 1.3 + RSA-3072/ECDSA-P256,证书由 kube-controller-manager 自动轮转;
- 节点侧通过 tmpfs 或 secretbox 插件挂载,可开启 NodeAuthorization + BoundServiceAccountToken 防止横向越权;
- 支持 ** sealed-secrets / external-secrets / vault-csi** 等二次加密方案,国密改造社区已有落地案例。
-
国内合规差异
- 等保 2.0 要求“密钥应在硬件密码模块中生成、存储”,Docker Swarm 原生方案直接判不合格;
- 关基条例 2021 版明确“三级系统应使用国密算法或经国家密码管理局批准的硬件密码产品”,K8s 通过 KMS+SM4 可满足,Swarm 无官方插件;
- 密评现场测评点:密钥是否明文落盘、是否定期轮换、是否双人双控管理,Swarm 三项皆弱。
答案
“从加密强度三阶段看:
- 静止阶段,Docker Swarm 仅用 AES-256-GCM 加密 Raft 日志,密钥文件本地裸放,无法接入硬件 HSM;而 Kubernetes 通过 KMS provider 可把密钥托管到云加密机或国密 SM4 模块,支持密钥轮换与多租户隔离,静止加密强度明显更高。
- 传输阶段,两者均走 TLS 1.2/1.3+AES-256,算法套件同级;但 K8s 的 etcd 加密通道可独立再加密一次,形成双层通道,抗中间人能力更强。
- 使用阶段,二者都把 Secret 挂成 tmpfs,内存明文看似相同;不过 K8s 额外提供 NodeAuthorization + BoundServiceAccountToken,可阻止恶意容器通过主机路径逃逸读取,减少明文泄露面。
综上,在国内等保、关基、密评场景下,Kubernetes Secrets 的加密强度与合规可控性全面优于 Docker Swarm Secrets;若项目必须留在 Swarm,建议通过外挂 vault + sidecar 卸载敏感配置,并把 unlock key 写入经国密认证的 USBKey+SO 口令拆分管理,才能勉强接近三级要求。”
拓展思考
-
如果客户已用 Docker Swarm 且无法迁移,如何零停机把 Secrets 迁移到国密硬件 KMS?
答:可在 manager 节点部署 softhsm+pkcs11 代理,重写 swarm unlock 流程,把 Raft 加密密钥改为 SM4-CBC 并由 HSM 加解密;同时用 OPA Gatekeeper 策略禁止新建 Swarm Secret,逐步把新业务切到 Vault + Consul Template 的 sidecar 方案,实现算法合规+平滑过渡。 -
在多云灾备场景,K8s 的 KMS 密钥如何跨云同步且满足跨境数据评估办法?
答:采用 KMS v2 envelope encryption,把 DEK 用国内云 SM4 主密钥加密后,再套一层目标云 RSA-4096 公钥做二次信封;跨境流动时只传已双重加密的 DEK,主密钥始终留在境内 HSM,满足网信办出境评估要求。