

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

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

要将数据传输到您的 Amazon EFS 文件系统或从中传输数据，您必须创建一个 AWS DataSync 传输*位置*。 DataSync 可以将此位置用作传输数据的源或目的地。

## 提供 DataSync 对 Amazon EFS 文件系统的访问权限
<a name="create-efs-location-access"></a>

[创建位置](#create-efs-location-how-to)需要了解 DataSync 如何访问您的存储空间。对于 Amazon EFS，使用[网络接口](required-network-interfaces.md)以根用户身份从虚拟私有云 (VPC) DataSync 挂载您的文件系统。

**Contents**
+ [确定挂载目标的子网和安全组](#create-efs-location-mount-target)
+ [访问受限文件系统](#create-efs-location-iam)
  + [为文件系统访问创建 DataSync IAM 角色](#create-efs-location-iam-role)
  + [允许 DataSync 访问的文件系统策略示例](#create-efs-location-iam-policy)

### 确定挂载目标的子网和安全组
<a name="create-efs-location-mount-target"></a>

创建位置时，您可以指定允许连接 DataSync 到 Amazon EFS 文件系统的[挂载目标](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs.html)之一的子网和安全组。

指定的子网必须位于：
+ 文件系统所在的相同 VPC 中。
+ 文件系统至少一个挂载目标所在的相同可用区中。

**注意**  
您无需指定包含文件系统挂载目标的子网。

您指定的安全组必须允许网络文件系统（NFS）端口 2049 上的入站流量。有关为挂载目标创建和更新安全组的信息，请参阅 [https://docs.aws.amazon.com/efs/latest/ug/network-access.html](https://docs.aws.amazon.com/efs/latest/ug/network-access.html)。

**指定与挂载目标相关联的安全组**  
您可以指定与文件系统挂载目标之一相关联的安全组。从网络管理的角度来看，我们推荐这种方法。

**指定与挂载目标无关联的安全组**  
您还可以指定与文件系统的挂载目标无关联的安全组。但是，此安全组必须能够与挂载目标的安全组进行通信。  
例如，您可以通过以下方式在安全组 D（用于 DataSync）和安全组 M（用于挂载目标）之间创建关系：  
+ 您在创建位置时指定的安全组 D 必须具有一条规则，允许 NFS 端口 2049 上与安全组 M 的出站连接。
+ 与挂载目标相关联的安全组 M 必须允许安全组 D 通过 NFS 端口 2049 进行的入站访问。

**查找挂载目标的安全组**

以下说明可以帮助您识别要 DataSync 用于传输的 Amazon EFS 文件系统挂载目标的安全组。

1. 在中 AWS CLI，运行以下`describe-mount-targets`命令。

   ```
   aws efs describe-mount-targets \
       --region file-system-region  \
       --file-system-id file-system-id
   ```

   此命令将返回有关文件系统挂载目标的信息（与以下示例输出类似）。

   ```
   {
       "MountTargets": [
           {
               "OwnerId": "111222333444",
               "MountTargetId": "fsmt-22334a10",
               "FileSystemId": "fs-123456ab",
               "SubnetId": "subnet-f12a0e34",
               "LifeCycleState": "available",
               "IpAddress": "11.222.0.123",
               "NetworkInterfaceId": "eni-1234a044"
           }
       ]
   }
   ```

1. 记下要使用的 `MountTargetId` 值。

1. 使用 `MountTargetId` 运行以下 `describe-mount-target-security-groups` 命令，查看挂载目标的安全组。

   ```
   aws efs describe-mount-target-security-groups \
       --region file-system-region \
       --mount-target-id mount-target-id
   ```

在[创建位置](#create-efs-location-how-to)时，指定此安全组。

### 访问受限文件系统
<a name="create-efs-location-iam"></a>

DataSync 可以与限制通过接入[点和 [IAM 策略](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html)进行访问](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html)的 Amazon EFS 文件系统进行传输或传出。

**注意**  
[如果通过[强制 DataSync 使用用户身份](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html#enforce-identity-access-points)的接入点访问目标文件系统，则如果将 DataSync 任务配置 IDs 为复制所有权，则不会保留源数据的 POSIX 用户和组。](configure-metadata.md)而是将传输的文件和文件夹设置为接入点的用户和群组 IDs。发生这种情况时，任务验证会失败，因为 DataSync 检测到源位置和目标位置的元数据不匹配。

**Contents**
+ [为文件系统访问创建 DataSync IAM 角色](#create-efs-location-iam-role)
+ [允许 DataSync 访问的文件系统策略示例](#create-efs-location-iam-policy)

#### 为文件系统访问创建 DataSync IAM 角色
<a name="create-efs-location-iam-role"></a>

如果您的 Amazon EFS 文件系统通过 IAM 策略限制访问，则可以创建一个 IAM 角色来提供从文件系统读取或写入数据的 DataSync 权限。然后，您可能需要在[文件系统策略](#create-efs-location-iam-policy)中指定该角色。

**创建 DataSync IAM 角色**

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

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

1. 在**选择可信实体**中的**可信实体类型**下，选择**自定义信任策略**。

1. 将以下 JSON 粘贴到策略编辑器中：

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [{
           "Effect": "Allow",
           "Principal": {
               "Service": "datasync.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
       }]
   }
   ```

------

1. 选择**下一步**。在**添加权限**页面上，选择**下一步**。

1. 输入角色名称，然后选择**创建角色**。

请在[创建位置](#create-efs-location-how-to)时指定此角色。

#### 允许 DataSync 访问的文件系统策略示例
<a name="create-efs-location-iam-policy"></a>

以下示例文件系统策略显示了如何限制对 Amazon EFS 文件系统的访问（在策略中标识为`fs-1234567890abcdef0`），但仍允许 DataSync 通过名为的 IAM 角色进行访问`MyDataSyncRole`：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "ExampleEFSFileSystemPolicy",
    "Statement": [{
        "Sid": "AccessEFSFileSystem",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::111122223333:role/MyDataSyncRole"
        },
        "Action": [
            "elasticfilesystem:ClientMount",
            "elasticfilesystem:ClientWrite",
            "elasticfilesystem:ClientRootAccess"
        ],
        "Resource": "arn:aws:elasticfilesystem:us-east-1:111122223333:file-system/fs-1234567890abcdef0",
        "Condition": {
            "Bool": {
                "aws:SecureTransport": "true"
            },
            "StringEquals": {
                "elasticfilesystem:AccessPointArn": "arn:aws:elasticfilesystem:us-east-1:111122223333:access-point/fsap-abcdef01234567890"
            }
        }
    }]
}
```

------
+ `Principal`— 指定一个授予文件系统访问 DataSync 权限的 [IAM 角色](#create-efs-location-iam)。
+ `Action`— 授予 DataSync root 用户访问权限并允许其读取和写入文件系统。
+ `aws:SecureTransport`：要求 NFS 客户端在连接到文件系统时使用 TLS。
+ `elasticfilesystem:AccessPointArn`：仅允许通过特定的接入点访问文件系统。

## Amazon EFS 传输的网络注意事项
<a name="efs-network-considerations"></a>

VPCs 与一起使用的 DataSync 必须具有默认租期。 VPCs 不支持专用租赁。

## Amazon EFS 传输的性能注意事项
<a name="efs-considerations"></a>

Amazon EFS 文件系统的吞吐量模式可能会在传输期间影响传输持续时长和文件系统性能。请考虑以下事项：
+ 为了获得最佳效果，建议使用弹性吞吐量模式。如果不使用弹性吞吐量模式，传输可能需要更长的时间。
+ 如果您使用突增吞吐量模式，则文件系统应用程序的性能可能会受到影响，因为会 DataSync 消耗文件系统的突发积分。
+ 如何[配置 DataSync 以验证传输的数据](configure-data-verification-options.md)可能会影响文件系统的性能和数据访问成本。

有关更多信息，请参阅《Amazon Elastic File System 用户指南》**中的 [Amazon EFS 性能](https://docs.aws.amazon.com/efs/latest/ug/performance.html)，以及 [Amazon EFS 定价](https://aws.amazon.com/efs/pricing/)页面。

## 创建您的 Amazon EFS 传输位置
<a name="create-efs-location-how-to"></a>

要创建传输位置，您需要一个现有的 Amazon EFS 文件系统。如果您还没有 Amazon EFS 文件系统，请参阅《Amazon Elastic File System 用户指南》**中的 [Amazon EFS 入门](https://docs.aws.amazon.com/efs/latest/ug/getting-started.html)。

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

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

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

1. 对于**位置类型**，请选择 **Amazon EFS 文件系统**。

   您可在稍后将此位置配置为源或目标。

1. 对于**文件系统**，选择要用作端点的 Amazon EFS 文件系统。

1. 对于**挂载路径**，输入 Amazon EFS 文件系统的挂载路径。

   这指定了文件系统上 DataSync 读取或写入数据的位置（取决于这是源位置还是目标位置）。

   默认情况下， DataSync 使用根目录（如果您为 **EFS [接入点](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html)设置提供了一个接入点，则使用接入点**）。也可以使用正斜杠指定子目录（例如，`/path/to/directory`）。

1. 对于**子网**，请选择 DataSync 要在其中创建用于管理数据传输流量的[网络接口](required-network-interfaces.md)的子网。

   子网必须位于：
   + 文件系统所在的相同 VPC 中。
   + 与至少一个文件系统挂载目标位于同一可用区中。
**注意**  
您无需指定包含文件系统挂载目标的子网。

1. 对于**安全组**，选择与您的 Amazon EFS 文件系统的挂载目标相关联的安全组。您可以选择多个安全组。
**注意**  
您指定的安全组必须允许 NFS 端口 2049 上的入站流量。有关更多信息，请参阅 [确定挂载目标的子网和安全组](#create-efs-location-mount-target)。

1. 对于**传输中加密**，请选择在 DataSync 向文件系统传输数据或从文件系统传输数据时是否要使用传输层安全 (TLS) 加密。
**注意**  
您必须启用此设置，才能在您的 Amazon EFS 位置配置接入点、IAM 角色或两者。

1. （可选）对于 **EFS 接入点**，请选择 DataSync 可用于装载文件系统的接入点。

   有关更多信息，请参阅 [访问受限文件系统](#create-efs-location-iam)。

1. （可选）对于 **IAM 角色**，请指定 DataSync 允许访问您的文件系统的角色。

   有关创建该角色的信息，请参阅[为文件系统访问创建 DataSync IAM 角色](#create-efs-location-iam-role)。

1. （可选）选择**添加标签**来标记您的文件系统。

   *标签*是帮助您管理、筛选和搜索位置的键值对。

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

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

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

   ```
   aws datasync create-location-efs \
       --efs-filesystem-arn 'arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id' \
       --subdirectory /path/to/your/subdirectory \
       --ec2-config SecurityGroupArns='arn:aws:ec2:region:account-id:security-group/security-group-id',SubnetArn='arn:aws:ec2:region:account-id:subnet/subnet-id' \
       --in-transit-encryption TLS1_2 \
       --access-point-arn 'arn:aws:elasticfilesystem:region:account-id:access-point/access-point-id' \
       --file-system-access-role-arn 'arn:aws:iam::account-id:role/datasync-efs-access-role
   ```

1. 对于 `--efs-filesystem-arn`，指定要向其传输数据或从中传出数据的 Amazon EFS 文件系统的 Amazon 资源名称（ARN）。

1. 对于 `--subdirectory`，指定文件系统的挂载路径。

   这是在文件系统上 DataSync 读取或写入数据的地方（取决于这是源位置还是目标位置）。

   默认情况下， DataSync 使用根目录（或[接入点](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html)，如果您提供了接入点`--access-point-arn`）。也可以使用正斜杠指定子目录（例如，`/path/to/directory`）。

1. 对于 `--ec2-config`，执行以下操作：
   + 对于 `SecurityGroupArns`，指定与文件系统挂载目标相关联的安全组 ARN。您可以指定多个安全组。
**注意**  
您指定的安全组必须允许 NFS 端口 2049 上的入站流量。有关更多信息，请参阅 [确定挂载目标的子网和安全组](#create-efs-location-mount-target)。
   + 对于`SubnetArn`，请指定 DataSync 要在其中创建用于管理数据传输流量的[网络接口](required-network-interfaces.md)的子网的 ARN。

     子网必须位于：
     + 文件系统所在的相同 VPC 中。
     + 与至少一个文件系统挂载目标位于同一可用区中。
**注意**  
您无需指定包含文件系统挂载目标的子网。

1. 对于`--in-transit-encryption`，请指定在传输层安全 (TLS) DataSync 向文件系统传输数据或从文件系统传输数据时是否要使用传输层安全 (TLS) 加密。
**注意**  
您必须将其设置为 `TLS1_2`，才能在您的 Amazon EFS 位置配置接入点、IAM 角色或两者。

1. （可选）对于`--access-point-arn`，请指定 DataSync 可用于挂载文件系统的接入点的 ARN。

   有关更多信息，请参阅 [访问受限文件系统](#create-efs-location-iam)。

1. （可选）对于`--file-system-access-role-arn`，请指定允许 DataSync 访问您的文件系统的 IAM 角色的 ARN。

   有关创建该角色的信息，请参阅[为文件系统访问创建 DataSync IAM 角色](#create-efs-location-iam-role)。

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

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

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