从 Amazon EC2 导出实例的先决条件 - VM Import/Export
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

从 Amazon EC2 导出实例的先决条件

要从 Amazon EC2 导出 VM,首先必须满足以下先决条件:

  • 创建 Amazon S3 存储桶用于存储导出的实例或者选择现有的存储桶。存储桶必须位于您想要导出 VM 的区域。此外,存储桶必须属于您在其中执行导出操作的 Amazon Web Services 账户。有关更多信息,请参阅 Amazon Simple Storage Service 用户指南

  • 您无法把虚拟机导出到一个已为 S3 对象所有权应用强制桶拥有者设置的 S3 存储桶,因为 ACL 已被禁用。有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》配置 ACL

  • 附加一个包含以下授权的访问控制列表(ACL),准备您的 S3 存储桶。有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的使用 ACL 管理访问

    • 为每个 Grantee 提供以下权限:

      • READ_ACP(在 Amazon S3 控制台中,存储桶 ACL 应具有读取权限)

      • WRITE(在 Amazon S3 控制台中,对象应具有写入权限)

    • 对于 Grantee,请提供以下规范账户 ID:834bafd86b15b6ca71074df0fd1f93d234b9d5e848a2cb31f880c149003ce36f

配置 S3 存储桶

Console
配置 S3 存储桶
  1. 通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 选择用于存储所导出实例的存储桶。

  3. 权限选项卡上,请将对象所有权更改为首选存储桶所有者

  4. 附加以下存储桶策略。对于 CanonicalUser,请输入存储桶区域的规范账户 ID。对于 Resource,请在存储桶 ARN 中输入您的存储桶的名称。

    JSON
    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "GrantReadAclAndWrite", "Effect": "Allow", "Principal": { "CanonicalUser": "c4d8eabf8db69dbe46bfe0e517100c554f01200b104d59cd408e777ba442a322" }, "Action": [ "s3:GetBucketAcl", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-export-bucket", "arn:aws:s3:::amzn-s3-demo-export-bucket/*" ] } ] }
Amazon CLI
配置 S3 存储桶

使用 put-bucket-ownership-controls 命令更改对象所有权。

aws s3api put-bucket-ownership-controls \ --bucket amzn-s3-demo-export-bucket \ --ownership-controls='{"Rules":[{"ObjectOwnership":"BucketOwnerPreferred"}]}'

使用 put-bucket-policy 命令附加存储桶策略。对于 CanonicalUser,请输入存储桶区域的规范账户 ID。对于 Resource,请在存储桶 ARN 中输入您的存储桶的名称。

aws s3api put-bucket-policy \ --bucket amzn-s3-demo-export-bucket \ --policy \ '{ "Version": "2012-10-17", "Statement": [ { "Sid": "GrantReadAcpAndWrite", "Effect": "Allow", "Principal": { "CanonicalUser": "c4d8eabf8db69dbe46bfe0e517100c554f01200b104d59cd408e777ba442a322" }, "Action": [ "s3:GetBucketAcl", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-export-bucket", "arn:aws:s3:::amzn-s3-demo-export-bucket/*" ] } ] }'
PowerShell
配置 S3 存储桶

使用 Write-S3BucketOwnershipControl cmdlet 更改对象所有权。

Write-S3BucketOwnershipControl ` -BucketName "amzn-s3-demo-export-bucket" ` -OwnershipControls_Rule @{ObjectOwnership="BucketOwnerPreferred"}

使用 Write-S3BucketPolicy cmdlet 附加存储桶策略。对于 CanonicalUser,请输入存储桶区域的规范账户 ID。对于 Resource,请在存储桶 ARN 中输入您的存储桶的名称。

Write-S3BucketPolicy ` -BucketName "amzn-s3-demo-export-bucket" ` -Policy ` '{ "Version": "2012-10-17", "Statement": [ { "Sid": "GrantReadAcpAndWrite", "Effect": "Allow", "Principal": { "CanonicalUser": "c4d8eabf8db69dbe46bfe0e517100c554f01200b104d59cd408e777ba442a322" }, "Action": [ "s3:GetBucketAcl", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-export-bucket", "arn:aws:s3:::amzn-s3-demo-export-bucket/*" ] } ] }'