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

使用 RAM 的准备工作

更新时间:2017-08-04 16:17:34

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 的格式:

  1. {
  2. "Statement": [
  3. {
  4. "Action": "sts:AssumeRole",
  5. "Effect": "Allow",
  6. "Principal": {
  7. "Service": [
  8. "drds.aliyuncs.com"
  9. ]
  10. }
  11. }
  12. ],
  13. "Version": "1"
  14. }

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

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

查看角色

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

参数名 参数值
Action GetRole
RoleName Jack

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

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