CockroachDB 加密与部署拓扑全解析
1. 静态数据加密
静态数据加密是 CockroachDB 的企业级功能,它能对磁盘上的数据进行透明加密,即拥有数据访问权限的用户不会察觉到数据已被加密。CockroachDB 使用高级加密标准(AES)算法,密钥大小可以是 128、192 或 256 位。
要生成加密密钥,可使用 cockroach
二进制文件的 gen
命令。以下命令将生成一个 256 位的 AES 密钥:
$ cockroach gen encryption-key -s 256 keys/enc.key
对于加密密钥的管理,有以下建议:
- 只有运行 CockroachDB 进程的 UNIX 用户才能访问加密密钥。
- 不要将加密密钥和 CockroachDB 数据存放在同一位置,例如 HashiCorp 的 Vault 是一个不错的选择。
- 定期轮换加密密钥,周期可以是几周至几个月。
2. 数据库加密
数据库加密会对数据库中的所有表进行加密。若不确定某些表是否需要加密,这是一个合理的选择,可确保所有数据都被加密。
创建启用加密的节点时,与传输中加密部分启动节点的命令类似,但需添加 --enterprise-encryption
参数,以告知 CockroachDB 使用企业级加密功能。该参数使用键值对来配置加密相关的设置:
| 参数 | 说明 |
| ----