需要给RDS授予访问密钥管理服务KMS(Key Management Service)的权限,才能正常使用云盘加密功能,您可以在访问控制RAM控制台上进行授权。

前提条件

需要使用阿里云主账号。

创建权限策略AliyunRDSInstanceEncryptionRolePolicy

  1. 登录访问控制的权限策略管理页面。
  2. 单击创建权限策略
    说明 权限策略是用语法结构描述的一组权限的集合,可以精确地描述被授权的资源、操作以及授权条件。
  3. 单击脚本编辑页签,将如下脚本复制到代码编辑框中。
    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "kms:List*",
                    "kms:DescribeKey",
                    "kms:TagResource",
                    "kms:UntagResource"
                ],
                "Resource": [
                    "acs:kms:*:*:*"
                ],
                "Effect": "Allow"
            },
            {
                "Action": [
                    "kms:Encrypt",
                    "kms:Decrypt",
                    "kms:GenerateDataKey"
                ],
                "Resource": [
                    "acs:kms:*:*:*"
                ],
                "Effect": "Allow",
                "Condition": {
                    "StringEqualsIgnoreCase": {
                        "kms:tag/acs:rds:instance-encryption": "true"
                    }
                }
            }
        ]
    }
  4. 单击继续编辑基本信息,在文本框中填写如下信息:
    参数说明
    名称填写策略名称。请填写AliyunRDSInstanceEncryptionRolePolicy
    备注填写备注。例如:用于RDS访问KMS。
  5. 单击确定

创建RAM角色AliyunRDSInstanceEncryptionDefaultRole并授权

创建完策略之后,需要将策略授权给RAM角色,RDS就可以访问KMS资源。

  1. 登录访问控制的RAM角色管理页面。
  2. 单击创建角色
  3. 选择阿里云服务,单击下一步
  4. 设置如下参数,并单击完成
    参数说明
    角色类型选择普通服务角色
    角色名称填写AliyunRDSInstanceEncryptionDefaultRole
    备注添加备注信息。
    选择受信服务选择云数据库
  5. 角色创建成功的提示下单击为角色授权
    说明 如果关闭了角色创建成功页面,也可以在RAM角色管理页面搜索AliyunRDSInstanceEncryptionDefaultRole,然后单击添加权限
  6. 添加权限页面搜索之前创建的权限AliyunRDSInstanceEncryptionRolePolicy并单击该名称,使之移动到右侧已选择框内。
  7. 单击确定

查看角色ARN(可选)

ARN(Alibaba Cloud Resource Name)是RAM角色的全局资源描述符,即描述该RAM角色具有哪些资源的访问权限。调用API进行云盘加密时需要传入ARN,用于指定一个具有KMS访问权限的RAM角色,具体操作,请参见CreateDBInstance

  1. 登录访问控制的RAM角色管理页面。
  2. 找到目标角色,单击角色名称。
  3. 在右上角查看ARN。