PolarDB-X的部分操作会调用RDS的OpenAPI,因此在使用RAM之前,需要先激活PolarDB-X访问RDS服务的授权,创建一个供PolarDB-X访问RDS的RAM服务角色。本文将介绍如何通过控制台和OpenAPI激活授权。
在控制台上激活RAM授权
- 登录云原生分布式数据库控制台。
- 在左侧导航栏,单击资源授权。
- 在云资源授权管理页面,单击激活授权。
- 在弹出的对话框中单击同意授权。
警告 激活授权的同时, RAM控制台上会默认创建一个名称为AliyunDRDSDefaultRole的RAM角色供PolarDB-X访问该账户下RDS资源,同时授权PolarDB-X访问RDS的OpenAPI,请勿随意删除该RAM角色。
通过RAM的OpenAPI激活RAM授权
若暂时无法访问控制台,您也可以通过调用相关OpenAPI创建RAM服务角色,角色创建完成即意味着PolarDB-X访问RDS资源的授权也被激活。
- 创建角色(假设要创建的RAM角色名是Jack)。
- 调用CreateRole接口并输入以下参数创建RAM角色:
参数名 | 说明 |
Action | CreateRole |
RoleName | Jack |
AssumeRolePolicyDocument | 信任策略,格式如下所示。 |
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "drds.aliyuncs.com" ] } } ], "Version": "1" }
- 通过Java SDK创建RAM角色,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.setAssumeRolePolicyDocument(rolePolicyDoc); client.getAcsResponse(request); // 为角色授予策略 AttachPolicyToRoleRequest attachRequest = new AttachPolicyToRoleRequest(); attachRequest.setPolicyType("System"); attachRequest.setPolicyName("AliyunDRDSRolePolicy"); attachRequest.setRoleName("AliyunDRDSDefaultRole"); client.getAcsResponse(attachRequest);
- 查验角色是否创建成功(假设创建的RAM角色为Jack)。
- 通过GetRole接口并输入以下参数查看角色详情:
参数名 | 说明 |
Action | CreateRole |
RoleName | Jack |
- 通过Java SDK查看RAM角色详情,Demo如下:
String roleName = "AliyunDRDSDefaultRole"; GetRoleRequest request = new GetRoleRequest(); request.setRoleName(roleName); GetRoleResponse resp = client.getAcsResponse(request); GetRoleResponse.Role role = resp.getRole();