使用在线迁移服务将 OSS 或 OSS-HDFS 中的数据迁移至 OSS-HDFS 前,请依次完成操作账号、数据源和目的地址的准备。
步骤一:准备操作账号
创建 OSS-HDFS 数据地址需要先提交工单申请白名单。具体说明请参见背景信息。
1. 创建 RAM 用户
使用 RAM 用户操作在线迁移服务。后续创建数据地址和迁移任务时,使用该用户登录。建议在源 Bucket 或目的 Bucket 所属的阿里云账号下创建该用户。
如果尚未创建 RAM 用户,请参见创建 RAM 用户并授权,并启用控制台访问。已有用户可配置以下权限。
2. 为 RAM 用户授权
根据数据源类型,为 RAM 用户添加相应权限。
数据源类型 | 所需权限 | 用途 |
OSS-HDFS |
| 管理在线迁移服务 |
OSS |
| 管理在线迁移服务,创建和配置迁移使用的 RAM 角色及权限策略 |
源端为 OSS 时,自定义策略如下。创建方法请参见创建自定义权限策略。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ram:CreateRole",
"ram:CreatePolicy",
"ram:AttachPolicyToRole",
"ram:ListRoles"
],
"Resource": "*"
}
]
}本步骤配置操作迁移服务账号的权限。读取源数据和写入目的 OSS-HDFS 所需的权限,分别在后续步骤中准备。
下文所述“本账号”,指该 RAM 用户所属的阿里云账号。同账号表示源 Bucket 与该 RAM 用户属于同一阿里云账号;跨账号表示两者属于不同阿里云账号。
步骤二:准备数据源
根据数据源类型,选择对应标签页完成准备工作。
OSS 数据源
本节适用于将 OSS 中的数据迁移至 OSS-HDFS 的场景。
1. 准备源 Bucket 信息
记录源 Bucket 名称、所属地域和待迁移的对象前缀,并确认 Bucket 是否属于本账号。
迁移整个 Bucket 时,对象前缀留空;迁移指定目录时,填写以正斜线(/)结尾的前缀,例如 data/,开头不加正斜线(/)。
2. 配置源 Bucket 访问权限
根据源 Bucket 是否属于本账号,选择对应的授权方式。
源 Bucket 归属于本账号
自动授权(推荐)
创建源数据地址时,在“授权角色”中完成自动授权,无需提前手动创建角色。
手动授权
需要复用角色管理多个 Bucket、角色数量受限或无法使用自动授权时,可选择手动授权。
创建 RAM 角色
使用步骤一准备的 RAM 用户登录 RAM 控制台,在角色页面创建角色:
信任主体类型选择云服务。
信任主体名称选择闪电立方(
mgw.aliyuncs.com)。输入角色名称,例如
role-test,并完成创建。
角色名称使用小写字母,支持数字、连字符(-)和点号(.),长度不超过 64 个字符。已有符合要求的角色时,可为该角色补充相应权限。
授予源 Bucket 读取权限
创建以下自定义策略并附加到 RAM 角色,将 <readBucket> 替换为源 Bucket 的实际名称。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["oss:List*", "oss:Get*"],
"Resource": [
"acs:oss:*:*:<readBucket>",
"acs:oss:*:*:<readBucket>/*"
]
}
]
}源 Bucket 不归属于本账号
创建 RAM 角色
使用步骤一准备的 RAM 用户登录 RAM 控制台,在角色页面创建角色:
信任主体类型选择云服务。
信任主体名称选择闪电立方(
mgw.aliyuncs.com)。输入角色名称,例如
role-test,并完成创建。
角色名称使用小写字母,支持数字、连字符(-)和点号(.),长度不超过 64 个字符。已有符合要求的角色时,可为该角色补充相应权限。
配置源 Bucket Policy
使用源 Bucket 所属账号登录 OSS 管理控制台,选择源 Bucket,进入权限控制 > Bucket 授权策略,在按语法策略添加页签中添加以下授权。
占位符 | 替换内容 |
| 步骤一中 RAM 用户所属主账号的 UID |
| 源 Bucket 所属主账号的 UID |
| 在本账号下创建的 RAM 角色名称 |
| 源 Bucket 名称 |
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["oss:List*", "oss:Get*"],
"Principal": [
"arn:sts::<migrationUid>:assumed-role/<roleName>/*"
],
"Resource": [
"acs:oss:*:<bucketOwnerUid>:<readBucket>",
"acs:oss:*:<bucketOwnerUid>:<readBucket>/*"
]
}
]
}编辑 Bucket Policy 时,应保留已有策略,并合并新增授权,避免影响已有访问权限。
3. 配置 KMS 权限(按需)
如果待迁移的源对象使用 KMS 加密,为读取源数据的 RAM 角色授予 AliyunKMSFullAccess 系统策略。
跨账号访问使用自定义 KMS 密钥加密的对象时,还需由密钥所属账号配置密钥策略,在其他账号使用者中添加该角色的 ARN:
acs:ram::<migrationUid>:role/<roleName>具体操作请参见设置密钥策略。
4. 解冻待迁移对象(按需)
如果待迁移对象处于冻结状态,请在创建源数据地址和迁移任务前完成解冻。具体操作请参见解冻文件。
根据待迁移数据量和预计迁移时间设置解冻有效期,确保对象在迁移期间保持可读。
解冻会产生数据取回费用,具体以 OSS 的计费规则为准。
在线迁移服务不会自动解冻源对象。未解冻或仍在解冻中的对象会迁移失败。
OSS-HDFS 数据源
本节适用于将 OSS-HDFS 中的数据迁移至另一个 OSS-HDFS 的场景。
1. 准备源 Bucket 和目录信息
准备事项 | 说明 |
源 Bucket | 记录已开通 OSS-HDFS 服务的 Bucket 名称和所属地域 |
HDFS 服务域名 | 在源 Bucket 的概览页获取 HDFS 服务的 Endpoint,例如 |
待迁移目录 | 记录待迁移目录的路径,例如 |
2. 准备访问凭证并授权
由源 Bucket 所属账号准备 RAM 用户,为该用户创建 AccessKey,并记录 AccessKey ID 和 AccessKey Secret,供创建源数据地址时填写。
为该 RAM 用户配置 OSS-HDFS 访问权限,确保可以列举源目录和读取待迁移文件。授权方法请参见授权访问 OSS-HDFS 服务中的“授权 RAM 用户通过非 EMR 集群接入 OSS-HDFS 服务”。
操作在线迁移服务的 RAM 用户与访问 OSS-HDFS 的 RAM 用户可以不同。创建 OSS-HDFS 数据地址时,使用已获授权的 RAM 用户的 AccessKey。
步骤三:准备目的地址
目的地址为 OSS-HDFS。准备用于接收迁移数据的 Bucket、目录和访问凭证。
1. 创建 Bucket 并开通 OSS-HDFS 服务
如果尚未准备目的 Bucket,先创建存储空间,并开通 OSS-HDFS 服务。已有 Bucket 时,确认已开通该服务。
2. 准备目的 Bucket 和目录信息
准备事项 | 说明 |
目的 Bucket | 记录目的 Bucket 名称和所属地域 |
HDFS 服务域名 | 在目的 Bucket 的概览页获取 HDFS 服务的 Endpoint,例如 |
目的目录 | 确定接收迁移数据的目录,例如 |
3. 准备访问凭证并授权
由目的 Bucket 所属账号准备 RAM 用户,为该用户创建 AccessKey,并记录 AccessKey ID 和 AccessKey Secret,供创建目的数据地址时填写。
为该 RAM 用户配置 OSS-HDFS 访问权限,确保可以创建目录和写入文件。授权方法请参见授权访问 OSS-HDFS 服务中的“授权 RAM 用户通过非 EMR 集群接入 OSS-HDFS 服务”。
源端和目的端均为 OSS-HDFS 时,分别确认源端访问凭证具有读取权限、目的端访问凭证具有写入权限。复用同一 RAM 用户的 AccessKey 时,需确保该用户同时具有两端所需的权限。