GaussDB(DWS) 云端运维系列第十期:加密集群
GuassDB(DWS) 为集群启用数据库加密,保护静态数据。当为集群启用加密时,该集群机器快照的数据都会得到加密。加密是集群一项可选且不可变的设置,要从未加密的集群更改为加密集群,必须从现有集群导出数据,然后在已启用数据库加密的新集群中重新导入这些数据,数据库加密是GaussDB(DWS)写入数据时对数据进行加密,而在用户查询数据时,DWS将数据自动进行解密后再将结果返回给用户。
一、GaussDB(DWS) 服务控制台数据库加密页面:
1、进入GaussDB(DWS) 服务 “购买数据仓库集群” 页面。
2、在上图的页面中找到“高级配置”,并点击“自定义”。
3、打开加密数据库按钮,并选择填入密钥。
4、如果没有可用的密钥,在点击“创建密钥”。
5、在创建密钥的页面中填入别名和描述,点击“确定”按钮,密钥创建完成。
6、创建完成后,选择使用得到的密钥去创建DWS集群。
二、KMS服务加密GaussDB(DWS) 数据库
当选择KMS(密钥管理服务)对GaussDB(DWS) 进行密钥管理时,加密密钥层次结构有三层。按层次结构顺序排列,这些密钥为主密钥(CMK)、集群加密密钥 (CEK)、数据库加密密钥 (DEK)。
- 主密钥用于给CEK加密,保存在KMS中。
- CEK用于加密DEK,CEK明文保存在GaussDB(DWS) 集群内存中,密文保存在GaussDB(DWS) 服务中。
- DEK用于加密数据库中的数据,DEK明文保存在GaussDB(DWS) 集群内存中,密文保存在GaussDB(DWS) 服务中。
密钥使用流程如下:
- 用户选择主密钥。
- GaussDB(DWS) 随机生成CEK和DEK明文。
- KMS使用用户所选的主密钥加密CEK明文并将加密后的CEK密文导入到GaussDB(DWS) 服务中。
- GaussDB(DWS) 使用CEK明文加密DEK明文并将加密后的DEK密文保存到GaussDB(DWS) 服务中。
- GaussDB(DWS) 将DEK明文传递到集群中并加载到集群内存中。
当该集群重启时,集群会自动通过API向GaussDB(DWS) 请求DEK明文,GaussDB(DWS) 将CEK、DEK密文加载到集群内存中,再调用KMS使用主密钥CMK来解密CEK,并加载到集群内存中,最后用CEK明文解密DEK,并加载到集群内存中,返回给集群。
三、加密密钥轮转
加密密钥轮转是指更新保存在GaussDB(DWS) 服务的密文。在GaussDB(DWS) 中,您可以轮转已加密集群的加密密钥CEK。密钥轮转流程如下:
- GaussDB(DWS) 集群启动密钥轮转。
- GaussDB(DWS) 根据集群的主密钥来解密保存在GaussDB(DWS) 服务中的CEK密文,获取CEK明文。
- 用获取到的CEK明文解密保存在GaussDB(DWS) 服务中的DEK密文,获取DEK明文。
- GaussDB(DWS) 重新生成新的CEK明文。
- GaussDB(DWS) 用新的CEK明文加密DEK并将DEK密文保存在GaussDB(DWS) 服务中。
- 用主密钥加密新的CEK明文并将CEK密文保存在GaussDB(DWS) 服务中。
根据业务需求和数据类型计划多久轮转一次加密密钥。为了提高数据的安全性,建议用户定期执行轮转密钥以避免密钥被破解的风险。一旦密钥可能已泄露,需要及时轮转密钥。
- 点赞
- 收藏
- 关注作者
评论(0)