数据传输迁移角色授权

本文为您介绍如何为主账号和 RAM 用户授予访问数据传输的权限。

背景信息

数据传输的账号登录体系与阿里云保持一致,统一采用 RAM 主账号或 RAM 用户登录的方式。详情请参见 访问控制 RAM 官方文档。

  • 阿里云账号(即主账号)是阿里云资源的归属及使用计量计费的基本主体,负责生成本企业组织下的 RAM 用户,并对 RAM 用户进行管理、授权等操作。

  • RAM 用户由主账号在 RAM 系统中创建并管理,本身不拥有资源,也没有独立的计量计费,这些账号由所属主账号统一控制和付费。

主账号进行数据传输迁移角色授权

数据传输需要具备云资源访问权限。当登录账号为主账号但未授权时,需要进入阿里云控制台进行数据传输迁移角色授权。

  1. 使用主账号登录 OceanBase 管理控制台

  2. 展开左侧导航栏 数据传输,进入任一导航页面。

  3. 根据授权提醒单击 前往 RAM 角色授权

  4. 确认页面内容无误后,单击 同意授权,完成授权操作。

  5. 返回并刷新数据传输页面。

RAM 用户进行数据传输迁移角色授权

数据传输需要具备云资源访问权限。当登录账号为 RAM 用户但未授权时,需要进入阿里云控制台进行数据传输迁移角色授权。

  1. RAM 用户登录 OceanBase 管理控制台

  2. 展开左侧导航栏 数据传输,进入任一导航页面。

  3. 根据授权提醒单击 前往 RAM 角色授权

    您也可以单击 切换主账号登录,使用数据传输服务。

  4. 确认页面内容无误后,单击 同意授权,完成授权操作。

  5. 返回并刷新数据传输页面。

如果 RAM 用户授权失败,您可以进行以下三种方式的操作:

  • 切换至主账号登录控制台。

  • 主账号授予当前 RAM 用户 RAM 授权权限。

    1. 主账号登录 RAM 控制台

    2. 在左侧导航栏,单击 身份管理 > 用户

    3. 用户 页面,单击目标 RAM 用户操作列的 添加权限

    4. 添加权限 对话框的 系统策略 页签,搜索并选中 AliyunRAMFullAccess,添加在右侧 已选择 列表中。

      当前 RAM 用户添加 RAM 授权权限后,再次进行数据传输迁移角色授权操作即可。

      RAM 授权

    5. 单击 确定

    6. 单击 完成

  • 切换至其它具备数据传输迁移角色授权权限的 RAM 用户登录控制台。

(可选)切换主账号登录控制台

如果您已使用 RAM 用户登录控制台,请通过下述操作切换主账号。您也可以跳过该操作,直接使用主账号登录控制台。

  1. RAM 用户登录 OceanBase 管理控制台

  2. 在页面右上角的个人中心单击 退出登录,退出当前 RAM 用户。

    RAM 用户

  3. 在登录页面,单击 主账号登录

    主账号登录

(可选)主账号授予 RAM 用户数据传输迁移角色授权权限

RAM 用户需要具备数据传输迁移角色 AliyunOceanbaseMigrationServiceRolePolicy,才可以正常访问数据传输。如果 RAM 用户未具备该角色,则需要主账号先登录 RAM 控制台,手动给数据传输迁移角色添加权限。

  1. 主账号登录 RAM 控制台

  2. 创建数据传输迁移角色。

    1. 在左侧导航栏,单击 身份管理 > 角色

    2. 角色 页面,单击 创建角色

    3. 创建角色 对话框,选择可信实体类型为 阿里云账号,单击 下一步

    4. 配置角色 页面,配置各项参数。

      参数

      描述

      角色名称

      输入 AliyunOceanbaseMigrationServiceRole。

      备注(可选)

      创建角色的备注信息。

      选择信任的云账号

      • 当前云账号:当您允许当前阿里云账号下的 RAM 用户扮演该 RAM 角色时,您可以选择 当前云账号

      • 其他云账号:当您允许其它阿里云账号下的 RAM 用户扮演该 RAM 角色时,您可以选择 其他云账号,然后输入其他阿里云账号 ID。该项主要针对跨阿里云账号的资源授权访问场景。

    5. 单击 完成

  3. 新建数据传输获取 RDS 信息的权限策略。

    1. 返回 角色 页面,单击新建角色后的 添加权限

    2. 添加权限 对话框,单击 选择权限 下的 新建权限策略

      权限策略

    3. 创建权限策略 页面,单击 脚本编辑,输入下述权限策略语句。

      {
          "Statement": [
              {
                  "Action": [
                      "rds:DescribeDBInstances",
                      "rds:DescribeDBInstanceNetInfo",
                      "rds:DescribeDBInstanceIPArrayList",
                      "rds:ModifySecurityIps"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "vpc:DescribeVpcs",
                      "vpc:DescribeVSwitches"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "polardb:DescribeDBClusterIPArrayList",
                      "polardb:DescribeDBClusterNetInfo",
                      "polardb:DescribeDBClusters",
                      "polardb:DescribeRegions",
                      "polardb:DescribeDBClusterEndpoints",
                      "polardb:DescribeDBClusterAccessWhitelist",
                      "polardb:ModifyDBClusterAccessWhitelist"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "dg:GetUserGatewayInstances",
                      "dg:GetUserGateways",
                      "dg:GetUserDatabases",
                      "dg:ListDatabaseAccessPoint",
                      "dg:DescribeRegions",
                      "dg:FindUserGatewayById"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "adb:DescribeDBClusters",
                      "adb:DescribeDBClusterAttribute",
                      "adb:DescribeAutoRenewAttribute",
                      "adb:DescribeAvailableResource",
                      "adb:DescribeDBResourcePool",
                      "adb:DescribeElasticDailyPlan",
                      "adb:DescribeElasticPlan",
                      "adb:DescribeTables",
                      "adb:DescribeAllDataSource",
                      "adb:DescribeSchemas",
                      "adb:DescribeColumns",
                      "adb:DescribeTablePartitionDiagnose",
                      "adb:DescribeRegions",
                      "adb:DescribeDBClusterNetInfo",
                      "adb:DescribeDBClusterAccessWhiteList",
                      "adb:ModifyDBClusterAccessWhiteList"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "dms:ListUsers",
                      "dms:ListUserTenants",
                      "dms:ListColumns",
                      "dms:ListIndexes",
                      "dms:ListDatabases",
                      "dms:ListLogicDatabases",
                      "dms:ListTables",
                      "dms:ListLogicTables",
                      "dms:ListInstances",
                      "dms:GetUserActiveTenant",
                      "dms:GetTableDBTopology",
                      "dms:SearchDatabase",
                      "dms:SearchTable"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "cms:DescribeContactList",
                      "cms:DescribeMonitorGroups",
                      "cms:DescribeMonitorGroupInstances",
                      "cms:DescribeCustomMetricList",
                      "cms:DescribeSystemEventMetaList",
                      "cms:DescribeSystemEventCount",
                      "cms:DescribeSystemEventAttribute",
                      "cms:DescribeSystemEventHistogram",
                      "cms:DescribeCustomEventCount",
                      "cms:DescribeCustomEventAttribute",
                      "cms:DescribeCustomEventHistogram",
                      "cms:CreateMonitorGroup",
                      "cms:PutCustomEvent",
                      "cms:PutCustomMetric",
                      "cms:PutContactGroup",
                      "cms:PutCustomMetricRule"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "alikafka:ListInstance",
                      "alikafka:UpdateInstance",
                      "alikafka:ReadOnly"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Effect": "Allow",
                  "Action": [
                      "ecs:DescribeVSwitches",
                      "ecs:DescribeSecurityGroups",
                      "ecs:CreateSecurityGroup",
                      "ecs:DeleteSecurityGroup",
                      "ecs:CreateNetworkInterface",
                      "ecs:DescribeNetworkInterfaces",
                      "ecs:CreateNetworkInterfacePermission",
                      "ecs:DescribeNetworkInterfacePermissions",
                      "ecs:DeleteNetworkInterface"
                  ],
                  "Resource": "*"
              }
          ],
          "Version": "1"
      }
    4. 单击 下一步:编辑基本信息

    5. 输入权限策略的 名称 后,单击 确定

  4. 为 RAM 角色添加权限。

    1. 返回 角色 页面,单击新建角色后的 添加权限

    2. 添加权限 对话框,单击 选择权限 下的 自定义策略

    3. 搜索并选中新建的权限策略,即可添加在右侧 已选择 列表中。

    4. 单击 确定