Ở bước này, bạn sẽ tạo một IAM role có tên vmimport và import máy ảo đã được tải lên Amazon S3 bucket ở bước trước thành Amazon Machine Image (AMI). Toàn bộ quá trình sẽ được thực hiện bằng AWS Command Line Interface (CLI).
Trước khi thực hiện việc import máy ảo vào AWS, bạn cần tạo IAM role cần thiết.
trust-policy.json để cho phép dịch vụ VM Import/Export assume role vmimport:{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": { "Service": "vmie.amazonaws.com" },
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals":{
"sts:Externalid": "vmimport"
}
}
}
]
}
aws iam create-role --role-name vmimport --assume-role-policy-document "file://trust-policy.json"

Kiểm tra role đã tạo trong IAM console.

Xem Trust relationships của role.

Để cấp quyền cho role vmimport, bạn hãy tạo một file văn bản tên là role-policy.json. Trong nội dung JSON, tại các dòng Resource (ARN), hãy kiểm tra và cập nhật chính xác tên bucket của bạn. Vì tên bucket trên S3 là duy nhất toàn cầu, nếu bạn đã thay đổi tên bucket lúc khởi tạo, hãy chắc chắn rằng mã ARN trong file này khớp với tên đó (ví dụ: arn:aws:s3:::ten-bucket-cua-ban).
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::import-bucket-2026-1a",
"arn:aws:s3:::import-bucket-2026-1a/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:GetObject",
"s3:ListBucket",
"s3:PutObject",
"s3:GetBucketAcl"
],
"Resource": [
"arn:aws:s3:::export-bucket-2026-1a",
"arn:aws:s3:::export-bucket-2026-1a/*"
]
},
{
"Effect": "Allow",
"Action": [
"ec2:ModifySnapshotAttribute",
"ec2:CopySnapshot",
"ec2:RegisterImage",
"ec2:Describe*"
],
"Resource": "*"
}
]
}

aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document "file://role-policy.json"


Sử dụng AWS CLI để import máy ảo thành AMI:
Đảm bảo máy ảo on-premise không sử dụng UEFI boot vì Amazon EC2 không hỗ trợ.
Đối với máy ảo Linux, kiểm tra phiên bản kernel được AWS hỗ trợ. Tham khảo OS requirements.
aws ec2 import-image --description "VM Image" --disk-containers Format=vmdk,UserBucket="{S3Bucket=import-bucket-2026-1a,S3Key=Ubuntu-disk1.vmdk}"

2. Quá trình import có thể mất 5-10 phút tùy kích thước máy ảo.
aws ec2 describe-import-image-tasks --import-task-ids import-ami-xxxxxxxx
3. Sau khi hoàn thành, AMI mới sẽ xuất hiện trong danh sách AMIs với AMI name là task ID.
