PolarDB-X 1.0 OpenAPI的一部分操作(例如创建数据库)依赖RDS的OpenAPI接口。所以,为确保PolarDB-X 1.0控制台有权限操作用户的RDS资源,PolarDB-X 1.0 OpenAPI的使用者要通过RAM服务给PolarDB-X 1.0控制台授权RDS资源的访问权限。否则调用PolarDB-X OpenAPI会出现权限不足而报错。
通过控制台进行授权(推荐)
本方式适用于可以正常登录PolarDB-X 1.0控制台的用户。步骤如下:
- 登录PolarDB-X 1.0控制台, 依次单击资源授权>激授授权。
- 在与资源访问授权对话框,单击同意授权。
通过调用RAM服务的OpenAPI进行授权
适用于因特殊原因(如混合云场景)无法登录PolarDB-X 1.0控制台的用户。步骤如下:
- 调用RAM服务的OpenAPI,为PolarDB-X 1.0实例所属的主账户创建RAM服务角色AliyunDRDSDefaultRole;
- 在PolarDB-X 1.0控制台,以AliyunDRDSDefaultRole角色调用RDS OpenAPI来管理RDS资源。
使用RAM的OpenAPI 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);
}