
# DWS数据库加密
#### 简介
在DWS中，您可以为集群启用数据库加密，以保护静态数据。当您为集群启用加密时，该集群及其快照的数据都会得到加密处理。您可以在创建集群时启用加密。加密是集群的一项可选且不可变的设置。要从未加密的集群更改为加密集群(或反之)，必须从现有集群导出数据，然后在已启用数据库加密的新集群中重新导入这些数据。
如果希望加密，可以在集群创建时启用加密。加密是DWS集群中的一项可选设置，建议您为包含敏感数据的集群启用该设置。
#### 哪些用户有权限使用DWS数据库加密
- 安全管理员（拥有"Security Administrator"权限）可以直接授权DWS访问KMS，使用加密功能。
- 普通用户（没有"Security Administrator"权限）使用加密功能时，根据该普通用户是否为当前区域或者项目内第一个使用加密特性的用户，作如下区分：
  - 是，即该普通用户是当前区域或者项目内第一个使用加密功能的，需先联系安全管理员进行授权，然后再使用加密功能。
  
  - 否，即区域或者项目内的其他用户已经使用过加密功能，该普通用户可以直接使用加密功能。
   
对于一个租户而言，同一个区域内只要安全管理员成功授权DWS访问KMS，则该区域内的普通用户都可以直接使用加密功能。
如果当前区域内存在多个项目，则每个项目下都需要安全管理员执行授权操作。
#### 使用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，并加载到集群内存中，返回给集群。
#### 使用KMS加密DWS数据库（控制台）
1. [在DWS服务控制台](https://console.huaweicloud.com/dws/?locale=zh-cn#/dws/)，单击"购买数据仓库集群"。
2. 打开"加密数据库"开关。 
   1. 在"高级配置"中选择"自定义"，出现"加密数据库"开关。
      图1加密数据库   
      ![](https://support.huaweicloud.com/bestpractice-dew/zh-cn_image_0234093316.png "点击放大")
      ![](https://support.huaweicloud.com/bestpractice-dew/zh-cn_image_0234091817.png)表示打开"加密数据库"开关，启用数据库加密。每个区域的每个项目首次启用数据库加密时，系统会弹出一个"创建委托"的对话框，单击"是"创建委托以授权DWS访问KMS，如果单击"否"将不会启用加密功能。然后在"密钥名称"的下拉列表中选择已创建的密钥。如果没有密钥，可以登录KMS服务进行创建，详细操作请参见[《密码安全中心用户指南》](https://support.huaweicloud.com/dew/index.html)。
      ![](https://support.huaweicloud.com/bestpractice-dew/zh-cn_image_0234091833.png)表示关闭"加密数据库"开关，不启用数据库加密。
      
   
   2. 创建委托。 打开"加密数据库"开关，如果当前未授权DWS访问KMS，则会弹出"创建委托"对话框，单击"是"，授权DWS访问KMS，当授权成功后，DWS可以获取KMS密钥用来加解密云硬盘。
      ![](https://support.huaweicloud.com/bestpractice-dew/public_sys-resources/note_3.0-zh-cn.png)
      当您需要使用数据库加密功能时，需要授权DWS访问KMS。如果您有授权资格，则可直接授权。如果权限不足，需先联系拥有"Security Administrator"权限的用户授权，然后再重新操作。
      
   
   3. 加密设置。
      打开"加密数据库"开关，如果已经授权，会弹出"加密设置"对话框。
      图2加密设置   
      ![](https://support.huaweicloud.com/bestpractice-dew/zh-cn_image_0234093715.png "点击放大")
      密钥名称是密钥的标识，您可以通过"密钥名称"下拉框选择需要使用的密钥。
      
   
   
   
   
3. 根据界面提示，配置其他基本信息。详细参数说明请参见[创建集群](https://support.huaweicloud.com/mgtg-dws/dws_01_0019.html)。
 
