全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 更多
存储与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();
本文导读目录