使用阿里云数据传输 DTS 实现跨账户数据库迁移

本贴最后更新于 2192 天前,其中的信息可能已经天翻地覆

一、背景

小编朋友的需要把老账户的云资源迁移到新账户下,朋友的老账户下除了有云服务器之外,还有 RDS(MySQL 数据库,OSS 资源等)。今天小编主要讲如何使用阿里云的数据传输服务 DTS 实现跨账户之间数据库迁移的操作。

二、操作步骤

阿里云数据传输 DTS 支持两个阿里云账号下的实例进行数据迁移同步。为了实现这个功能,源实例所属阿里云账号需要将相关授权给目标实例所属阿里云账号,然后使用目标实例所属阿里云账号登录 DTS 控制台进行任务配置。下面是具体过程:

2.1. 源实例所属账号 A 授权 DTS 访问它的云资源

首先,源实例所属账号 A 需要授权 DTS 访问它的云资源。具体的授权流程如下:

使用账号 A 登陆阿里云官网,然后进入 DTS 控制台。如果账号 A 未授权过 DTS 访问它的云资源,那么会弹出如下的授权入口。

点击前往 RAM 角色授权,进入授权界面。

在授权界面中,点击同意授权完成将访问云资源的权限授权给 DTS 服务的操作。

如果登陆到 DTS 控制台时,未出现上面的授权请求界面,说明 A 账号已经进行过授权操作。

2.2 源实例所属账号 A 授权目标实例所属账号 B 在 DTS 服务中访问 A 的云资源

当账号 A 将云资源访问权限授权给 DTS 服务后,还需要授权 B 账号在 DTS 服务中访问 A 的云资源。这个授权操作,是通过 RAM 的用户角色实现的。在配置迁移任务时,源实例需要配置账号 A 的账号 ID 以及授权角色名,配置内容如下图所示。

上图中,RDS 所属阿里云账号为源 RDS 所属阿里云账号的账号 ID,可以到账号管理的 安全设置 界面获取

角色名称为账号 A 授权账号 B 在 DTS 服务中访问其账号的云资源的角色名称。下面会介绍授权角色的创建流程

2.3 跨账号角色授权

本小节介绍如何使用 RAM 进行跨阿里云账号授权,授权另外一个阿里云账号在 DTS 中访问自己的云资源。下面就以需要将账号 A 下面的 RDS 实例迁移到账号 B 下的云资源为例,介绍角色授权过程。

2.3.1 角色创建

1). 使用账号 A 登录 RAM 管理控制台,进入角色管理界面,点击页面右上角的 新建角色,开始创建跨账号授权角色。2). 第一步的角色类型,选择用户角色 3). 受信云账号,选择 其他云账号,同时,受信云账号 ID 配置目标实例所属阿里云账号即账号 B 的账号 ID4) 第四步,配置角色名称,这个名称就是 DTS 同步作业配置过程中,需要填写的角色名称。

2.3.2 角色授权

角色创建完成后,需要修改角色授权策略,包括:1) 受信云账号,限制受信云账号 只能在 DTS 控制台访问自己的云资源。 具体修改步骤如下:

  • 在角色管理界面,点击 刚创建角色 后面的 管理 按钮,进入角色管理界面。

  • 在角色管理界面,点击右上角的 编辑基本信息,进入角色编辑框,在编辑框中,修改 Principal,添加 service 定义:
"Service": [  
          "受信阿里云账号ID@dts.aliyuncs.com"  
        ]

受信云账号的账号 ID,即最后配置 DTS 同步作业的阿里云账号 ID。dts.aliyuncs.com 为 DTS 服务代号。假设配置 DTS 同步作业的阿里云账号 ID 为:1218522260143989,那么 service 定义为:

"Service": [  
          "121852226014398@dts.aliyuncs.com"  
        ]

所以,完整的角色定义如下:

{  
  "Statement": [  
    {  
      "Action": "sts:AssumeRole",  
      "Effect": "Allow",  
      "Principal": {  
        "RAM": [  
          "acs:ram::1218522260143989:root"  
        ],  
        "Service": [  
          "1218522260143989@dts.aliyuncs.com"  
        ]  
      }  
    }  
  ],  
  "Version": "1"  
}
  1. 角色授权,授权角色能够源实例所属云账号下的资源当受信云账号 B 配置完成后,需要修改角色的授权策略,将源账号 A 下的部分云资源的访问权限授权给角色,这样 DTS 可以扮演这个角色访问 A 账号下的云实例。修改步骤如下:
  • 在角色管理界面,点击 刚创建角色 后面的 授权 按钮,进入角色授权界面。

  • 在精确策略搜索框中,搜索 AliyunDTSRolePolicy,将这个系统策略授权给角色。

注意: 策略名称一定要手动输入 ,要不然不行。

至此,完成跨账号授权角色的创建及授权。

完成权限授权后,即可以开始配置跨账号迁移同步任务。配置迁移同步任务时,源实例信息中的角色名称即为上面创建的角色名称。

参考文献

阿里云数据传输服务 DTS 官方文档

更多内容请关注公众号

  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    89 引用 • 345 回帖
  • DTS
    1 引用
  • 数据迁移
    6 引用 • 17 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...