DRDS Open API 的一部分操作(例如创建数据库)依赖 RDS 的 Open API 接口。所以,为确保 DRDS 控制台有权限操作用户的 RDS 资源,DRDS Open API 的使用者要通过 RAM 服务给 DRDS 控制台授权 RDS 资源的访问权限。不然,调用 DRDS Open API 会出现权限不足而报错。
授权的方法
方法一: 通过 DRDS 控制台进行授权(推荐)
本方式适用于可以正常登录 DRDS 控制台的用户。
操作步骤:
登录 DRDS 控制台, 依次单击资源授权>激授授权。
drds_open_api_3
在与资源访问授权对话框,单击同意授权。
drds_open_api_4
方法二: 通过调用 RAM 服务的 Open API 进行授权
适用于因特殊原因(如混合云场景)无法登录 DRDS 控制台的用户。
操作步骤:
调用 RAM 服务的 Open API,为 DRDS 实例所属的主账户创建 RAM 服务角色 AliyunDRDSDefaultRole;
在 DRDS 控制台,以 AliyunDRDSDefaultRole 角色调用 RDS Open API来管理 RDS 资源。
代码示例:
使用 RAM 的 Open API Java SDK 创建服务角色, Java 代码如下所示:
public static void createDrdsRole() throws ServerException, ClientException {
String rolePolicyDoc = "{\"Statement\":[{\"Action\": \"sts:AssumeRole\", \"Effect\": \"Allow\",\"Principal\":{\"Service\":[\"drds.aliyuncs.com\"]}}],\"Version\": \"1\"}";
String roleName = "AliyunDRDSDefaultRole";
CreateRoleRequest request = new CreateRoleRequest();
request.setAssumeRolePolicyDocument(rolePolicyDoc);
request.setRoleName(roleName);
client.getAcsResponse(request);
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您已经详细描述了为DRDS控制台授权以访问RDS资源的两种方法,这里我再简要概括一下并补充一些可能需要的信息。
操作步骤:
AliyunDRDSDefaultRole
的角色,并设置其信任策略允许drds.aliyuncs.com
服务假设该角色。您已提供了一个Java代码示例来实现这一步骤。public static void createDrdsRole() throws ServerException, ClientException {
String rolePolicyDoc = "{\"Statement\":[{\"Action\": \"sts:AssumeRole\", \"Effect\": \"Allow\",\"Principal\":{\"Service\":[\"drds.aliyuncs.com\"]}}],\"Version\": \"1\"}";
String roleName = "AliyunDRDSDefaultRole";
CreateRoleRequest request = new CreateRoleRequest();
request.setAssumeRolePolicyDocument(rolePolicyDoc);
request.setRoleName(roleName);
client.getAcsResponse(request);
}
注意事项:
AliyunDRDSDefaultRole
角色的凭证,这样才能正确授权DRDS访问RDS资源。通过上述任一方法,您可以成功解决DRDS在操作RDS资源时遇到的权限不足问题,确保DRDS服务能够顺利进行数据库相关的管理操作。