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();
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。