

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 从 Amazon EC2 导出实例的先决条件
<a name="vmexport-prerequisites"></a>

要从 Amazon EC2 导出 VM，首先必须满足以下先决条件：
+ 创建 Amazon S3 存储桶用于存储导出的实例或者选择现有的存储桶。存储桶必须位于您要导出的区域 VMs。此外，存储桶必须属于您执行导出操作 Amazon Web Services 账户 的位置。有关更多信息，请参阅 [Amazon Simple Storage Service 用户指南](https://docs.amazonaws.cn/AmazonS3/latest/userguide/)。
+ 由于已禁用，您无法将虚拟机导出到使用存储桶所有者强制设置的 S3 对象所有权 ACLs 的 S3 存储桶。有关更多信息，请参阅 *Amazon 简单存储服务用户指南 ACLs*中的[配置](https://docs.amazonaws.cn/AmazonS3/latest/userguide/managing-acls.html)。
+ 附加一个包含以下授权的访问控制列表（ACL），准备您的 S3 存储桶。有关更多信息，请参阅《*Amazon 简单存储服务用户指南*》 ACLs中的使用[管理访问权限](https://docs.amazonaws.cn/AmazonS3/latest/userguide/acls.html)。
  + 为每个 `Grantee` 提供以下权限：
    + `READ_ACP`（在 Amazon S3 控制台中，**存储桶 ACL** 应具有**读取**权限）
    + `WRITE`（在 Amazon S3 控制台中，**对象**应具有**写入**权限）
  + 对于 `Grantee`，请提供以下规范账户 ID：`834bafd86b15b6ca71074df0fd1f93d234b9d5e848a2cb31f880c149003ce36f`

## 配置 S3 存储桶
<a name="vmexport-configure-bucket"></a>

------
#### [ Console ]

**配置 S3 存储桶**

1. 打开 Amazon S3 控制台，网址为 [https://console.aws.amazon.com/s3/](https://console.amazonaws.cn/s3/)。

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

1. 在**权限**选项卡上，请将对象所有权更改为**首选存储桶所有者**。

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

------
#### [ 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](https://docs.amazonaws.cn/cli/latest/reference/s3api/put-bucket-ownership-controls.html)命令更改对象所有权。

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

使用[put-bucket-policy](https://docs.amazonaws.cn/cli/latest/reference/s3api/put-bucket-policy.html)命令附加存储桶策略。对于 `CanonicalUser`，请输入存储桶区域的规范账户 ID。对于`Resource`，在存储桶中输入您的存储桶的名称 ARNs。

```
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](https://docs.amazonaws.cn/powershell/latest/reference/items/Write-S3BucketOwnershipControl.html)cmdlet 更改对象所有权。

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

使用 [Write-S3BucketPolicy](https://docs.amazonaws.cn/powershell/latest/reference/items/Write-S3BucketPolicy.html)cmdlet 附加存储桶策略。对于 `CanonicalUser`，请输入存储桶区域的规范账户 ID。对于`Resource`，在存储桶中输入您的存储桶的名称 ARNs。

```
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/*"
            ]
        }
    ]
}'
```

------