全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
分布式关系型数据库 DRDS

使用 RAM 的准备工作

更新时间:2017-12-11 21:28:10

DRDS 的部分操作会调用 RDS 的 Open API,因此在使用 RAM 之前,需要先激活 DRDS 访问 RDS 服务的授权,创建一个供 DRDS 访问 RDS 的服务角色。

您可以通过控制台操作或者调用 RAM Open API 的方式来完成授权激活。

在控制台上激活 RAM 授权

在 DRDS 控制台左侧菜单选择资源授权,单击页面上的激活授权按钮。

RAM 授权

激活授权的同时, DRDS 会在 RAM 控制台上创建一个供 DRDS 使用的 RAM 角色(role),用于访问该账户下的 RDS,同时授权 DRDS 访问 RDS 的 Open API。请不要删除这个 RAM 角色。

通过 RAM 的 Open API 激活 RAM 授权

如果在某些特定环境下无法访问 DRDS 控制台,也可以通过调用 RAM Open API 创建 RAM 服务角色。角色创建完成则 DRDS 访问 RDS 的授权也被激活。

创建 RAM 角色

CreateRole 接口可以创建 RAM 角色,具体用法请参考 RAM 文档。假设要创建的 RAM 角色名是 Jack,该接口的参数如下:

参数名 参数值
Action CreateRole
RoleName Jack
AssumeRolePolicyDocument 格式见下文

AssumeRolePolicyDocument 的格式:

{
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "drds.aliyuncs.com"
        ]
      }
    }
  ],
  "Version": "1"
}

如果使用 RAM Java SDK,Demo 如下:

String rolePolicyDoc = "{\"Statement\":[{\"Action\": \"sts:AssumeRole\", \"Effect\": \"Allow\",\"Principal\":{\"Service\":[\"drds.aliyuncs.com\"]}}],\"Version\": \"1\"}";
String roleName = "Jack";
CreateRoleRequest request = new CreateRoleRequest();
request.setAssumeRolePolicyDocument(rolePolicyDoc);
request.setRoleName(roleName);
client.getAcsResponse(request);
// 给角色授予策略
AttachPolicyToRoleRequest attachRequest = new AttachPolicyToRoleRequest();
attachRequest.setPolicyType("System");
attachRequest.setPolicyName("AliyunDRDSRolePolicy");
attachRequest.setRoleName("AliyunDRDSDefaultRole");
client.getAcsResponse(attachRequest);

查看角色

如果想验证上一步创建的角色是否成功,可以调用GetRole 接口查看角色,使用方式可以参见 RAM 接口文档。假设要获取刚刚创建的 RAM 角色 Jack,参数是:

参数名 参数值
Action GetRole
RoleName Jack

如果使用 RAM Java SDK,Demo 如下:

String roleName = "AliyunDRDSDefaultRole";
GetRoleRequest request = new GetRoleRequest();
request.setRoleName(roleName);
GetRoleResponse resp = client.getAcsResponse(request);
GetRoleResponse.Role role = resp.getRole();
本文导读目录