开发者社区 问答 正文

如何使用 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 1730 分享 版权
阿里云 AI 助理回答

您已经详细描述了如何在阿里云上通过控制台操作和RAM Open API两种方式来激活DRDS访问RDS服务的授权,并创建一个供DRDS访问RDS的服务角色。这里我再简要概括一下步骤,以便您快速理解和执行:

1. 通过控制台激活RAM授权

  • 登录阿里云DRDS控制台。
  • 在左侧菜单中选择“资源授权”。
  • 点击“激活授权”按钮完成授权激活。系统会自动创建一个RAM角色用于DRDS访问RDS。

2. 通过RAM Open API激活授权

创建RAM角色

  • 使用CreateRole接口创建角色,确保AssumeRolePolicyDocument允许drds.aliyuncs.com服务假设该角色。
  • 示例代码(Java SDK):
String rolePolicyDoc = "{\"Statement\":[{\"Action\": \"sts:AssumeRole\", \"Effect\": \"Allow\",\"Principal\":{\"Service\":[\"drds.aliyuncs.com\"]}}],\"Version\": \"1\"}";
String roleName = "YourDesiredRoleName";
CreateRoleRequest request = new CreateRoleRequest();
request.setAssumeRolePolicyDocument(rolePolicyDoc);
request.setRoleName(roleName);
client.getAcsResponse(request);

给角色授予策略

  • 授予角色访问DRDS所需的权限,使用AttachPolicyToRole接口。
  • 示例代码(Java SDK):
AttachPolicyToRoleRequest attachRequest = new AttachPolicyToRoleRequest();
attachRequest.setPolicyType("System");
attachRequest.setPolicyName("AliyunDRDSRolePolicy");
attachRequest.setRoleName("YourCreatedRoleName"); // 替换为之前创建的角色名
client.getAcsResponse(attachRequest);

查看角色

  • 可以使用GetRole接口验证角色是否创建成功及其详情。
  • 示例代码(Java SDK):
String roleName = "YourCreatedRoleName"; // 替换为之前创建的角色名
GetRoleRequest getRoleRequest = new GetRoleRequest();
getRoleRequest.setRoleName(roleName);
GetRoleResponse resp = client.getAcsResponse(getRoleRequest);
GetRoleResponse.Role role = resp.getRole();

请根据您的具体需求和环境选择合适的方法进行操作。记得替换示例中的占位符(如YourDesiredRoleNameYourCreatedRoleName)为实际的值。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答