

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

# 使用 Amazon S3 配置 AWS DataSync 传输
<a name="create-s3-location"></a>

要将数据传输到您的 Amazon S3 存储桶或从中传输数据，您需要创建一个 AWS DataSync 传输*位置*。 DataSync 可以将此位置用作传输数据的源或目的地。

## 提供 DataSync 对 S3 存储桶的访问权限
<a name="create-s3-location-access"></a>

DataSync 需要访问您要传入或传出的 S3 存储桶。为此，您必须创建一个具有访问存储桶所需权限的 AWS Identity and Access Management (IAM) 角色。 DataSync 然后，您可以在为[创建 Amazon S3 营业地点](#create-s3-location-how-to)时指定此角色 DataSync。

**Contents**
+ [所需的权限](#create-s3-location-required-permissions)
+ [为创建 IAM 角色 DataSync 以访问您的 Amazon S3 位置](#create-role-manually)
+ [使用服务器端加密访问 S3 存储桶](#create-s3-location-encryption)
+ [访问受限的 S3 存储桶](#denying-s3-access)
+ [通过受限 VPC 的访问权限访问 S3 存储库](#create-s3-location-restricted-vpc)

### 所需的权限
<a name="create-s3-location-required-permissions"></a>

您的 IAM 角色所需的权限可能取决于存储桶是 DataSync 源位置还是目标位置。Outposts 上的 Amazon S3 需要一组不同的权限。

------
#### [ Amazon S3 (source location) ]

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
        },
        {
            "Action": [
                "s3:GetObject",
                "s3:GetObjectTagging",
                "s3:GetObjectVersion",
                "s3:GetObjectVersionTagging",
                "s3:ListMultipartUploadParts"
              ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
    ]
}
```

------
#### [ Amazon S3 (destination location) ]

```
{
 "Version": "2012-10-17",		 	 	 
 "Statement": [
     {
         "Action": [
             "s3:GetBucketLocation",
             "s3:ListBucket",
             "s3:ListBucketMultipartUploads"
         ],
         "Effect": "Allow",
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
         "Condition": {
             "StringEquals": {
                 "aws:ResourceAccount": "123456789012"
             }
         }
     },
     {
         "Action": [
             "s3:AbortMultipartUpload",
             "s3:DeleteObject",
             "s3:GetObject",
             "s3:GetObjectTagging",
             "s3:GetObjectVersion",
             "s3:GetObjectVersionTagging",
             "s3:ListMultipartUploadParts",
             "s3:PutObject",
             "s3:PutObjectTagging"
           ],
         "Effect": "Allow",
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
         "Condition": {
             "StringEquals": {
                 "aws:ResourceAccount": "123456789012"
             }
         }
     }
 ]
}
```

------
#### [ Amazon S3 on Outposts ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "s3-outposts:ListBucket",
                "s3-outposts:ListBucketMultipartUploads"
            ],
            "Effect": "Allow",
            "Resource": [
            "arn:aws:s3-outposts:us-east-1:123456789012:outpost/outpost-id/bucket/amzn-s3-demo-bucket",
    "arn:aws:s3-outposts:us-east-1:123456789012:outpost/outpost-id/accesspoint/bucket-access-point-name"
            ]
        },
        {
            "Action": [
                "s3-outposts:AbortMultipartUpload",
                "s3-outposts:DeleteObject",
                "s3-outposts:GetObject",
                "s3-outposts:GetObjectTagging",
                "s3-outposts:GetObjectVersion",
                "s3-outposts:GetObjectVersionTagging",
                "s3-outposts:ListMultipartUploadParts",
                "s3-outposts:PutObject",
                "s3-outposts:PutObjectTagging"
            ],
            "Effect": "Allow",
            "Resource": [
            "arn:aws:s3-outposts:us-east-1:123456789012:outpost/outpost-id/bucket/amzn-s3-demo-bucket/*",
    "arn:aws:s3-outposts:us-east-1:123456789012:outpost/outpost-id/accesspoint/bucket-access-point-name/*"
            ]
        },
        {
            "Action": "s3-outposts:GetAccessPoint",
            "Effect": "Allow",
            "Resource": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/outpost-id/accesspoint/bucket-access-point-name"
        }
    ]
}
```

------

### 为创建 IAM 角色 DataSync 以访问您的 Amazon S3 位置
<a name="create-role-manually"></a>

在控制台中[创建您的 Amazon S3 位置](#create-s3-location-how-to)时， DataSync 可以自动创建并代入一个 IAM 角色，该角色通常具有访问您的 S3 存储桶的正确权限。

在某些情况下，您可能需要手动创建此角色（例如，访问具有额外安全层的存储分区，或者在其他存储桶中向存储桶传送或从存储桶传出 AWS 账户）。

#### 为手动创建 IAM 角色 DataSync
<a name="create-role-manually-steps"></a>

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在左侧导航窗格的**访问管理**下，选择**角色**，然后选择**创建角色**。

1. 在**选择可信实体**页面中，为**可信实体类型**选择 **AWS 服务**。

1. 对于 “**用例**”，**DataSync**在下拉列表中进行选择，然后选择**DataSync**。选择**下一步**。

1. 在**添加权限**页面上，选择**下一步**。输入角色名称，然后选择**创建角色**。

1. 在**角色**页面上，搜索您刚刚创建的角色并选择其名称。

1. 在角色的详情页面上，选择**权限**选项卡。选择**添加权限**，然后选择**创建内联策略**。

1. 选择 **JSON** 选项卡[，然后在策略编辑器中添加访问存储桶所需的权限](#create-s3-location-required-permissions)。

1. 选择**下一步**。为您的策略输入名称，然后选择**创建策略**。

1. （推荐）为防止出现[跨服务混淆代理问题](cross-service-confused-deputy-prevention.md)，请执行以下操作：

   1. 在角色的详情页面上，选择**信任关系**选项卡。选择**编辑信任策略**。

   1. 使用以下示例更新信任策略，其中包括 `aws:SourceArn` 和 `aws:SourceAccount` 全局条件上下文键：

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
            {
              "Effect": "Allow",
              "Principal": {
                  "Service": "datasync.amazonaws.com"
              },
              "Action": "sts:AssumeRole",
              "Condition": {
                  "StringEquals": {
                  "aws:SourceAccount": "444455556666"
                  },
                  "ArnLike": {
                  "aws:SourceArn": "arn:aws:datasync:us-east-1:444455556666:*"
                  }
              }
            }
        ]
      }
      ```

------

   1. 选择**更新策略**。

您可以在创建您的 Amazon S3 位置时指定此角色。

### 使用服务器端加密访问 S3 存储桶
<a name="create-s3-location-encryption"></a>

DataSync 可以将数据传输到[使用服务器端加密的 S3 存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)或从中传输数据。存储桶使用的加密密钥类型可以决定您是否需要 DataSync 允许访问存储桶的自定义策略。

 DataSync 与使用服务器端加密的 S3 存储桶一起使用时，请记住以下几点：
+ **如果您的 S3 存储桶使用 AWS 托管密钥加密，则默认情况下，如果您的所有资源都在同一个**存储桶中，则 DataSync 可以访问该存储桶的对象 AWS 账户。
+ **如果您的 S3 存储桶使用客户托管 AWS Key Management Service (AWS KMS) 密钥 (SSE-KMS) 加密**，则[密钥的策略](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)必须包含 DataSync 用于访问存储桶的 IAM 角色。
+ **如果您的 S3 存储桶使用客户托管的 SSE-KMS 密钥和其他密钥进行加密，则 DataSync 需要获得访问另一个 AWS 账户**存储桶的权限。 AWS 账户您可以通过以下步骤完成上述设置：
  + 在使用的 IAM 角色中，您必须 DataSync 使用该密钥的完全限定的 Amazon 资源名称 (ARN) 来指定跨账户存储桶的 SSE-KMS 密钥。该密钥 ARN 与您用来配置存储桶[默认加密](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-bucket-encryption.html)的密钥 ARN 相同。在这种情况下，您不能指定密钥 ID、别名名称或别名 ARN。

    下面是一个密钥 ARN 示例：

    `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`

    有关在 IAM 策略声明中指定 KMS 密钥的更多信息，请参阅 *[AWS Key Management Service 开发人员指南](https://docs.aws.amazon.com/kms/latest/developerguide/cmks-in-iam-policies.html)*。
  + 在 SSE-KMS 密钥策略中，[指定使用的 IAM 角色](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html)。 DataSync
+ **如果您的 S3 存储桶使用客户托管 AWS KMS 密钥 (DSSE-KMS) 进行加密以进行双层服务器端加密**，则[密钥的策略](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)必须包括 DataSync 用于访问存储桶的 IAM 角色。（请记住，DSSE-KMS 不支持 [S3 存储桶密钥](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html)，这可以降低 AWS KMS 请求成本。）
+ **如果您的 S3 存储桶使用客户提供的加密密钥 (SSE-C)** 进行加密，则 DataSync无法访问此存储桶。

#### 示例：适用于 SSE-KMS 的密钥策略 DataSync
<a name="create-s3-location-encryption-example"></a>

以下示例是客户托管的 SSE-KMS 密钥的[密钥政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)。此政策与使用服务器端加密的 S3 存储桶关联。

如果要使用此示例，请将以下值替换为您自己的值：
+ *account-id*— 你的 AWS 账户。
+ *admin-role-name*— 可以管理密钥的 IAM 角色的名称。
+ *datasync-role-name*— 允许 DataSync 在访问存储桶时使用密钥的 IAM 角色的名称。

------
#### [ JSON ]

****  

```
{
    "Id": "key-consolepolicy-3",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Enable IAM Permissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "Allow access for Key Administrators",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/admin-role-name"
            },
            "Action": [
                "kms:Create*",
                "kms:Describe*",
                "kms:Enable*",
                "kms:List*",
                "kms:Put*",
                "kms:Update*",
                "kms:Revoke*",
                "kms:Disable*",
                "kms:Get*",
                "kms:Delete*",
                "kms:TagResource",
                "kms:UntagResource",
                "kms:ScheduleKeyDeletion",
                "kms:CancelKeyDeletion"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/datasync-role-name"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

### 访问受限的 S3 存储桶
<a name="denying-s3-access"></a>

如果您需要向通常拒绝所有访问权限的 S3 存储桶进行传输，则可以编辑存储桶策略， DataSync 使其只能在传输时访问该存储桶。

#### 示例：允许基于 IAM 角色的访问
<a name="denying-s3-access-example"></a>

1. 复制以下 S3 存储桶策略。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [{
           "Sid": "Deny-access-to-bucket",
           "Effect": "Deny",
           "Principal": "*",
           "Action": "s3:*",
           "Resource": [
               "arn:aws:s3:::amzn-s3-demo-bucket",
               "arn:aws:s3:::amzn-s3-demo-bucket/*"
           ],
           "Condition": {
               "StringNotLike": {
                   "aws:userid": [
                       "datasync-iam-role-id:*",
                       "your-iam-role-id"
                   ]
               }
           }
       }]
   }
   ```

------

1. 在策略中，替换以下值：
   + `amzn-s3-demo-bucket`：指定受限 S3 存储桶的名称。
   + `datasync-iam-role-id`— 指定用于访问存储桶的 [IAM 角色](#create-s3-location-access)的 ID。 DataSync 

     运行以下 AWS CLI 命令获取 IAM 角色 ID：

     `aws iam get-role --role-name datasync-iam-role-name`

     在输出中，查找 `RoleId` 值：

     `"RoleId": "ANPAJ2UCCR6DPCEXAMPLE"`
   + `your-iam-role-id`— 指定用于为存储桶创建 DataSync 位置的 IAM 角色的 ID。

     运行以下命令以创建 IAM 角色 ID：

     `aws iam get-role --role-name your-iam-role-name`

     在输出中，查找 `RoleId` 值：

     `"RoleId": "AIDACKCEVSQ6C2EXAMPLE"`

1. [将此策略添加](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)到 S3 存储桶策略中。

1. 使用 DataSync 完受限存储桶后，请从存储桶策略中移除两个 IAM 角色的条件。

### 通过受限 VPC 的访问权限访问 S3 存储库
<a name="create-s3-location-restricted-vpc"></a>

一个 Amazon S3 存储桶，用于[限制对特定虚拟私有云 (VPC) 终端节点的访问或 VPCs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies-vpc-endpoint.html)拒绝 DataSync 向该存储桶传输或从该存储桶传输数据。要在这些情况下启用传输，您可以更新存储桶的策略，将[您在 DataSync 位置中指定](#create-s3-location-how-to)的 IAM 角色包括在内。

------
#### [ Option 1: Allowing access based on DataSync location role ARN ]

在 S3 存储桶策略中，您可以指定您的 DataSync 位置 IAM 角色的亚马逊资源名称 (ARN)。

以下示例是一个 S3 存储桶策略，该策略拒绝除两个 VPCs （`vpc-1234567890abcdef0`和`vpc-abcdef01234567890`）之外的所有存储桶的访问。但是，该策略还包括[ArnNotLikeIfExists](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)条件和 a [ws: PrincipalArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalarn) 条件键，它们允许 DataSync 位置角色的 ARN 访问存储桶。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Access-to-specific-VPCs-only",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringNotEqualsIfExists": {
                    "aws:SourceVpc": [
                        "vpc-1234567890abcdef0",
                        "vpc-abcdef01234567890"
                    ]
                },
                "ArnNotLikeIfExists": {
                    "aws:PrincipalArn": [
                        "arn:aws:iam::111122223333:role/datasync-location-role-name"
                    ]
                }
            }
        }
    ]
}
```

------
#### [ Option 2: Allowing access based on DataSync location role tag ]

在 S3 存储桶策略中，您可以指定附加到您的 DataSync 位置 IAM 角色的标签。

以下示例是一个 S3 存储桶策略，该策略拒绝除两个 VPCs （`vpc-1234567890abcdef0`和`vpc-abcdef01234567890`）之外的所有存储桶的访问。但是，该策略还包括[StringNotEqualsIfExists](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)条件和 a [ws: PrincipalTag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag) 条件键，它们允许委托人使用标签键`exclude-from-vpc-restriction`和值`true`。您可以通过指定附加到您的 DataSync 位置角色的标签来尝试在存储桶策略中使用类似的方法。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Access-to-specific-VPCs-only",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringNotEqualsIfExists": {
                    "aws:SourceVpc": [
                        "vpc-1234567890abcdef0",
                        "vpc-abcdef01234567890"
                    ],
                    "aws:PrincipalTag/exclude-from-vpc-restriction": "true"
                }
            }
        }
    ]
}
```

------

## Amazon S3 传输的存储类别注意事项
<a name="using-storage-classes"></a>

当 Amazon S3 是您的目标位置时， DataSync 可以将您的数据直接传输到特定的 [Amazon S3 存储类别](https://aws.amazon.com/s3/storage-classes/)。

有些存储类别的行为会影响您的 Amazon S3 存储成本。使用可能会因覆盖、删除或检索对象而产生额外费用的存储类别时，更改对象数据或元数据会产生此类费用。有关更多信息，请参阅 [Amazon S3 定价](https://aws.amazon.com/s3/pricing/)。

**重要**  
传输到 Amazon S3 目标位置的新对象使用您在[创建位置](#create-s3-location-how-to)时指定的存储类别进行存储。  
默认情况下，除非您将任务配置为[传输所有数据](configure-metadata.md#task-option-transfer-mode)，否则会 DataSync 保留目标位置中现有对象的存储类别。在这种情况下，创建位置时指定的存储类别适用于所有对象。


| Amazon S3 存储类 | 注意事项 | 
| --- | --- | 
| S3 标准 | 选择“S3 标准”将您经常访问的文件冗余存储在地理上分开的多个可用区中。如果您没有指定存储类别，则这是默认设置。 | 
| S3 智能分层 |  选择“S3 智能分层”，可通过自动将数据移动到最具成本效益的存储访问层来优化存储成本。 您需要为存储在 S3 智能分层存储类别中的每个对象按月支付相关费用。这项 Amazon S3 费用包括监控数据访问模式和在层之间移动对象。  | 
| S3 标准 - IA |  选择“S3 标准 - IA”将您不常访问的对象冗余存储在地理上分开的多个可用区中。 存储在“S3 标准 - IA”存储类别中的对象可能会因覆盖、删除或检索而产生额外费用。考虑这些对象的更改频率，计划保留这些对象的时间以及需要访问的频率。更改对象数据或元数据等同于删除一个对象后再创建一个新对象来替换它。这将导致存储在“S3 标准 - IA”存储类别中的对象产生额外费用。 小于 128 KB 的对象小于“S3 标准 - IA”存储类别中每个对象的最小容量费用。这些对象存储在 S3 标准存储类别中。  | 
| S3 单区 - IA  |  选择“S3 单区 - IA”：将您不常访问的对象存储在单个可用区中。 存储在“S3 单区 - IA”存储类别中的对象可能会因覆盖、删除或检索而产生额外费用。考虑这些对象的更改频率，计划保留这些对象的时间以及需要访问的频率。更改对象数据或元数据等同于删除一个对象后再创建一个新对象来替换它。这会导致存储在“S3 单区 - IA”存储类别中的对象产生额外费用。 小于 128 KB 的对象小于“S3 单区 - IA”存储类别中每个对象的最小容量费用。这些对象存储在 S3 标准存储类别中。  | 
| S3 Glacier Instant Retrieval |  选择“S3 Glacier 即时检索”可存档很少访问但需要在毫秒内检索的对象。 与“S3 标准-IA”存储类别相比，存储在“S3 Glacier 即时检索”存储类中的数据可以节省成本，同时享有与“S3 标准-IA”存储类别相同的延迟和吞吐量性能。“S3 Glacier 即时检索”的数据访问成本高于“S3 标准-IA”。 存储在“S3 Glacier 即时检索”存储类中的对象可能会因覆盖、删除或检索而产生额外费用。考虑这些对象的更改频率，计划保留这些对象的时间以及需要访问的频率。更改对象数据或元数据等同于删除一个对象后再创建一个新对象来替换它。这会导致存储在“S3 Glacier 即时检索”存储类别中的对象产生额外费用。 小于 128 KB 的对象小于“S3 Glacier 即时检索”存储类别中每个对象的最小容量费用。这些对象存储在 S3 标准存储类别中。  | 
| S3 Glacier 灵活检索 | 选择“S3 Glacier 灵活检索”，获取更多活跃档案。存储在“S3 Glacier 灵活检索”存储类中的对象可能会因覆盖、删除或检索而产生额外费用。考虑这些对象的更改频率，计划保留这些对象的时间以及需要访问的频率。更改对象数据或元数据等同于删除一个对象后再创建一个新对象来替换它。这会导致存储在“S3 Glacier 灵活检索”存储类别中的对象产生额外费用。S3 Glacier 灵活检索存储类需要为每个存档对象提供 40 KB 的额外元数据。 DataSync 将小于 40 KB 的对象归入 S3 标准存储类别。必须先恢复以该存储类别存档的对象，然后 DataSync 才能读取它们。有关信息，请参阅《Amazon S3 用户指南》中的[使用已归档的对象](https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html)。使用“S3 Glacier 灵活检索”时，请选择**仅验证传输的数据**任务选项，以便在传输结束时比较数据和元数据校验和。不能对此存储类别使用**验证目标中的所有数据**选项，因为它需要检索目标中的所有现有对象。 | 
| S3 Glacier 深度存档 |  选择“S3 Glacier 深度存档”来存档文件，以提供长期数据留存和数字保留，每年可以在其中访问一次或两次数据。 存储在“S3 Glacier 深度存档”存储类中的对象可能会因覆盖、删除或检索而产生额外费用。考虑这些对象的更改频率，计划保留这些对象的时间以及需要访问的频率。更改对象数据或元数据等同于删除一个对象后再创建一个新对象来替换它。这会导致存储在“S3 Glacier 深度存档”存储类别中的对象产生额外费用。 S3 Glacier Deep Archive Deep Archive 存储类需要为每个存档对象提供 40 KB 的额外元数据。 DataSync 将小于 40 KB 的对象归入 S3 标准存储类别。 必须先恢复以该存储类别存档的对象，然后 DataSync 才能读取它们。有关信息，请参阅《*Amazon S3 用户指南*》中的[使用已归档的对象](https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html)。 使用“S3 Glacier 深度存档”时，请选择**仅验证传输的数据**任务选项，以便在传输结束时比较数据和元数据校验和。不能对此存储类别使用**验证目标中的所有数据**选项，因为它需要检索目标中的所有现有对象。  | 
|  S3 Outposts  |  Amazon S3 on Outposts 的存储类别。  | 

## 使用时评估 S3 请求成本 DataSync
<a name="create-s3-location-s3-requests"></a>

在 Amazon S3 分支机构 DataSync中，您会产生与发出 S3 API 请求相关的费用。本节可帮助您了解这些请求的 DataSync 使用方式以及它们可能如何影响您的 [Amazon S3 成本](https://aws.amazon.com/s3/pricing/)。

**Topics**
+ [发出的 S3 请求由 DataSync](#create-s3-location-s3-requests-made)
+ [成本注意事项](#create-s3-location-s3-requests-cost)

### 发出的 S3 请求由 DataSync
<a name="create-s3-location-s3-requests-made"></a>

下表描述了您在向 Amazon S3 位置复制数据或从中复制数据时 DataSync 可能发出的 S3 请求。


| S3 请求 | 怎么 DataSync 用 | 
| --- | --- | 
|  [ListObjectV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html)  |  DataSync 对每个以正斜杠 (`/`) 结尾的对象发出至少一个`LIST`请求，以列出以该前缀开头的对象。此请求是在任务的[准备](run-task.md#understand-task-execution-statuses)阶段调用的。  | 
|  [HeadObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html)  | DataSync 在任务的[准备](run-task.md#understand-task-execution-statuses)和[验证](run-task.md#understand-task-execution-statuses)阶段发出检索对象元数据的`HEAD`请求。每个对象可能有多个`HEAD`请求，具体取决于您希望 DataSync 如何[验证其传输的数据的完整性](configure-data-verification-options.md)。 | 
|  [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)  |  DataSync 在任务的[传输](run-task.md#understand-task-execution-statuses)阶段发出从对象读取数据的`GET`请求。对于大型对象可能会发出多个 `GET` 请求。  | 
|  [GetObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html)  |  如果您将任务配置为[复制对象标签](configure-metadata.md)，则会在任务的[准备](run-task.md#understand-task-execution-statuses)和[传输](run-task.md#understand-task-execution-statuses)阶段 DataSync 发出这些`GET`请求以检查对象标签。  | 
|  [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)  |  DataSync 在任务的[传输](run-task.md#understand-task-execution-statuses)阶段，`PUT`请求在目标 S3 存储桶中创建对象和前缀。由于 DataSync 使用 [Amazon S3 分段上传功能](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html)，因此可能会有多个针对大型对象的`PUT`请求。为了最大限度地降低您的存储成本，我们建议您使用[生命周期配置]()来停止未完成的分段上传。  | 
|  [PutObjectTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html)  | 如果您的源对象有标签，并且您将任务配置为[复制对象标签](configure-metadata.md)， DataSync 则在[传输](run-task.md#understand-task-execution-statuses)这些标签时会`PUT`发出这些请求。 | 
|  [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)  |  DataSync 仅当对象的元数据发生变化时，才会`COPY`请求创建该对象的副本。如果您最初使用未保留其元数据的其他服务或工具将数据复制到 S3 存储桶，则可能会发生这种情况。  | 

### 成本注意事项
<a name="create-s3-location-s3-requests-cost"></a>

DataSync 每次运行任务时，都会在 S3 存储桶上发出 S3 请求。在某些情况下，这可能会导致费用增加。例如：
+ 您经常将对象传入或传出 S3 存储桶。
+ 您可能没有传输太多数据，但是您的 S3 存储桶里有很多对象。在这种情况下，您仍然可以看到高额费用，因为 DataSync 对存储桶的每个对象发出 S3 请求。
+ 您在 S3 存储桶之间进行传输，在源存储桶和目标上发出 S3 请求 DataSync 也是如此。

为了帮助最大限度地降低与之相关的 S3 请求成本 DataSync，请考虑以下几点：

**Topics**
+ [我使用的是哪些 S3 存储类别？](#create-s3-location-s3-requests-storage-classes)
+ [我需要多久传输一次数据？](#create-s3-location-s3-requests-recurring-transfers)

#### 我使用的是哪些 S3 存储类别？
<a name="create-s3-location-s3-requests-storage-classes"></a>

S3 请求费用可能因对象使用的 Amazon S3 存储类别而有所不同，特别是对于存储对象的存储类别（例如 S3 Glacier 即时检索、S3 Glacier 灵活检索和 S3 Glacier 深度存档）。

以下是一些使用存储类会影响您的 S3 请求费用的场景 DataSync：
+ 每次运行任务时，都会 DataSync 发出检索对象元数据的`HEAD`请求。即使您没有移动任何对象，这些请求也会产生费用。这些请求对账单的影响程度取决于您的对象使用的存储类别以及 DataSync 扫描的对象数量。
+ 如果您将对象移至 S3 Glacier 即时检索存储类别（直接或通过存储桶生命周期配置），则对该类中对象的请求比其他存储类别中的对象更昂贵。
+ 如果您将 DataSync 任务配置为[验证源位置和目标位置是否完全同步，则](configure-data-verification-options.md)所有存储类别（S3 Glacier 灵活检索和 S3 Glacier Deep Archive Deep Archive 除外）中的每个对象都将`GET`收到请求。
+ 除了 `GET` 请求之外，您还会产生 S3 标准-IA、S3 单区-IA 或 S3 Glacier 即时检索存储类别中的对象的数据检索成本。

有关更多信息，请参阅 [Amazon S3 定价](https://aws.amazon.com/s3/pricing/)。

#### 我需要多久传输一次数据？
<a name="create-s3-location-s3-requests-recurring-transfers"></a>

如果您需要定期移动数据，请考虑一个不会超出所需任务的[时间表](task-scheduling.md)。

您也可以考虑限制传输范围。例如，您可以配置为聚焦 DataSync 于某些前缀中的对象，或者[筛选要传输的数据](filtering.md)。这些选项可以帮助减少每次运行 DataSync 任务时发出的 S3 请求数量。

## Amazon S3 传输的对象注意事项
<a name="create-s3-location-considerations"></a>
+ 如果您要从 S3 存储桶中传输，请使用 [S3 Storage Lens 存储分析功能](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_basics_metrics_recommendations.html)确定要移动的对象数量。
+ 在 S3 存储桶之间传输时，我们建议使用[增强型任务模式](choosing-task-mode.md)，因为您不受 DataSync 任务[配额](datasync-limits.md)的限制。
+ DataSync 可能无法传输名称中包含非标准字符的对象。有关更多信息，请参阅《*Amazon S3 用户指南*》中的[对象键命名指南](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines)。
+  DataSync 与使用[版本控制](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html)的 S3 存储桶一起使用时，请记住以下几点：
  + 传输到 S3 存储桶时，如果在源位置修改了对象，则 DataSync 会创建该对象的新版本。这会导致额外收费。
  + 对象在源存储桶和目标存储桶 IDs 中的版本不同。
  + 只有每个对象的最新版本才会从源存储桶传输。早期版本不会复制到目标。
+ 最初将数据从 S3 存储桶传输到文件系统（例如 NFS 或 Amazon FSx）后，后续运行的同一 DataSync 任务将不包括已修改但大小与第一次传输时大小相同的对象。

## 为 Amazon S3 通用存储桶创建传输位置
<a name="create-s3-location-how-to"></a>

要创建用于传输的位置，您需要一个现有的 S3 通用存储桶。如果还没有存储桶，请参阅[《Amazon S3 用户指南》**](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html)。

**重要**  
在创建位置之前，请确保阅读以下部分：  
[Amazon S3 传输的存储类别注意事项](#using-storage-classes)
[使用时评估 S3 请求成本 DataSync](#create-s3-location-s3-requests)

### 使用控制 DataSync 台
<a name="create-s3-location-how-to-console"></a>

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择 **位置**和 **创建位置**。

1. 对于**位置类型**，选择 **Amazon S3**，然后选择**通用存储桶**。

1. 对于 **S3 URI**，输入或选择要用于相应位置的存储桶和前缀。
**警告**  
DataSync 无法传输前缀以斜杠 (`/`) 开头或包含`//``/./`、或`/../`模式的对象。例如：  
`/photos`
`photos//2006/January`
`photos/./2006/February`
`photos/../2006/March`

1. 对于 **用作目标时的 S3 存储类别**，请选择您希望对象在以 Amazon S3 为传输目标时使用的存储类别。

   有关更多信息，请参阅 [Amazon S3 传输的存储类别注意事项](#using-storage-classes)。

1. 对于 **IAM 角色**，执行以下操作之一：
   + 选择 “**自动生成**” DataSync 以自动创建具有访问 S3 存储桶所需权限的 IAM 角色。

     如果 DataSync 之前为此 S3 存储桶创建了 IAM 角色，则默认情况下会选择该角色。
   + 选择您创建的自定义 IAM 角色。有关更多信息，请参阅 [为创建 IAM 角色 DataSync 以访问您的 Amazon S3 位置](#create-role-manually)。

1. （可选）选择**添加新标签**以标记您的 Amazon S3 位置。

   标签可帮助您管理、筛选和搜索资源。我们建议为您的位置创建一个名称标签。

1. 选择**创建位置**。

### 使用 AWS CLI
<a name="create-location-s3-cli"></a>

1. 复制以下 `create-location-s3` 命令：

   ```
   aws datasync create-location-s3 \
       --s3-bucket-arn 'arn:aws:s3:::amzn-s3-demo-bucket' \
       --s3-storage-class 'your-S3-storage-class' \
       --s3-config 'BucketAccessRoleArn=arn:aws:iam::account-id:role/role-allowing-datasync-operations' \
       --subdirectory /your-prefix-name
   ```

1. 对于 `--s3-bucket-arn`，指定要用作位置的 S3 存储桶的 ARN。

1. 对于 `--s3-storage-class`，指定您希望对象在以 Amazon S3 为传输目标时使用的存储类别。

1. 对于`--s3-config`，请指定 DataSync 需要访问您的存储桶的 IAM 角色的 ARN。

   有关更多信息，请参阅 [为创建 IAM 角色 DataSync 以访问您的 Amazon S3 位置](#create-role-manually)。

1. 对于`--subdirectory`，在 S3 存储桶中指定 DataSync 读取或写入的前缀（取决于存储桶是源位置还是目标位置）。
**警告**  
DataSync 无法传输前缀以斜杠 (`/`) 开头或包含`//``/./`、或`/../`模式的对象。例如：  
`/photos`
`photos//2006/January`
`photos/./2006/February`
`photos/../2006/March`

1. 运行 `create-location-s3` 命令。

   如果命令成功，您将收到一条响应，显示您创建位置的 ARN。例如：

   ```
   {
       "LocationArn": "arn:aws:datasync:us-east-1:111222333444:location/loc-0b3017fc4ba4a2d8d"
   }
   ```

您可以将此位置用作 DataSync 任务的来源或目的地。

## 为 S3 on Outposts 存储桶创建传输位置
<a name="create-s3-location-outposts-how-to"></a>

要创建用于传输的位置，您需要一个现有的 Amazon S3 on Outposts 存储桶。如果还没有存储桶，请参阅[《Amazon S3 on Outposts 用户指南》**](https://docs.aws.amazon.com/AmazonS3/latest/s3-outposts/S3onOutposts.html)。

你还需要一个 DataSync 代理。有关更多信息，请参阅 [在上部署基本模式代理 AWS Outposts](deploy-agents.md#outposts-agent)。

从包含大型数据集（例如数十万或数百万个对象）的 S3 on Outposts 存储桶前缀传输时，您的 DataSync 任务可能会超时。为避免这种情况，可以考虑使用[DataSync 清单](transferring-with-manifest.md)，它允许您指定需要传输的确切对象。

### 使用控制 DataSync 台
<a name="create-s3-location-how-to-console"></a>

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 在左侧导航窗格中，展开**数据传输**，然后选择 **位置**和 **创建位置**。

1. 对于**位置类型**，选择 **Amazon S3**，然后选择 **Outposts 存储桶**。

1. 对于 **S3 存储桶**，请选择一个可以访问 S3 on Outposts 存储桶的 Amazon S3 接入点。

   有关更多信息，请参阅 [https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html)。

1. 对于 **用作目标时的 S3 存储类别**，请选择您希望对象在以 Amazon S3 为传输目标时使用的存储类别。

   有关更多信息，请参阅[Amazon S3 传输的存储类别注意事项](#using-storage-classes)。 DataSync 默认情况下，在 Outposts 上使用亚马逊 S3 的 S3 Outposts 存储类。

1. 对于**代理**，请在 Outpos DataSync t 上指定代理的亚马逊资源名称 (ARN)。

1. 对于**文件夹**，在 S3 存储桶中输入 DataSync 读取或写入的前缀（取决于存储桶是源位置还是目标位置）。
**警告**  
DataSync 无法传输前缀以斜杠 (`/`) 开头或包含`//``/./`、或`/../`模式的对象。例如：  
`/photos`
`photos//2006/January`
`photos/./2006/February`
`photos/../2006/March`

1. 对于 **IAM 角色**，执行以下操作之一：
   + 选择 “**自动生成**” DataSync 以自动创建具有访问 S3 存储桶所需权限的 IAM 角色。

     如果 DataSync 之前为此 S3 存储桶创建了 IAM 角色，则默认情况下会选择该角色。
   + 选择您创建的自定义 IAM 角色。有关更多信息，请参阅 [为创建 IAM 角色 DataSync 以访问您的 Amazon S3 位置](#create-role-manually)。

1. （可选）选择**添加新标签**以标记您的 Amazon S3 位置。

   标签可帮助您管理、筛选和搜索资源。我们建议为您的位置创建一个名称标签。

1. 选择**创建位置**。

### 使用 AWS CLI
<a name="create-location-s3-cli"></a>

1. 复制以下 `create-location-s3` 命令：

   ```
   aws datasync create-location-s3 \
       --s3-bucket-arn 'bucket-access-point' \
       --s3-storage-class 'your-S3-storage-class' \
       --s3-config 'BucketAccessRoleArn=arn:aws:iam::account-id:role/role-allowing-datasync-operations' \
       --subdirectory /your-folder \
       --agent-arns 'arn:aws:datasync:your-region:account-id::agent/agent-agent-id'
   ```

1. 对于 `--s3-bucket-arn`，指定一个可访问 Amazon S3 on Outposts 存储桶的 Amazon S3 接入点。

   有关更多信息，请参阅 [https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html)。

1. 对于 `--s3-storage-class`，指定您希望对象在以 Amazon S3 为传输目标时使用的存储类别。

   有关更多信息，请参阅[Amazon S3 传输的存储类别注意事项](#using-storage-classes)。 DataSync 默认情况下，在 Outposts 上使用 S3 Outposts 存储类作为 S3。

1. 对于`--s3-config`，请指定 DataSync 需要访问您的存储桶的 IAM 角色的 ARN。

   有关更多信息，请参阅 [为创建 IAM 角色 DataSync 以访问您的 Amazon S3 位置](#create-role-manually)。

1. 对于`--subdirectory`，在 S3 存储桶中指定 DataSync 读取或写入的前缀（取决于存储桶是源位置还是目标位置）。
**警告**  
DataSync 无法传输前缀以斜杠 (`/`) 开头或包含`//``/./`、或`/../`模式的对象。例如：  
`/photos`
`photos//2006/January`
`photos/./2006/February`
`photos/../2006/March`

1. 对于`--agent-arns`，请指定前哨基地上 DataSync 特工的 ARN。

1. 运行 `create-location-s3` 命令。

   如果命令成功，您将收到一条响应，显示您创建位置的 ARN。例如：

   ```
   {
       "LocationArn": "arn:aws:datasync:us-east-1:111222333444:location/loc-0b3017fc4ba4a2d8d"
   }
   ```

您可以将此位置用作 DataSync 任务的来源或目的地。

## 亚马逊 S3 跨境传输 AWS 账户
<a name="create-s3-location-cross-transfers"></a>

使用 DataSync，您可以将数据移入或移出[不同 AWS 账户](working-with-locations.md#working-with-locations-across-accounts)的 S3 存储桶。有关更多信息，请参阅以下教程：
+ [将数据从本地存储传输到 Amazon S3 AWS 账户](s3-cross-account-transfer.md)
+ [将数据从亚马逊 S3 传输到亚马逊 S3 AWS 账户](tutorial_s3-s3-cross-account-transfer.md)

## Amazon S3 在商业版和商业版之间转移 AWS GovCloud (US) Regions
<a name="create-s3-location-govcloud"></a>

默认情况下， DataSync 不会在商业版和 S3 存储桶之间进行传输。 AWS GovCloud (US) Regions但您仍然可以在传输中为一个 S3 存储桶创建对象存储位置，从而设置这种传输。无论使用不使用代理，都可以执行这种类型的传输。如果使用代理，必须将任务配置为**基本**模式。要在没有代理的情况下进行传输，就必须使用**增强**模式。

**开始之前**：请确保了解在区域间进行传输的成本影响。有关更多信息，请参阅[AWS DataSync 定价](https://aws.amazon.com/datasync/pricing/)。

**Contents**
+ [提供对您的对象存储位置的存储桶的 DataSync 访问权限](#create-s3-location-govcloud-iam)
+ [创建您的 DataSync 代理（可选）](#create-s3-location-govcloud-create-agent)
+ [为 S3 存储桶创建对象存储位置](#create-s3-location-govcloud-how-to)

### 提供对您的对象存储位置的存储桶的 DataSync 访问权限
<a name="create-s3-location-govcloud-iam"></a>

在为此转移创建对象存储位置时，您必须提供有权访问 DataSync 该位置的 S3 存储桶的 IAM 用户的证书。有关更多信息，请参阅 [所需的权限](#create-s3-location-required-permissions)。

**警告**  
IAM 用户具有长期凭证，这会带来安全风险。为帮助减轻这种风险，我们建议仅向这些用户提供执行任务所需的权限，并在不再需要这些用户时将其移除。

### 创建您的 DataSync 代理（可选）
<a name="create-s3-location-govcloud-create-agent"></a>

如果要使用**基本**模式运行传输，就需要使用代理。由于您要在商业版和之间进行转移 AWS GovCloud (US) Region，因此您可以将 DataSync 代理作为 Amazon EC2 实例部署到其中一个区域。我们建议您的代理使用 VPC 服务端点，以避免将数据传输至公共互联网时产生的费用。有关更多信息，请参阅 [Amazon EC2 数据传输定价](https://aws.amazon.com/ec2/pricing/on-demand/#Data_Transfer)。

选择以下情景之一，描述如何根据您计划运行 DataSync 任务的区域创建代理。

#### 在商业区域运行 DataSync 任务时
<a name="using-datasync-in-commercial"></a>

下图显示了您的 DataSync 任务和代理位于商业区域的转移。

![\[部署在商业区域的 DataSync 代理，用于跨区域传输到中的 S3 存储桶。 AWS GovCloud (US) Region\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/images/s3-task-in-commercial.png)



| 参考 | 说明 | 
| --- | --- | 
| 1 | 在您运行 DataSync任务的商业区域中，数据从源 S3 存储桶传输。源存储桶配置为商业区域中的 [Amazon S3 位置](#create-s3-location-how-to)。 | 
| 2 | 通过代理传输数据， DataSync 代理位于 VPC 服务终端节点和[网络接口所在的 VPC 和子网](required-network-interfaces.md)中。 | 
| 3 | 数据传输至 AWS GovCloud (US) Region中的目标 S3 存储桶。目标存储桶配置为商业区域中的[对象存储位置](#create-s3-location-govcloud-how-to)。 | 

您也可以使用相同的设置将相反的方向从转移 AWS GovCloud (US) Region 到商业区域。

**创建您的 DataSync 代理**

1. 在您的商业区域[部署 Amazon EC2 代理](deploy-agents.md#ec2-deploy-agent-how-to)。

1. 将您的代理配置为使用 [VPC 服务端点](choose-service-endpoint.md#datasync-in-vpc)。

1. [激活您的代理](activate-agent.md)。

#### 在 GovCloud （美国）地区运行 DataSync 任务时
<a name="using-datasync-in-govcloud-1"></a>

下图显示了您的 DataSync 任务和代理所在的转移 AWS GovCloud (US) Region。

![\[部署在 AWS GovCloud (US) Region 或跨区域中的 DataSync 代理传输到同 AWS GovCloud (US) Region一个存储桶中的 S3 存储桶。\]](http://docs.aws.amazon.com/zh_cn/datasync/latest/userguide/images/s3-task-in-govcloud-1.png)



| 参考 | 说明 | 
| --- | --- | 
| 1 | 数据从商业区域的源 S3 存储桶传输到您正在运行 DataSync 任务 AWS GovCloud (US) Region 的地方。源存储桶配置为 AWS GovCloud (US) Region中的[对象存储位置](#create-s3-location-govcloud-how-to)。 | 
| 2 | 在中 AWS GovCloud (US) Region，通过 VPC 服务终端节点和[网络接口所在的同一 VPC 和子网](required-network-interfaces.md)中的 DataSync 代理进行数据传输。 | 
| 3 | 数据传输至 AWS GovCloud (US) Region中的目标 S3 存储桶。目标存储桶被配置为 AWS GovCloud (US) Region中的 [Amazon S3 位置](#create-s3-location-how-to)。 | 

您也可以使用相同的设置将相反的方向从转移 AWS GovCloud (US) Region 到商业区域。

**创建您的 DataSync 代理**

1. 在您的@@ [中部署 Amazon EC2 代理](deploy-agents.md#ec2-deploy-agent-how-to) AWS GovCloud (US) Region。

1. 将您的代理配置为使用 [VPC 服务端点](choose-service-endpoint.md#datasync-in-vpc)。

1. [激活您的代理](activate-agent.md)。

如果您的数据集具有高度可压缩性，您可以在商业区域创建代理，同时在 AWS GovCloud (US) Region运行任务，这样可能会降低成本。与通常情况相比，创建此代理需要进行更多的设置，包括为在商业区域使用代理做好准备。有关为此设置创建代理的信息，请参阅[AWS GovCloud (US) 使用迁入和移出数据 AWS DataSync](https://aws.amazon.com/blogs/publicsector/move-data-in-out-aws-govcloud-datasync/)博客。

### 为 S3 存储桶创建对象存储位置
<a name="create-s3-location-govcloud-how-to"></a>

您需要为未运行 DataSync 任务的区域中的 S3 存储桶设置一个对象存储位置。

#### 使用控制 DataSync 台
<a name="create-s3-location-govcloud-how-to-console"></a>

1. 打开 AWS DataSync 控制台，网址为[https://console.aws.amazon.com/datasync/](https://console.aws.amazon.com/datasync/)。

1. 确保您处于计划运行任务的同一区域。

1. 在左侧导航窗格中，展开**数据传输**，然后选择 **位置**和 **创建位置**。

1. 对于 **位置类型**，选择 **对象存储**。

1. 对于**代理**，请选择您为此转移创建的 DataSync 代理。

1. 对于**服务器**，使用以下格式之一为存储桶输入 Amazon S3 端点：
   + **商业区域存储桶：**`s3.your-region.amazonaws.com`
   + **AWS GovCloud (US) Region 存储桶**：`s3.your-gov-region.amazonaws.com`

   有关 Amazon S3 端点的列表，请参阅 *[AWS 一般参考](https://docs.aws.amazon.com/general/latest/gr/s3.html)*。

1. 对于**存储桶**名称，请输入 S3 存储桶的名称。

1. 对于**文件夹**，在 S3 存储桶中输入 DataSync 读取或写入的前缀（取决于存储桶是源位置还是目标位置）。
**警告**  
DataSync 无法传输前缀以斜杠 (`/`) 开头或包含`//``/./`、或`/../`模式的对象。例如：  
`/photos`
`photos//2006/January`
`photos/./2006/February`
`photos/../2006/March`

1. 选择**需要凭证**，然后执行以下操作：
   + 对于**访问密钥**，输入可以访问存储桶的 [IAM 用户](#create-s3-location-govcloud-iam)的访问密钥。
   + 对于**私有密钥**，输入同一 IAM 用户的私有密钥。

1. （可选）选择 **添加标签**来标记您的位置。

   标签可帮助您管理、筛选和搜索资源。我们建议为您的位置创建一个名称标签。

1. 选择**创建位置**。

#### 使用 AWS CLI
<a name="create-s3-location-govcloud-how-to-cli"></a>

1. 复制以下 `create-location-object-storage` 命令：

   ```
   aws datasync create-location-object-storage \
       --server-hostname s3-endpoint \
       --bucket-name amzn-s3-demo-bucket \
       --agent-arns arn:aws:datasync:your-region:123456789012:agent/agent-01234567890deadfb
   ```

1. 对于 `--server-hostname` 参数，使用以下格式之一，为存储桶指定 Amazon S3 端点：
   + **商业区域存储桶：**`s3.your-region.amazonaws.com`
   + **AWS GovCloud (US) Region 存储桶**：`s3.your-gov-region.amazonaws.com`

   对于端点中的区域，确保指定的区域与计划运行任务的区域相同。

   有关 Amazon S3 端点的列表，请参阅 *[AWS 一般参考](https://docs.aws.amazon.com/general/latest/gr/s3.html)*。

1. 对于 `--bucket-name` 参数，指定 S3 存储桶的名称。

1. 在`--agent-arns`参数中，指定您为此传输创建的 DataSync代理。

1. 对于 `--access-key` 参数，指定可以访问存储桶的 [IAM 用户](#create-s3-location-govcloud-iam)的访问密钥。

1. 对于 `--secret-key` 参数，输入同一 IAM 用户的私有密钥。

1. （可选）在`--subdirectory`参数中，在 S3 存储桶中指定 DataSync 读取或写入的前缀（取决于存储桶是源位置还是目标位置）。
**警告**  
DataSync 无法传输前缀以斜杠 (`/`) 开头或包含`//``/./`、或`/../`模式的对象。例如：  
`/photos`
`photos//2006/January`
`photos/./2006/February`
`photos/../2006/March`

1. （可选）对于 `--tags` 参数，指定代表位置资源标签的键值对。

   标签可帮助您管理、筛选和搜索资源。我们建议为您的位置创建一个名称标签。

1. 运行 `create-location-object-storage` 命令。

   您会收到一条回复，表明您刚刚创建的位置 ARN。

   ```
   {
       "LocationArn": "arn:aws:datasync:us-east-1:123456789012:location/loc-01234567890abcdef"
   }
   ```

您可以将此位置用作 DataSync 任务的来源或目的地。对于此传输中的其他 S3 存储桶，[创建一个 Amazon S3 位置](#create-s3-location-how-to)。

## 后续步骤
<a name="create-s3-location-next-steps"></a>

后续可能采取的一些步骤包括：

1. 如果需要，创建其他位置。有关更多信息，请参阅 [我可以在哪里传输我的数据 AWS DataSync？](working-with-locations.md)。

1. [配置 DataSync 任务设置](task-options.md)，例如要传输哪些文件、如何处理元数据以及其他选项。

1. 为您的 DataSync任务@@ [设定时间表](task-scheduling.md)。

1. 为您的 DataSync 任务@@ [配置监控](monitoring-overview.md)。

1. [开始](run-task.md)任务。