
# 为自定义密钥创建授权
用户可以为其他IAM用户或账号创建授权，授予其使用自身的自定义密钥的权限，一个自定义密钥下最多可创建100个授权。密钥的授权可以通过两种方式实现：为自定义密钥创建授权和通过IAM直接创建授权。这两种方式的主要区别在于授权的范围、灵活性和管理方式。主要区别在于自定义密钥授权适用于需要对单个密钥进行精细权限管理的场景，其授权范围仅限于特定的自定义密钥，它可以为每个自定义密钥设置不同的权限，更加精细。而IAM授权适用于需要对多个密钥或整个项目进行统一权限管理的场景，其授权范围可以覆盖整个项目或多个密钥，它可以为用户或用户组设置全局权限，但不如自定义密钥授权灵活。
#### 前提条件
- 已获取被授权IAM用户或账号的ID或principal_urn。
  - 用户ID：在"用户名 \> 我的凭证 \> API凭证"中的"IAM用户ID"。
  
  - 账号ID：在"用户名 \> 我的凭证 \> API凭证"中的"账号ID"。
  
  - principal_urn：在授权用户"统一身份认证"控制台的"用户"列表中，单击用户名进入基本信息页面，URN即principal_urn。
   
- 自定义密钥需处于"启用"状态。
 
#### 约束条件
- 自定义密钥的所有者可通过KMS界面或者调用API接口的方式为自定义密钥创建授权；被自定义密钥所有者授予了"创建授权"操作权限的IAM用户或账号仅能通过调用API接口的方式为自定义密钥创建授权。
- 一个自定义密钥下最多可创建100个授权。
 
#### 为自定义密钥创建授权
1. [登录DEW服务控制台](https://console.huaweicloud.com/dew/?locale=zh-cn#/dew/)。
2. 单击管理控制台左上角![](https://support.huaweicloud.com/usermanual-dew/zh-cn_image_0000002259682412.png)，选择区域或项目。
3. 单击目标自定义密钥的名称，进入密钥详细信息授权页面。
4. 单击"授权"，进入授权管理界面。
5. 单击"创建授权"，弹出"创建授权"对话框。
6. 在弹出的对话框中，参见[表1]进行配置。
   
   ![](https://support.huaweicloud.com/usermanual-dew/public_sys-resources/notice_3.0-zh-cn.png)
   被授权用户只有通过调用API接口的方式，才能使用"授权操作"的权限，详细信息请参考《密码安全中心API参考》。
    表1创建授权参数说明 
   | 参数    | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 配置样例                             |
   |:---|:---|:---|
   | 被授权对象 | 支持对用户和账号进行授权。 - 用户 用户ID：请填写在"用户名 \> 我的凭证 \> API凭证"中的"IAM用户ID"。 授权完成后，该IAM用户能使用授权中指定的密钥   - 账号 账号ID：请填写在"用户名 \> 我的凭证 \> API凭证"中的"账号ID"。 授权完成后，该账号下所有的IAM用户均能使用授权中指定的密钥。   - principal_urn授权 - IAM子用户URN：在授权用户"统一身份认证"控制台的"用户"列表中，单击用户名进入基本信息页面，URN即principal_urn。  - 账号ID：请填写在"用户名 \> 我的凭证 \> API凭证"中的"账号ID"  - IAM委托：在授权用户"统一身份认证"控制台的"委托"列表中，单击委托名进入基本信息页面，URN即principal_urn。  - IAM联邦用户和iam委托会话为临时身份凭证，用户获取后填入即可。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | d9a6b2bdaedd4ba586cabe6372d1b312 |
   | 授权名称  | 用户可选择为授权命名。 说明： - 输入字符支持数字、字母、"_"、"-"、":"和"/"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | test                             |
   | 授权操作  | 用户可选择以下授权操作： 说明： - 一个自定义密钥可以多次授权给同一个用户不同的权限，用户最终的权限为所有授权的并集。  - 授权操作选项不能为空。  - 不能仅授予"创建授权"操作。   - 创建不含明文数据密钥  - 创建数据密钥  - 加密数据密钥  - 解密数据密钥  - 查询密钥信息  - 创建授权  - 退役授权 - 当被授权用户不再使用授权用户授予的自定义密钥的操作权限时，被授权用户可退役该授权。  - 如果被授权用户在退役授权前，已将自定义密钥的操作权限授予给其他用户，那么被授权用户退役授权后，对其他用户操作自定义密钥的权限无影响。    - 加密数据  - 解密数据  - 生成HMAC  - 校验HMAC   用户可以选择多种授权操作。以下为各类型密钥通用授权操作： - 查询密钥信息  - 创建授权  - 退役授权   各类型密钥算法及用途，具有对应专属授权操作，具体请参见[表 授权操作]。 | -                                |
      
    表2授权操作 
   | 密钥算法                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 密钥类型  | 密钥用途                | 授权操作                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   |:---|:---|:---|:---|
   | - AES_256  - SM4                                                                                                                                                                                                                                                                                                                                                                                              | 对称密钥  | ENCRYPT_DECRYPT     | - 创建不含明文数据密钥  - 创建数据密钥  - 加密数据密钥  - 解密数据密钥  - 加密数据  - 解密数据  - 创建数据密钥对  - 查询密钥信息  - 创建授权  - 退役授权   |
   | - RSA_2048  - RSA_3072  - RSA_4096  - EC_P256  - EC_P384  - ED25519  - SM2   | 非对称密钥 | SIGN_VERIFY         | - 查询密钥信息  - 查询公钥信息    - 创建授权  - 退役授权  - 签名  - 验签                                                                                                                                                                                                                                                                           |
   | - EC_P256  - EC_P384  - SECP256K1  - SM2                                                                                                                                                                                                                               | 非对称密钥 | KEY_AGREEMENT       | - 查询密钥信息  - 查询公钥信息  - 创建授权  - 退役授权  - 派生共享密钥                                                                                                                                                                                                                                                                                                                                                                      |
   | - RSA_2048  - RSA_3072  - RSA_4096  - SM2                                                                                                                                                                                                                                        | 非对称密钥 | ENCRYPT_DECRYPT     | - 查询密钥信息  - 创建授权  - 退役授权  - 查询公钥信息  - 加密数据  - 解密数据                                                                                                                                                                                                                                                                                                           |
   | - HMAC_256  - HMAC_384  - HMAC_512  - HMAC_SM3                                                                                                                                                                                                                             | 摘要密钥  | GENERATE_VERIFY_MAC | - 生成HMAC  - 校验HMAC                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
      
   
   
7. 单击"确定"，页面右上角弹出"授权创建成功"，则说明授权成功。 
   授权列表中可查看到"授权名称"、"授权类型"、"被授权ID"、"授权操作"和"创建时间"。
   
   
 
 #### 查询授权
该任务指导用户通过KMS界面查看自定义密钥的授权信息，包括授权ID、被授权ID、授权操作、创建时间等。
1. 在"密钥管理"列表中，单击目标自定义密钥的别名，进入密钥详细信息页面。
2. 选择"授权"页签，用户可查看当前自定义密钥下创建的授权。自定义密钥的授权信息如[表3]所示。
   
    表3授权信息参数说明 
   | 参数    | 参数说明                         |
   |:---|:---|
   | 授权名称  | 创建授权时为授权进行命名。                |
   | 被授权ID | 被授权的ID。                      |
   | 授权类型  | 授权类型：用户和账号。                  |
   | 授权操作  | 被授予用户对自定义密钥的操作权限（例如：创建数据密钥）。 |
   | 创建时间  | 创建该授权的时间。                    |
      
   
   
3. 单击目标授权，页面右侧显示授权详情，如[图 授权详情]所示。
   
   图1授权详情   
   ![](https://support.huaweicloud.com/usermanual-dew/zh-cn_image_0000002260012652.png "点击放大")
   
   
 
#### 撤销授权
在以下两种情况下，授权用户可以通过密钥管理界面撤销授权：
- 当被授权用户不再使用授权用户的自定义密钥时，被授权用户可告知授权用户撤销授权，或者通过API接口直接退役授权。
- 当授权用户想收回自定义密钥的操作权限时，授权用户可强制撤销授权。
撤销授权后，被授权用户不再持有被授予的权限，而撤销授权前被授权用户已授予给其他用户的权限不受影响。
1. 在"密钥管理"列表中，单击目标自定义密钥的别名，进入密钥详细信息页面。
2. 选择"授权"页签，在目标授权ID所在行的"操作"列，单击"撤销授权"。
3. 如果未开启验证，在确认删除提示框中输入"DELETE"后，单击"确定"，完成撤销授权操作。 
   如果开启验证，选择验证方式后，单击"获取验证码"，在验证码对话框中输入获取的验证码，单击"确定"，完成撤销授权操作。
   
   
 
#### 编辑授权
为其他IAM用户或账号创建授权后，可对已授权操作进行编辑，更改授权对象的操作权限范围。
1. 在"密钥管理"列表中，单击目标自定义密钥的别名，进入密钥详细信息页面。
2. 选择"授权"页签，在目标授权ID所在行"操作"列，单击"编辑授权"，在弹出页面对授权操作进行勾选，如[图 编辑授权]所示。
   
   图2编辑授权   
   ![](https://support.huaweicloud.com/usermanual-dew/zh-cn_image_0000002294529125.png "点击放大")
   
   
3. 单击"确定"，完成编辑授权操作。
 
#### 相关操作
- 通过API创建授权，请参见[为自定义密钥创建授权](https://support.huaweicloud.com/api-dew/CreateGrant.html)。
- 通过IAM创建授权，请参见[通过IAM创建授权](https://support.huaweicloud.com/usermanual-dew/dew_01_0161.html)。
 
