This topic describes the operations that you must perform before you migrate data.
Step 1: Create an Amazon S3 inventory
For more information about how to create an Amazon S3 inventory, see Configuring Amazon S3 Inventory.
The information in the preceding link may be outdated due to changes in the origin server and is for reference only.
Step 2: Create an IAM user that is used to migrate data
To ensure data security, we recommend that you create an Identity and Access Management (IAM) user, authorize the IAM user to read the source data, and then create access keys for the IAM user. For more information, see IMA users.
You need to create access keys for the IAM user to access the Amazon S3 bucket and the Amazon S3 inventory lists. You can use one account to create access keys for accessing both the Amazon S3 bucket and the Amazon S3 inventory lists. You can also use two different accounts to separately create two access keys.
Data Online Migration does not support AWS S3 whitelists. Before you migrate data, disable the access restriction.
The information in the preceding link may be outdated due to changes in the origin server and is for reference only.
Step 3: Create a destination bucket
Create an Object Storage Service (OSS) bucket as the destination to store the migrated data. For more information, see Create buckets.
Step 4: Create a RAM user and grant permissions to the RAM user
The Resource Access Management (RAM) user is used to perform the data migration task. You must create RAM roles and perform migration as the RAM user. We recommend that you create the RAM user within the Alibaba Cloud account that owns the source or destination OSS bucket.
For more information, see Create a RAM user and grant permissions to the RAM user.
Log on to the RAM console with an Alibaba Cloud account. On the Users page, find the RAM user that you created and click Add Permissions in the Actions column.
System policy: Attach the AliyunOSSImportFullAccess policy to the RAM user.
Custom policy: Attach a custom policy that includes the
ram:CreateRole,ram:CreatePolicy,ram:AttachPolicyToRole, andram:ListRolespermissions to the RAM user.For more information about how to attach a custom policy to a RAM user, see Create custom policies. The following sample code provides an example of the custom policy:
{ "Version":"1", "Statement":[ { "Effect":"Allow", "Action":[ "ram:CreateRole", "ram:CreatePolicy", "ram:AttachPolicyToRole", "ram:ListRoles" ], "Resource":"*" } ] }
Step 5: Grant permissions on the destination bucket
Perform the corresponding operations based on whether the destination bucket belongs to the current Alibaba Cloud account.
The destination bucket belongs to the current Alibaba Cloud account
Automatic authorization
We recommend that you use automatic authorization in the Data Online Migration console. For more information, see the "Step 3: Create a destination data address" section of the Migrate data topic.
Manual authorization
NoteYou can perform manual authorization in the following scenarios:
You want to grant permissions on multiple source buckets to a RAM role. This allows you to effectively manage multiple source buckets.
You do not want to create more RAM roles because the number of RAM roles within the current Alibaba Cloud account is close to the upper limit.
Automatic authorization is not applicable or cannot be used.
1. Create a RAM role that is used to migrate data
Log on to the RAM console in which the RAM user is created. On the Roles page, click Create Role.
Select Trusted Entity: Select Alibaba Cloud Service.
Role Type: Select Normal Service Role.
RAM Role Name: Enter a role name. The role name must be in lowercase.
Select Trusted Service: Select Data Online Migration.
2. Grant permissions on the destination bucket to the RAM role
On the Roles page, find the created RAM role and click Grant Permission in the Actions column.
Custom policy: Attach a custom policy that includes the
oss:List*,oss:Get*,oss:Put*, andoss:AbortMultipartUpload*permissions to the RAM role.
For more information about how to attach a custom policy, see Create custom policies. The following code provides an example of the custom policy:
NoteThe following policy is for reference only. Replace <myDestBucket> with the name of the destination bucket.
For more information about RAM policies for OSS, see Common examples of RAM policies.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "oss:List*", "oss:Get*", "oss:Put*", "oss:AbortMultipartUpload" ], "Resource": [ "acs:oss:*:*:<myDestBucket>", "acs:oss:*:*:<myDestBucket>/*" ] } ] }
The destination bucket does not belong to the current Alibaba Cloud account
1. Create a RAM role that is used to migrate data
Log on to the RAM console in which the RAM user is created. On the Roles page, click Create Role.
Select Trusted Entity: Select Alibaba Cloud Service.
Role Type: Select Normal Service Role.
RAM Role Name: Enter a role name. The role name must be in lowercase.
Select Trusted Service: Select Data Online Migration.
2. Grant permissions on the destination bucket to the RAM role
If you configure a bucket policy by specifying policy statements to grant the RAM role the required permissions, the new bucket policy overwrites the existing bucket policy. Make sure that the new bucket policy contains the content of the existing bucket policy. Otherwise, the authorization based on the existing bucket policy may fail.
Log on to the OSS console with the Alibaba Cloud account that owns the destination bucket.
In the left-side navigation pane, click Buckets. On the Buckets page, click the name of the destination bucket.
In the left-side pane of the bucket details page, choose Permission Control > Bucket Policy.
On the Bucket Policy tab, click Add by Syntax and then click Edit. In the code editor, enter the custom bucket policy. Then, click Save.
Grant the RAM role the permissions to query, read, delete, and write all resources in the destination bucket.
The following policy is for reference only. Replace <otherDestBucket> with the name of the destination bucket, <otherUid> with the ID of the Alibaba Cloud account that owns the destination bucket, <myUid> with the ID of the Alibaba Cloud account that is used to log on to the Data Online Migration console, and <roleName> with the name of the RAM role that you created. For more information about RAM policies for OSS, see Common examples of RAM policies.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:List*",
"oss:Get*",
"oss:Put*",
"oss:AbortMultipartUpload"
],
"Principal": [
"arn:sts::<myUid>:assumed-role/<roleName>/*"
],
"Resource": [
"acs:oss:*:<otherUid>:<otherDestBucket>",
"acs:oss:*:<otherUid>:<otherDestBucket>/*"
]
}
]
}Step 6: Restore the data to be migrated in the source bucket
Before you create a migration task to migrate data of the Archive storage class, you must manually restore the data. Take note of the following items when you restore the data:
Before you create a source data address and a migration task, make sure that data of the Archive storage class is restored.
Specify the number of days during which the restored data remains in the restored state based on the amount of data that you want to migrate. This can prevent data from entering the archived state during data migration.
You may be charged for the restoration operation. The fee may be relatively high. For more information about the billing methods, contact the service provider that offers the source bucket.
Data Online Migration does not restore data in archived objects at the source data address during data migration. The objects that are not restored or are being restored cannot be migrated.