保存イメージタスクを作成する
AMI を S3 バケットに保存するときに、保存イメージタスクが作成されます。保存イメージタスクを使用して、プロセスの進行状況と結果をモニタリングできます。
AMI のセキュリティ保護
AMI のコンテンツを保護するために十分なセキュリティをもって S3 バケットが確実に設定されていること、および AMI オブジェクトがバケット内に残っている限り、セキュリティが確実に維持されるようにすることが重要です。これを実行できない場合は、これらの API の使用はお勧めしません。S3 バケットへのパブリックアクセスが許可されていないことを確認します。必須ではありませんが、AMI を保存する 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": "*"
}
]
}
保存および復元イメージタスクを作成する
AMI を S3 バケットに保存するには、まず保存イメージタスクを作成します。タスクを完了するのにかかる時間は、AMI のサイズによって異なります。タスクが成功または失敗するまで、タスクの進行状況を追跡できます。
保存イメージタスクを作成するには
create-store-image-task コマンドを使用します。AMI の ID と、AMI を保存する S3 バケットの名前を指定します。
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-task コマンドを使用します。describe-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" }