全部產品
Search
文件中心

PolarDB:啟用PolarDB-X 1.0訪問RDS服務授權

更新時間:Jul 06, 2024

PolarDB-X 1.0的部分操作會調用RDS的OpenAPI,因此在使用RAM之前,需要先啟用PolarDB-X 1.0訪問RDS服務的授權,建立一個供PolarDB-X 1.0訪問RDS的RAM服務角色。本文將介紹如何通過控制台和OpenAPI啟用授權。

在控制台上啟用RAM授權

  1. 登入PolarDB-X 1.0控制台

  2. 在左側導覽列,單擊資源授權
  3. 雲資源授權管理頁面,單擊啟用授權
    1C
  4. 在彈出的對話方塊中單擊同意授權
    2c
    警告 啟用授權的同時, RAM控制台上會預設建立一個名稱為AliyunDRDSDefaultRole的RAM角色供PolarDB-X 1.0訪問該賬戶下RDS資源,同時授權PolarDB-X 1.0訪問RDS的OpenAPI,請勿隨意刪除該RAM角色,刪除後將不能訪問RDS的資源和OpenAPI。

通過RAM的OpenAPI啟用RAM授權

若暫時無法存取控制台,您也可以通過調用相關OpenAPI建立RAM服務角色,角色建立完成即意味著PolarDB-X 1.0訪問RDS資源的授權也被啟用。

  • 建立角色(假設要建立的RAM角色名稱是Jack)。
    • 調用CreateRole介面並輸入以下參數建立RAM角色:
      參數名說明
      ActionCreateRole
      RoleNameJack
      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);
      client.getAcsResponse(request);
      // 為角色授予策略
      AttachPolicyToRoleRequest attachRequest = new AttachPolicyToRoleRequest();
      attachRequest.setPolicyType("System");
      attachRequest.setPolicyName("AliyunDRDSRolePolicy");
      attachRequest.setRoleName("AliyunDRDSDefaultRole");
      client.getAcsResponse(attachRequest);
  • 查驗角色是否建立成功(假設建立的RAM角色為Jack)。
    • 通過GetRole介面並輸入以下參數查看角色詳情:
      參數名說明
      ActionCreateRole
      RoleNameJack
    • 通過Java SDK查看RAM角色詳情,Demo如下:
      String roleName = "AliyunDRDSDefaultRole";
      GetRoleRequest request = new GetRoleRequest();
      request.setRoleName(roleName);
      GetRoleResponse resp = client.getAcsResponse(request);
      GetRoleResponse.Role role = resp.getRole();