title | summary |
---|---|
DM 自定义加解密 key |
介绍如何自定义密钥,用于加密和解密 DM(Data Migration)数据源和迁移任务配置中的密码。 |
在 v8.0.0 之前,DM 使用了一个固定的 AES-256 密钥来加密和解密数据源和迁移任务配置中的密码,但固定秘钥可能产生安全风险,特别是在对安全性要求较高的环境中。为了提高安全性,从 v8.0.0 开始,DM 移除了固定密钥,并支持设置自定义密钥。
- 创建一个自定义的密钥文件,文件内容必须为长度为 64 个字符的十六进制的 AES-256 密钥。一种生成该秘钥的方式是对随机内容计算 SHA256 校验和,比如
head -n 256 /dev/urandom | sha256sum
。 - 在 DM-master 启动参数或配置文件 中,设置
secret-key-path
为你自定义的密钥文件的路径。
从 v8.0.0 开始,DM 不再使用固定密钥,因此从低于 v8.0.0 的版本升级时需要注意:
- 如果数据源配置和迁移任务配置里使用的都是明文密码,则升级不需要做额外处理。
- 如果数据源配置和迁移任务配置里使用了加密密码,或者后续希望使用加密密码,则需进行以下操作:
- 在 DM-master 配置文件 中,增加
secret-key-path
参数,将其设置为你自定义的密钥文件的路径。该文件内容须为长度为 64 个字符的十六进制的 AES-256 密钥。如果升级前使用了固定的 AES-256 密钥 进行加密,可拷贝该秘钥到你的秘钥文件中。请确保所有 DM-master 节点使用相同的密钥配置。 - 先滚动升级 DM-master,然后滚动升级 DM-worker,具体参考滚动升级。
- 在 DM-master 配置文件 中,增加
如需更新用于加密和解密的密钥,请按照以下顺序进行:
-
更新 DM-master 配置文件 中的
secret-key-path
。注意:
-
滚动重启 DM-master。
-
使用
tiup dmctl encrypt
(dmctl 版本需 >= v8.0.0)加密的密码用于创建数据源配置文件和迁移任务配置文件。