文档首页 > > 管理指南> 管理集群> 数据库加密> 数据库加密简介

数据库加密简介

分享
更新时间: 2019/10/30 GMT+08:00

DWS数据库加密

在DWS中,您可以为集群启用数据库加密,以保护静态数据。当您为集群启用加密时,该集群及其快照的数据都会得到加密处理。您可以在创建集群时启用加密。加密是集群的一项可选且不可变的设置。要从未加密的集群更改为加密集群(或反之),必须从现有集群导出数据,然后在已启用数据库加密的新集群中重新导入这些数据。

如果希望加密,可以在集群创建时启用加密。虽然加密是DWS集群中的一项可选设置,但我们建议您为集群启用该设置以保护数据。

使用KMS服务加密DWS数据库

当选择KMS(密钥管理服务)对DWS进行密钥管理时,加密密钥层次结构有三层。按层次结构顺序排列,这些密钥为主密钥(CMK)、集群加密密钥 (CEK)、数据库加密密钥 (DEK)。

  • 主密钥用于给CEK加密,保存在KMS中。
  • CEK用于加密DEK,CEK明文保存在DWS集群内存中,密文保存在DWS服务中。
  • DEK用于加密数据库中的数据,DEK明文保存在DWS集群内存中,密文保存在DWS服务中。

密钥使用流程如下:

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

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

加密密钥轮转

加密密钥轮转是指更新保存在DWS服务的密文。在DWS中,您可以轮转已加密集群的加密密钥CEK。

密钥轮转流程如下:

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

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

  • DWS轮转集群的CEK时,集群相关的快照不需要轮转CEK,因为CEK不会在集群快照中进行保存,CEK明文是保存在DWS集群内存中的,密文是保存在DWS服务中的。
  • 由于密钥轮转不更新DEK,所以对于数据的加解密不会有影响。

约束和限制

  • 数据库加密功能一旦开启就无法关闭。
  • 开启数据库加密功能后,请不要删除或禁用已用于加密DWS集群的KMS密钥,否则会导致集群异常。
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区