全部产品
Search
文档中心

数据传输服务 DTS:跨阿里云账号任务如何配置RAM授权

更新时间:Nov 29, 2023

本文介绍在使用数据传输服务DTS(Data Transmission Service)配置跨阿里云账号的任务时,如何为源或目标库实例所属的阿里云账号配置RAM授权。

背景信息

在使用DTS配置跨账号任务时,需要使用数据库实例所属的阿里云账号(主账号)配置RAM授权,将创建DTS任务的阿里云账号(主账号)作为授信云账号,允许其通过数据传输服务访问数据库实例所属阿里云账号的相关云资源。

支持的数据库

在配置DTS任务时,支持配置是否跨阿里云账号的数据库如下表所示。

说明

源库是否跨阿里云账号的配置结果,不影响目标库数据库类型的选项。

数据库实例

阿里云数据库

自建数据库

源库

RDS MySQLRDS MariaDBRDS PostgreSQLPolarDB-X 1.0PolarDB-X 2.0PolarDB PostgreSQL版PolarDB PostgreSQL版(兼容Oracle)PolarDB MySQL版云数据库Redis云原生内存数据库Tair云数据库MongoDB版

通过专线、VPN网关、智能网关或ECS接入的自建MySQL、Mariadb、PostgreSQL、PolarDB PostgreSQL版(兼容Oracle)、Redis、MongoDB、Oracle、SQL Server、Db2 for LUWDb2 for i数据库。

目标库

RDS MySQL云数据库ClickHouse

暂不支持。

前提条件

  • 源和目标库实例所属的阿里云账号已经授权DTS的RAM角色访问其云资源,详情请参见授予DTS访问云资源的权限

  • 已获取源库实例、目标库实例和创建DTS任务的阿里云账号(主账号)ID。您可以使用创建DTS任务的阿里云账号(主账号)登录账号管理页面,在基本信息页签的账号ID获取。

注意事项

  • RDS MySQL实例间支持跨账号的双向同步任务。

  • 暂不支持不同属性账号之间(如金融云和政务云账号之间)的同步任务。

操作步骤

  1. 为数据库实例创建RAM角色。

    说明
    • 若使用RAM用户(子账号)进行操作,则可能会在创建DTS任务时提示授权不正确。

    • 无需跨阿里云账号的数据库实例不需要创建RAM角色。

    1. 使用数据库实例所属的阿里云账号(主账号),登录RAM控制台

    2. 在左侧导航栏,选择身份管理 > 角色

      身份管理-角色-new-zh.jpg

      重要

      请勿选择为身份管理 > 用户,否则DTS将无法访问数据库实例并报错。

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

    4. 创建角色面板,选择可信实体类型为阿里云账号,然后单击下一步创建角色

    5. 在弹出的对话框中,配置RAM角色信息。信任账号

      配置选项

      配置说明

      角色名称

      填写RAM角色名称,本示例填写ram-for-dts

      说明

      可以填写大写英文、小写英文、数字或短横线(-),长度不超过64个字符。

      备注(可选)

      填写RAM角色备注信息。

      选择信任的云账号

      选择为其他云账号,并填写创建DTS任务的阿里云账号(主账号)ID作为授信云账号。

    6. 单击完成

  2. 为创建好的RAM角色精确授权。

    1. 单击精确授权创建角色

    2. 添加权限对话框中,勾选选择权限类型系统策略添加权限

    3. 输入策略名称下方的文本框中,输入AliyunDTSRolePolicy

    4. 单击确定

    5. 精确授权成功后,单击关闭

  3. 修改信任策略。

    1. 角色页面,找到刚刚创建的RAM角色,单击对应的RAM角色名称。角色

    2. 在RAM角色的基本信息页面,单击信任策略管理页签。信任策略管理

    3. 信任策略管理页签中,单击修改信任策略

    4. 将下述代码复制至策略框中。

      {
          "Statement": [
              {
                  "Action": "sts:AssumeRole",
                  "Effect": "Allow",
                  "Principal": {
                      "RAM": [
                          "acs:ram::阿里云账号ID:root"
                      ],
                      "Service": [
                          "阿里云账号ID@dts.aliyuncs.com"
                      ]
                  }
              }
          ],
          "Version": "1"
      }
    5. 将代码中两个阿里云账号ID替换为创建DTS任务的阿里云账号(主账号)ID。

    6. 单击确定

后续操作

完成RAM授权后,您可以创建跨阿里云账号的任务。具体操作,请参见同步方案概览迁移方案概览订阅方案概览中的相关配置文档。

重要

您需要使用信任策略中配置的阿里云账号ID,登录DTS控制台创建任务。

常见问题

以下为配置源库信息时,出现的常见告警信息及对应解决办法:

告警信息

解决办法

UID错误提示_zh

您填写的跨阿里云账号有误,请检查数据库实例所属阿里云账号(主账号)的UID是否填写正确。更多信息,请参见准备工作

角色名错误

可能原因如下:

  • 您填写的跨阿里云账号角色名有误:请检查数据库实例所属阿里云账号(主账号)的RAM角色名称是否填写正确。

  • RAM角色精确授权不正确:请使用数据库实例所属的阿里云账号(主账号)进行授权操作。

说明

更多信息,请参见准备工作

RAM

可能原因如下:

  • 您填写的跨阿里云账号角色名有误:请检查数据库实例所属阿里云账号(主账号)的角色名称是否填写正确。

  • RAM角色未完成精确授权:请检查RAM角色是否正确完成精确授权。

  • RAM角色未修改信任策略:请检查RAM角色是否正确修改信任策略。

说明

请参考准备工作进行检查。

没有权限

您填写的跨阿里云账号角色名没有精确授权,请为填写的RAM角色精确授权后重新创建任务。以源数据库为例,授权操作请参见为已有RAM角色精确授权

为已有RAM角色精确授权

  1. 使用源实例所属的阿里云账号(主账号),登录RAM控制台

  2. 在左侧导航栏,选择身份管理 > 角色

  3. 创建角色右侧输入目标RAM角色并搜索。

  4. 在目标行的操作列,单击精确授权

  5. 添加权限界面输入策略名称下方,输入AliyunDTSRolePolicy

    说明

    选择权限类型默认选择为系统策略

  6. 单击确认