本文介绍在使用数据传输服务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任务填入的跨阿里云账号 |
源库 | 源库所属的阿里云账号 | 目标库所属的阿里云账号 | 目标库所属的阿里云账号 | 源库信息:跨阿里云账号填入源库所属的阿里云账号 |
目标库 | 目标库所属的阿里云账号 | 源库所属的阿里云账号 | 源库所属的阿里云账号 | 目标库信息:跨阿里云账号填入目标库所属的阿里云账号 |
源库和目标库 | 源库和目标库所属的阿里云账号 | 指定的阿里云账号 | 指定的阿里云账号 |
|
配置流程
获取阿里云账号(主账号)ID。
获取数据库实例和创建DTS任务的阿里云账号(主账号)ID。
创建RAM角色。
使用数据库实例所属的阿里云账号(主账号),创建配置任务所需的RAM角色。
精确授权。
为创建好的RAM角色精确授权。
修改信任策略。
修改RAM角色的信任策略。
前提条件
源库和目标库实例所属的阿里云账号已经授权DTS的RAM角色访问其云资源。更多信息,请参见授予DTS访问云资源的权限。
注意事项
当前仅RDS MySQL实例间、PolarDB MySQL版集群间、Tair(企业版)实例间、云数据库MongoDB版(副本集架构)间、云数据库MongoDB版(分片集群架构)间,支持跨账号的双向同步任务。
跨账号的双向同步任务,同时属于源库跨账号和目标库跨账号的场景。因此,源库和目标库所属的阿里云账号(主账号)均需配置RAM授权。
暂不支持不同属性账号之间(如金融云和政务云账号之间)的同步任务。
登录控制台时,使用的阿里云账号均为阿里云账号(主账号)。若使用RAM用户(子账号),则可能会在创建DTS任务时提示授权不正确。
准备工作
获取源库所属阿里云账号(主账号)ID
使用源库所属的阿里云账号(主账号),访问基本信息页面,在页面右侧获取账号ID。
获取目标库所属阿里云账号(主账号)ID
使用目标库所属的阿里云账号(主账号),访问基本信息页面,在页面右侧获取账号ID。
获取创建DTS任务的阿里云账号(主账号)ID
使用创建DTS任务的阿里云账号(主账号),访问基本信息页面,在页面右侧获取账号ID。
场景一:源库跨账号
步骤一:创建RAM角色
使用源库所属的阿里云账号(主账号),登录RAM控制台。
在左侧导航栏,选择
。重要请勿选择为
,否则DTS将无法访问数据库实例并报错。在角色页面,单击创建角色。
在创建角色面板,选择可信实体类型为阿里云账号,然后单击下一步。
在弹出的对话框中,配置RAM角色信息。
配置选项
配置说明
角色名称
填写RAM角色名称,本示例填写ram-for-dts。
说明可以填写大写英文、小写英文、数字或短横线(-),长度不超过64个字符。
备注(可选)
填写RAM角色备注信息。
选择信任的云账号
选择其他云账号,并填入目标库所属阿里云账号(主账号)的ID。
说明获取方式,请参见获取目标库所属阿里云账号(主账号)ID。
单击完成。
步骤二:为RAM角色精确授权
通过RAM角色创建成功页面
单击精确授权。
在权限管理页签,单击精确授权。
在精确授权面板中,将选择权限类型选择为系统策略。
在输入策略名称下方的文本框中,输入AliyunDTSRolePolicy。
单击确定。
精确授权成功后,单击关闭。
通过RAM角色列表
进入RAM角色的详情页面。
使用源库所属的阿里云账号(主账号),登录RAM控制台。
在左侧导航栏,选择
。重要请勿选择为
,否则DTS将无法访问数据库实例并报错。在角色页面,查找并单击目标RAM角色。
在权限管理页签,单击精确授权。
在精确授权面板中,将选择权限类型选择为系统策略。
在输入策略名称下方的文本框中,输入AliyunDTSRolePolicy。
单击确定。
精确授权成功后,单击关闭。
步骤三:修改RAM角色的信任策略
通过精确授权成功页面
单击信任策略页签。
在信任策略页签中,单击编辑信任策略。
使用下述代码替换策略框中的代码。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<阿里云账号ID>:root" ], "Service": [ "<阿里云账号ID>@dts.aliyuncs.com" ] } } ], "Version": "1" }
将代码中两个
<阿里云账号ID>
替换为目标库所属阿里云账号(主账号)的ID。说明获取方式,请参见获取目标库所属阿里云账号(主账号)ID。
单击保存信任策略。
通过RAM角色列表
进入RAM角色的详情页面。
使用源库所属的阿里云账号(主账号),登录RAM控制台。
在左侧导航栏,选择
。重要请勿选择为
,否则DTS将无法访问数据库实例并报错。在角色页面,查找并单击目标RAM角色。
单击信任策略页签。
在信任策略页签中,单击编辑信任策略。
使用下述代码替换策略框中的代码。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<阿里云账号ID>:root" ], "Service": [ "<阿里云账号ID>@dts.aliyuncs.com" ] } } ], "Version": "1" }
将代码中两个
<阿里云账号ID>
替换为目标库所属阿里云账号(主账号)的ID。说明获取方式,请参见获取目标库所属阿里云账号(主账号)ID。
单击保存信任策略。
场景二:目标库跨账号
步骤一:创建RAM角色
使用目标库所属的阿里云账号(主账号),登录RAM控制台。
在左侧导航栏,选择
。重要请勿选择为
,否则DTS将无法访问数据库实例并报错。在角色页面,单击创建角色。
在创建角色面板,选择可信实体类型为阿里云账号,然后单击下一步。
在弹出的对话框中,配置RAM角色信息。
配置选项
配置说明
角色名称
填写RAM角色名称,本示例填写ram-for-dts。
说明可以填写大写英文、小写英文、数字或短横线(-),长度不超过64个字符。
备注(可选)
填写RAM角色备注信息。
选择信任的云账号
选择其他云账号,并填入源库所属阿里云账号(主账号)的ID。
说明获取方式,请参见获取源库所属阿里云账号(主账号)ID。
单击完成。
步骤二:为RAM角色精确授权
通过RAM角色创建成功页面
单击精确授权。
在权限管理页签,单击精确授权。
在精确授权面板中,将选择权限类型选择为系统策略。
在输入策略名称下方的文本框中,输入AliyunDTSRolePolicy。
单击确定。
精确授权成功后,单击关闭。
通过RAM角色列表
进入RAM角色的详情页面。
使用目标库所属的阿里云账号(主账号),登录RAM控制台。
在左侧导航栏,选择
。重要请勿选择为
,否则DTS将无法访问数据库实例并报错。在角色页面,查找并单击目标RAM角色。
在权限管理页签,单击精确授权。
在精确授权面板中,将选择权限类型选择为系统策略。
在输入策略名称下方的文本框中,输入AliyunDTSRolePolicy。
单击确定。
精确授权成功后,单击关闭。
步骤三:修改RAM角色的信任策略
通过精确授权成功页面
单击信任策略页签。
在信任策略页签中,单击编辑信任策略。
使用下述代码替换策略框中的代码。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<阿里云账号ID>:root" ], "Service": [ "<阿里云账号ID>@dts.aliyuncs.com" ] } } ], "Version": "1" }
将代码中两个
<阿里云账号ID>
替换为源库所属阿里云账号(主账号)的ID。说明获取方式,请参见获取源库所属阿里云账号(主账号)ID。
单击保存信任策略。
通过RAM角色列表
进入RAM角色的详情页面。
使用目标库所属的阿里云账号(主账号),登录RAM控制台。
在左侧导航栏,选择
。重要请勿选择为
,否则DTS将无法访问数据库实例并报错。在角色页面,查找并单击目标RAM角色。
单击信任策略页签。
在信任策略页签中,单击编辑信任策略。
使用下述代码替换策略框中的代码。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<阿里云账号ID>:root" ], "Service": [ "<阿里云账号ID>@dts.aliyuncs.com" ] } } ], "Version": "1" }
将代码中两个
<阿里云账号ID>
替换为源库所属阿里云账号(主账号)的ID。说明获取方式,请参见获取源库所属阿里云账号(主账号)ID。
单击保存信任策略。
场景三:源库和目标库均跨账号
步骤一:使用源库所属的阿里云账号(主账号)配置RAM授权
创建RAM角色。
使用源库所属的阿里云账号(主账号),登录RAM控制台。
在左侧导航栏,选择
。重要请勿选择为
,否则DTS将无法访问数据库实例并报错。在角色页面,单击创建角色。
在创建角色面板,选择可信实体类型为阿里云账号,然后单击下一步。
在弹出的对话框中,配置RAM角色信息。
配置选项
配置说明
角色名称
填写RAM角色名称,本示例填写ram-for-dts。
说明可以填写大写英文、小写英文、数字或短横线(-),长度不超过64个字符。
备注(可选)
填写RAM角色备注信息。
选择信任的云账号
选择其他云账号,并填入指定的创建DTS任务的阿里云账号(主账号)ID。
说明获取方式,请参见获取创建DTS任务的阿里云账号(主账号)ID。
单击完成。
为RAM角色精确授权。
通过RAM角色创建成功页面
单击精确授权。
在权限管理页签,单击精确授权。
在精确授权面板中,将选择权限类型选择为系统策略。
在输入策略名称下方的文本框中,输入AliyunDTSRolePolicy。
单击确定。
精确授权成功后,单击关闭。
通过RAM角色列表
进入RAM角色的详情页面。
使用源库所属的阿里云账号(主账号),登录RAM控制台。
在左侧导航栏,选择
。重要请勿选择为
,否则DTS将无法访问数据库实例并报错。在角色页面,查找并单击目标RAM角色。
在权限管理页签,单击精确授权。
在精确授权面板中,将选择权限类型选择为系统策略。
在输入策略名称下方的文本框中,输入AliyunDTSRolePolicy。
单击确定。
精确授权成功后,单击关闭。
修改RAM角色的信任策略。
通过精确授权成功页面
单击信任策略页签。
在信任策略页签中,单击编辑信任策略。
使用下述代码替换策略框中的代码。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<阿里云账号ID>:root" ], "Service": [ "<阿里云账号ID>@dts.aliyuncs.com" ] } } ], "Version": "1" }
将代码中两个
<阿里云账号ID>
替换为指定的创建DTS任务的阿里云账号(主账号)ID。说明获取方式,请参见获取创建DTS任务的阿里云账号(主账号)ID。
单击保存信任策略。
通过RAM角色列表
进入RAM角色的详情页面。
使用源库所属的阿里云账号(主账号),登录RAM控制台。
在左侧导航栏,选择
。重要请勿选择为
,否则DTS将无法访问数据库实例并报错。在角色页面,查找并单击目标RAM角色。
单击信任策略页签。
在信任策略页签中,单击编辑信任策略。
使用下述代码替换策略框中的代码。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<阿里云账号ID>:root" ], "Service": [ "<阿里云账号ID>@dts.aliyuncs.com" ] } } ], "Version": "1" }
将代码中两个
<阿里云账号ID>
替换为指定的创建DTS任务的阿里云账号(主账号)ID。说明获取方式,请参见获取创建DTS任务的阿里云账号(主账号)ID。
单击保存信任策略。
步骤二:使用目标库所属的阿里云账号(主账号)配置RAM授权
创建RAM角色。
使用目标库所属的阿里云账号(主账号),登录RAM控制台。
在左侧导航栏,选择
。重要请勿选择为
,否则DTS将无法访问数据库实例并报错。在角色页面,单击创建角色。
在创建角色面板,选择可信实体类型为阿里云账号,然后单击下一步。
在弹出的对话框中,配置RAM角色信息。
配置选项
配置说明
角色名称
填写RAM角色名称,本示例填写ram-for-dts。
说明可以填写大写英文、小写英文、数字或短横线(-),长度不超过64个字符。
备注(可选)
填写RAM角色备注信息。
选择信任的云账号
选择其他云账号,并填入指定的创建DTS任务的阿里云账号(主账号)ID。
说明获取方式,请参见获取创建DTS任务的阿里云账号(主账号)ID。
单击完成。
为RAM角色精确授权。
通过RAM角色创建成功页面
单击精确授权。
在权限管理页签,单击精确授权。
在精确授权面板中,将选择权限类型选择为系统策略。
在输入策略名称下方的文本框中,输入AliyunDTSRolePolicy。
单击确定。
精确授权成功后,单击关闭。
通过RAM角色列表
进入RAM角色的详情页面。
使用目标库所属的阿里云账号(主账号),登录RAM控制台。
在左侧导航栏,选择
。重要请勿选择为
,否则DTS将无法访问数据库实例并报错。在角色页面,查找并单击目标RAM角色。
在权限管理页签,单击精确授权。
在精确授权面板中,将选择权限类型选择为系统策略。
在输入策略名称下方的文本框中,输入AliyunDTSRolePolicy。
单击确定。
精确授权成功后,单击关闭。
修改RAM角色的信任策略。
通过精确授权成功页面
单击信任策略页签。
在信任策略页签中,单击编辑信任策略。
使用下述代码替换策略框中的代码。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<阿里云账号ID>:root" ], "Service": [ "<阿里云账号ID>@dts.aliyuncs.com" ] } } ], "Version": "1" }
将代码中两个
<阿里云账号ID>
替换为指定的创建DTS任务的阿里云账号(主账号)ID。说明获取方式,请参见获取创建DTS任务的阿里云账号(主账号)ID。
单击保存信任策略。
通过RAM角色列表
进入RAM角色的详情页面。
使用目标库所属的阿里云账号(主账号),登录RAM控制台。
在左侧导航栏,选择
。重要请勿选择为
,否则DTS将无法访问数据库实例并报错。在角色页面,查找并单击目标RAM角色。
单击信任策略页签。
在信任策略页签中,单击编辑信任策略。
使用下述代码替换策略框中的代码。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<阿里云账号ID>:root" ], "Service": [ "<阿里云账号ID>@dts.aliyuncs.com" ] } } ], "Version": "1" }
将代码中两个
<阿里云账号ID>
替换为指定的创建DTS任务的阿里云账号(主账号)ID。说明获取方式,请参见获取创建DTS任务的阿里云账号(主账号)ID。
单击保存信任策略。
后续操作
完成RAM授权后,您可以创建跨阿里云账号的任务。具体操作,请参见配置跨阿里云账号的任务。