建立存放映像任務 - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立存放映像任務

當您將 AMI 存放在 S3 儲存貯體時,會建立存放映像任務。您可以使用存放映像任務來監控流程的進度與結果。

保護您的 AMI

請務必確保 S3 儲存貯體具有足夠的安全性來保護 AMI 的內容,而且只要 AMI 物件保留在儲存貯體中,安全性就必須要維護。如果無法完成,則不建議使用這些 API。確保不允許公開存取 S3 儲存貯體。建議您為存放 AMIs 的 S3 儲存貯體啟用伺服器端加密,但並非必要。

如需如何為 S3 儲存貯體設置適當安全性設定的相關資訊,請檢閱下列安全性主題:

將 AMI 快照複製到 S3 物件時,資料會透過 TLS 連線複製。您可以將 AMI 與加密的快照一起存放,但快照會在存放程序中解密。

使用 S3 存放和還原 AMI 的許可

若您的 IAM 主體將使用 Amazon S3 存放或還原 AMI,則您需要授予其所需的許可。

下列範例政策包含允許 IAM 主體執行存放和還原任務所需的所有動作。

您還可建立僅授予委託人存取特定資源的 IAM 政策。如需更多範例政策,請參閱《IAM 使用者指南》中的存取 AWS 資源管理

注意

若組成 AMI 的快照已進行加密,或者您的帳戶依預設啟用了加密功能,則您的 IAM 主體必須具有使用 KMS 金鑰的許可權限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:DeleteObject", "s3:GetObject", "s3:ListBucket", "s3:PutObject", "s3:PutObjectTagging", "s3:AbortMultipartUpload", "ebs:CompleteSnapshot", "ebs:GetSnapshotBlock", "ebs:ListChangedBlocks", "ebs:ListSnapshotBlocks", "ebs:PutSnapshotBlock", "ebs:StartSnapshot", "ec2:CreateStoreImageTask", "ec2:DescribeStoreImageTasks", "ec2:CreateRestoreImageTask", "ec2:GetEbsEncryptionByDefault", "ec2:DescribeTags", "ec2:CreateTags" ], "Resource": "*" } ] }

建立存放與還原映像任務

若要在 S3 儲存貯體存放 AMI,請先建立存放映像任務。完成任務所需的時間取決於 AMI 的大小。您可追蹤任務進度,直到任務成功或失敗為止。

若要建立存放映像任務

使用 create-store-image-task 命令。指定 AMI 的 ID 以及要存放 AMI 的 S3 儲存貯體名稱。

aws ec2 create-store-image-task \ --image-id ami-1234567890abcdef0 \ --bucket amzn-s3-demo-bucket

下列為範例輸出。

{ "ObjectKey": "ami-1234567890abcdef0.bin" }
若要描述存放任務的進度

使用 describe-store-image-tasks 命令。

aws ec2 describe-store-image-tasks

下列為範例輸出。

{ "StoreImageTaskResults": [ { "AmiId": "ami-1234567890abcdef0", "Bucket": "amzn-s3-demo-bucket", "ProgressPercentage": 17, "S3objectKey": "ami-1234567890abcdef0.bin", "StoreTaskState": "InProgress", "StoreTaskFailureReason": null, "TaskStartTime": "2022-01-01T01:01:01.001Z" } ] }
若要建立還原映像任務

使用 create-restore-image-task 命令。使用來自 describe-store-image-tasks 輸出的 S3ObjectKeyBucket 值,指定 AMI 的物件索引鍵,以及將 AMI 複製到其中之 S3 儲存貯體的名稱。同時指定已還原 AMI 的名稱。此帳戶的區域中,AMI 的名稱必須是唯一的。

注意

還原的 AMI 會取得一個新的 AMI ID。

aws ec2 create-restore-image-task \ --object-key ami-1234567890abcdef0.bin \ --bucket amzn-s3-demo-bucket \ --name "New AMI Name"

下列為範例輸出。

{ "ImageId": "ami-0eab20fe36f83e1a8" }