备份加密与密钥分离
备份常常是整个体系里保护最弱的一环:它包含全部数据、被复制到多个位置、存放周期很长,却经常没有和生产环境同等的访问控制。基本要求有两条:静态加密(KMS 信封加密或加密归档工具),以及加密密钥与备份分离存放并独立授权——否则一次入侵就能同时拿到备份和解密能力。加密之后还必须定期做恢复演练并核对完整性,没有验证过的备份不能算备份。
基本信息
| 目标 | 防介质泄露与越权访问 |
|---|---|
| 做法 | 备份加密 + 密钥独立托管 + 取用审批 |
| 工具示例 | KMS 信封加密、age、gpg 等文件加密工具 |
| 分离要求 | 密钥与备份不在同一存储、不同授权主体 |
| 验证 | 定期恢复演练并核对校验值与数据完整性 |
| 生命周期 | 加密工具与密钥需要版本管理与轮换,长期归档要考虑算法迁移 |
典型使用场景
- 数据库备份:导出文件加密后再投递到对象存储。
- 配置与证书备份:私钥与证书文件的加密归档。
- 跨环境搬运:在传输与临时存放阶段保持加密状态。
- 异地容灾:异地副本同样加密,密钥不随数据一起搬。
- 合规要求:证明备份在静态与传输中均受保护。
加密归档示例
加密归档示例
# 用 age 做文件级加密归档(接收方公钥加密)
tar -czf - /etc/nginx/ssl | age -r <AGE_PUBKEY> > ssl-backup.tar.gz.age
# 恢复时用对应私钥解密
age -d -i key.txt ssl-backup.tar.gz.age | tar -xz -C /tmp/restore
# 恢复后校验证书与私钥仍可正常加载,并在隔离环境验证服务可启动环节与要求
| 环节 | 要求 | 常见疏漏 |
|---|---|---|
| 采集 | 加密前不落明文临时文件 | 先打包再加密时留下明文副本 |
| 传输 | 使用加密通道 | 依赖内网信任而明文传输 |
| 存放 | 密钥与备份分离存放 | 两者放在同一存储桶或同一台机器 |
| 授权 | 取用需审批 | 运维账号同时可读备份与密钥 |
| 验证 | 定期恢复演练 | 只检查备份任务成功,不验证可恢复 |
加密工具与密钥需要版本管理与轮换:长期归档要考虑算法迁移安排,否则若干年后出现「有备份但解不开」的尴尬局面。