本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立存放映像任務
當您將 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
aws ec2 create-store-image-task \ --image-id
ami-1234567890abcdef0
\ --bucketamzn-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-taskdescribe-store-image-tasks
輸出的 S3ObjectKey
和 Bucket
值,指定 AMI 的物件索引鍵,以及將 AMI 複製到其中之 S3 儲存貯體的名稱。同時指定已還原 AMI 的名稱。此帳戶的區域中,AMI 的名稱必須是唯一的。
注意
還原的 AMI 會取得一個新的 AMI ID。
aws ec2 create-restore-image-task \ --object-key
ami-1234567890abcdef0
.bin \ --bucketamzn-s3-demo-bucket
\ --name "New AMI Name
"
下列為範例輸出。
{ "ImageId": "ami-0eab20fe36f83e1a8" }