跨阿里云账号任务如何配置RAM授权

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

背景信息

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

什么是跨账号任务

跨账号任务又称为跨阿里云账号任务,指的是源库或目标库实例属于其他阿里云账号(而不属于创建DTS任务的阿里云账号)的DTS任务。

支持的数据库

数据库实例是否支持跨账号,仅与数据实例的数据库类型接入方式有关。支持跨账号的数据库实例,如下表所示。

说明

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

源库

数据库类型

接入方式

MySQL

云实例专线/VPN网关/智能网关ECS自建数据库

PolarDB for MySQL

云实例

Tair/Redis

云实例专线/VPN网关/智能网关ECS自建数据库云企业网CEN数据库网关DG

SQLServer

云实例专线/VPN网关/智能网关

PostgreSQL

云实例专线/VPN网关/智能网关

MongoDB

云实例专线/VPN网关/智能网关ECS自建数据库云企业网CEN

Oracle

专线/VPN网关/智能网关

PolarDB(兼容Oracle)

云实例专线/VPN网关/智能网关

PolarDB for PostgreSQL

云实例

PolarDB-X 1.0

云实例

PolarDB-X 2.0

云实例

DB2 iSeries(AS/400)

专线/VPN网关/智能网关

DB2 LUW

专线/VPN网关/智能网关ECS自建数据库

Mariadb

云实例专线/VPN网关/智能网关ECS自建数据库

OceanBase(MySQL)

云实例专线/VPN网关/智能网关ECS自建数据库

SLS

云实例

AnalyticDB MySQL 3.0

云实例

目标库

数据库类型

接入方式

MySQL

云实例

PolarDB for MySQL

云实例

AnalyticDB MySQL 3.0

云实例

Tair/Redis

云实例

ClickHouse

云实例

SelectDB

云实例

MongoDB

云实例

账号信息

在跨账号任务中,各阿里云账号(源库、目标库、DTS任务所属的阿里云账号)的用途与跨阿里云账号的数据库相关,存在以下三种情况。

说明

跨阿里云账号的数据库:配置DTS任务时,是否跨阿里云账号选择为跨账号的数据库。

表格使用示例:首先需要确认跨账号的是源库还是目标库,然后通过跨阿里云账号的数据库列寻找目标行,查看各阶段使用到的阿里云账号。

跨阿里云账号的数据库

登录RAM控制台的阿里云账号

信任策略中填入的阿里云账号

创建DTS任务的阿里云账号

DTS任务填入的跨阿里云账号

源库

源库所属的阿里云账号

目标库所属的阿里云账号

目标库所属的阿里云账号

源库信息跨阿里云账号填入源库所属的阿里云账号

目标库

目标库所属的阿里云账号

源库所属的阿里云账号

源库所属的阿里云账号

目标库信息跨阿里云账号填入目标库所属的阿里云账号

源库和目标库

源库和目标库所属的阿里云账号

指定的阿里云账号

指定的阿里云账号

  • 源库信息跨阿里云账号填入源库所属的阿里云账号

  • 目标库信息跨阿里云账号填入目标库所属的阿里云账号

配置流程

  1. 获取阿里云账号(主账号)ID。

    获取数据库实例和创建DTS任务的阿里云账号(主账号)ID。

  2. 创建RAM角色。

    使用数据库实例所属的阿里云账号(主账号),创建配置任务所需的RAM角色。

  3. 精确授权。

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

  4. 修改信任策略。

    修改RAM角色的信任策略。

前提条件

源库和目标库实例所属的阿里云账号已经授权DTSRAM角色访问其云资源。更多信息,请参见授予DTS访问云资源的权限

注意事项

  • 当前仅RDS MySQL实例间、PolarDB MySQL集群间、Tair(企业版)实例间、云数据库MongoDB(副本集架构)间、云数据库MongoDB(分片集群架构)间,支持跨账号的双向同步任务。

  • 跨账号的双向同步任务,同时属于源库跨账号和目标库跨账号的场景。因此,源库和目标库所属的阿里云账号(主账号)均需配置RAM授权。

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

  • 登录控制台时,使用的阿里云账号均为阿里云账号(主账号)。若使用RAM用户(子账号),则可能会在创建DTS任务时提示授权不正确。

准备工作

获取源库所属阿里云账号(主账号)ID

使用源库所属的阿里云账号(主账号),访问基本信息页面,在页面右侧获取账号ID

获取目标库所属阿里云账号(主账号)ID

使用目标库所属的阿里云账号(主账号),访问基本信息页面,在页面右侧获取账号ID

获取创建DTS任务的阿里云账号(主账号)ID

使用创建DTS任务的阿里云账号(主账号),访问基本信息页面,在页面右侧获取账号ID

场景一:源库跨账号

步骤一:创建RAM角色

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

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

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

    重要

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

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

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

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

    信任账号

    配置选项

    配置说明

    角色名称

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

    说明

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

    备注(可选)

    填写RAM角色备注信息。

    选择信任的云账号

    选择其他云账号,并填入目标库所属阿里云账号(主账号)的ID。

  6. 单击完成

步骤二:为RAM角色精确授权

通过RAM角色创建成功页面

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

  2. 权限管理页签,单击精确授权

    image

  3. 精确授权面板中,将选择权限类型选择为系统策略

    image

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

  5. 单击确定

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

通过RAM角色列表

  1. 进入RAM角色的详情页面。

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

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

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

      重要

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

    3. 角色页面,查找并单击目标RAM角色。

      image

  2. 权限管理页签,单击精确授权

    image

  3. 精确授权面板中,将选择权限类型选择为系统策略

    image

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

  5. 单击确定

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

步骤三:修改RAM角色的信任策略

通过精确授权成功页面

  1. 单击信任策略页签。

    image

  2. 信任策略页签中,单击编辑信任策略

  3. 使用下述代码替换策略框中的代码。

    {
        "Statement": [
            {
                "Action": "sts:AssumeRole",
                "Effect": "Allow",
                "Principal": {
                    "RAM": [
                        "acs:ram::<阿里云账号ID>:root"
                    ],
                    "Service": [
                        "<阿里云账号ID>@dts.aliyuncs.com"
                    ]
                }
            }
        ],
        "Version": "1"
    }
  4. 将代码中两个<阿里云账号ID>替换为目标库所属阿里云账号(主账号)的ID。

  5. 单击保存信任策略

通过RAM角色列表

  1. 进入RAM角色的详情页面。

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

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

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

      重要

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

    3. 角色页面,查找并单击目标RAM角色。

      image

  2. 单击信任策略页签。

    image

  3. 信任策略页签中,单击编辑信任策略

  4. 使用下述代码替换策略框中的代码。

    {
        "Statement": [
            {
                "Action": "sts:AssumeRole",
                "Effect": "Allow",
                "Principal": {
                    "RAM": [
                        "acs:ram::<阿里云账号ID>:root"
                    ],
                    "Service": [
                        "<阿里云账号ID>@dts.aliyuncs.com"
                    ]
                }
            }
        ],
        "Version": "1"
    }
  5. 将代码中两个<阿里云账号ID>替换为目标库所属阿里云账号(主账号)的ID。

  6. 单击保存信任策略

场景二:目标库跨账号

步骤一:创建RAM角色

  1. 使用目标库所属的阿里云账号(主账号),登录RAM控制台

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

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

    重要

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

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

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

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

    信任账号

    配置选项

    配置说明

    角色名称

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

    说明

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

    备注(可选)

    填写RAM角色备注信息。

    选择信任的云账号

    选择其他云账号,并填入源库所属阿里云账号(主账号)的ID。

    说明

    获取方式,请参见获取源库所属阿里云账号(主账号)ID

  6. 单击完成

步骤二:为RAM角色精确授权

通过RAM角色创建成功页面

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

  2. 权限管理页签,单击精确授权

    image

  3. 精确授权面板中,将选择权限类型选择为系统策略

    image

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

  5. 单击确定

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

通过RAM角色列表

  1. 进入RAM角色的详情页面。

    1. 使用目标库所属的阿里云账号(主账号),登录RAM控制台

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

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

      重要

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

    3. 角色页面,查找并单击目标RAM角色。

      image

  2. 权限管理页签,单击精确授权

    image

  3. 精确授权面板中,将选择权限类型选择为系统策略

    image

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

  5. 单击确定

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

步骤三:修改RAM角色的信任策略

通过精确授权成功页面

  1. 单击信任策略页签。

    image

  2. 信任策略页签中,单击编辑信任策略

  3. 使用下述代码替换策略框中的代码。

    {
        "Statement": [
            {
                "Action": "sts:AssumeRole",
                "Effect": "Allow",
                "Principal": {
                    "RAM": [
                        "acs:ram::<阿里云账号ID>:root"
                    ],
                    "Service": [
                        "<阿里云账号ID>@dts.aliyuncs.com"
                    ]
                }
            }
        ],
        "Version": "1"
    }
  4. 将代码中两个<阿里云账号ID>替换为源库所属阿里云账号(主账号)的ID。

    说明

    获取方式,请参见获取源库所属阿里云账号(主账号)ID

  5. 单击保存信任策略

通过RAM角色列表

  1. 进入RAM角色的详情页面。

    1. 使用目标库所属的阿里云账号(主账号),登录RAM控制台

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

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

      重要

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

    3. 角色页面,查找并单击目标RAM角色。

      image

  2. 单击信任策略页签。

    image

  3. 信任策略页签中,单击编辑信任策略

  4. 使用下述代码替换策略框中的代码。

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

    说明

    获取方式,请参见获取源库所属阿里云账号(主账号)ID

  6. 单击保存信任策略

场景三:源库和目标库均跨账号

步骤一:使用源库所属的阿里云账号(主账号)配置RAM授权

  1. 创建RAM角色。

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

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

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

      重要

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

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

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

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

      信任账号

      配置选项

      配置说明

      角色名称

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

      说明

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

      备注(可选)

      填写RAM角色备注信息。

      选择信任的云账号

      选择其他云账号,并填入指定的创建DTS任务的阿里云账号(主账号)ID。

    6. 单击完成

  2. RAM角色精确授权。

    通过RAM角色创建成功页面

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

    2. 权限管理页签,单击精确授权

      image

    3. 精确授权面板中,将选择权限类型选择为系统策略

      image

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

    5. 单击确定

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

    通过RAM角色列表

    1. 进入RAM角色的详情页面。

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

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

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

        重要

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

      3. 角色页面,查找并单击目标RAM角色。

        image

    2. 权限管理页签,单击精确授权

      image

    3. 精确授权面板中,将选择权限类型选择为系统策略

      image

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

    5. 单击确定

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

  3. 修改RAM角色的信任策略。

    通过精确授权成功页面

    1. 单击信任策略页签。

      image

    2. 信任策略页签中,单击编辑信任策略

    3. 使用下述代码替换策略框中的代码。

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

    5. 单击保存信任策略

    通过RAM角色列表

    1. 进入RAM角色的详情页面。

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

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

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

        重要

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

      3. 角色页面,查找并单击目标RAM角色。

        image

    2. 单击信任策略页签。

      image

    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授权

  1. 创建RAM角色。

    1. 使用目标库所属的阿里云账号(主账号),登录RAM控制台

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

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

      重要

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

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

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

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

      信任账号

      配置选项

      配置说明

      角色名称

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

      说明

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

      备注(可选)

      填写RAM角色备注信息。

      选择信任的云账号

      选择其他云账号,并填入指定的创建DTS任务的阿里云账号(主账号)ID。

    6. 单击完成

  2. RAM角色精确授权。

    通过RAM角色创建成功页面

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

    2. 权限管理页签,单击精确授权

      image

    3. 精确授权面板中,将选择权限类型选择为系统策略

      image

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

    5. 单击确定

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

    通过RAM角色列表

    1. 进入RAM角色的详情页面。

      1. 使用目标库所属的阿里云账号(主账号),登录RAM控制台

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

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

        重要

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

      3. 角色页面,查找并单击目标RAM角色。

        image

    2. 权限管理页签,单击精确授权

      image

    3. 精确授权面板中,将选择权限类型选择为系统策略

      image

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

    5. 单击确定

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

  3. 修改RAM角色的信任策略。

    通过精确授权成功页面

    1. 单击信任策略页签。

      image

    2. 信任策略页签中,单击编辑信任策略

    3. 使用下述代码替换策略框中的代码。

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

    5. 单击保存信任策略

    通过RAM角色列表

    1. 进入RAM角色的详情页面。

      1. 使用目标库所属的阿里云账号(主账号),登录RAM控制台

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

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

        重要

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

      3. 角色页面,查找并单击目标RAM角色。

        image

    2. 单击信任策略页签。

      image

    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授权后,您可以创建跨阿里云账号的任务。具体操作,请参见配置跨阿里云账号的任务