开发者社区> 问答> 正文

如何使用 RAM 的准备工作

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();
  

展开
收起
猫饭先生 2017-10-30 11:44:35 1684 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载