GaussDB(DWS) 云端运维系列第十期:加密集群

举报
dws-weibin 发表于 2020/12/30 21:04:00 2020/12/30
【摘要】 GaussDB(DWS) 数据库加密是DWS服务与KMS(密钥管理服务)服务的无缝对接,DWS服务通过KMS对GaussDB(DWS)进行密钥管理,起到了保护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) 服务中。

密钥使用流程如下:

  1. 用户选择主密钥。
  2. GaussDB(DWS) 随机生成CEK和DEK明文。
  3. KMS使用用户所选的主密钥加密CEK明文并将加密后的CEK密文导入到GaussDB(DWS) 服务中。
  4. GaussDB(DWS) 使用CEK明文加密DEK明文并将加密后的DEK密文保存到GaussDB(DWS) 服务中。
  5. GaussDB(DWS) 将DEK明文传递到集群中并加载到集群内存中。

当该集群重启时,集群会自动通过API向GaussDB(DWS) 请求DEK明文,GaussDB(DWS) 将CEK、DEK密文加载到集群内存中,再调用KMS使用主密钥CMK来解密CEK,并加载到集群内存中,最后用CEK明文解密DEK,并加载到集群内存中,返回给集群。

三、加密密钥轮转

    加密密钥轮转是指更新保存在GaussDB(DWS) 服务的密文。在GaussDB(DWS) 中,您可以轮转已加密集群的加密密钥CEK。密钥轮转流程如下:

  1. GaussDB(DWS) 集群启动密钥轮转。
  2. GaussDB(DWS) 根据集群的主密钥来解密保存在GaussDB(DWS) 服务中的CEK密文,获取CEK明文。
  3. 用获取到的CEK明文解密保存在GaussDB(DWS) 服务中的DEK密文,获取DEK明文。
  4. GaussDB(DWS) 重新生成新的CEK明文。
  5. GaussDB(DWS) 用新的CEK明文加密DEK并将DEK密文保存在GaussDB(DWS) 服务中。
  6. 用主密钥加密新的CEK明文并将CEK密文保存在GaussDB(DWS) 服务中。

     根据业务需求和数据类型计划多久轮转一次加密密钥。为了提高数据的安全性,建议用户定期执行轮转密钥以避免密钥被破解的风险。一旦密钥可能已泄露,需要及时轮转密钥。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。