备份加密是什么
备份文件里是全量数据,落盘后如果只做权限保护,一旦介质或对象存储被访问就等于泄露。常见做法有三类:备份管道接 gpg 对称加密、用 openssl enc 做通用对称加密、或使用 XtraBackup 的原生加密参数。无论哪种,密钥都必须独立于备份存放,并且要有轮换与解密演练——密钥丢失或忘记,加密备份就彻底变成不可恢复的字节。
基本信息
| gpg 对称加密 | gpg --symmetric --cipher-algo AES256 --batch --passphrase-file |
|---|---|
| openssl 方案 | openssl enc -aes-256-cbc -salt -pass file:路径 |
| XtraBackup | 备份参数中提供原生加密选项,按版本文档配置 |
| 顺序 | 先压缩再加密,减少加密的数据量 |
| 密钥管理 | 独立存储、权限收敛、定期轮换与解密演练 |
典型使用场景
- 异地归档:备份上传到对象存储前先加密,介质层面的访问不再直接暴露数据
- 合规要求:规范明确要求备份加密存放时按标准方案落地
- 介质流转:备份磁带或硬盘需要交给第三方保管时,加密是前提
- 混合云迁移:跨云搬运备份文件时避免明文落盘
- 分级保护:核心业务库的备份采用更高强度加密与更短轮换周期
管道加密与解密
管道加密与解密
# 备份管道:mysqldump -> gzip -> gpg 对称加密
mysqldump -uroot -p --single-transaction --all-databases \
| gzip -6 \
| gpg --symmetric --cipher-algo AES256 --batch \
--passphrase-file /etc/backup/pass.txt \
> /data/backup/all_$(date +%F).sql.gz.gpg
# 解密恢复链路:gpg 解密 -> 解压 -> 导入
# 先把口令文件权限设为 600,且不要与备份放在同一目录
ls -l /etc/backup/pass.txt方案对比
| 方案 | 优点 | 代价 |
|---|---|---|
| gpg 对称加密 | 成熟、支持密钥文件、可与管道组合 | 需要额外进程,注意口令文件权限 |
| openssl enc | 系统普遍自带,参数简单 | 老算法组合需谨慎选择,易配错 |
| XtraBackup 原生加密 | 备份与加密一步完成 | 参数随版本变化,需按文档配置 |
| 不加密只靠权限 | 零额外开销 | 介质或存储被访问即全量泄露 |
加密顺序影响性能:先压缩再加密(管道中压缩在前),加密的数据量更小。若使用支持硬件加速的环境,AES 的额外开销通常可以接受。
密钥必须与备份物理分离存放:把口令文件放在同一个备份目录里,等于没加密。密钥轮换时还要保留旧密钥的解密能力,否则历史备份将无法打开。