

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

# AWS Transfer Family 用于传输数据
<a name="using-aws-transfer-integration"></a>

AWS Transfer Family 是一项完全托管的 AWS 服务，您可以使用它通过以下协议将文件传入和传出 Amazon EFS 文件系统：
+  Secure Shell（SSH）文件传输协议（SFTP）（AWS Transfer for SFTP）
+ 安全文件传输协议（FTPS）（AWS Transfer for FTPS）
+ 文件传输协议（FTP）（AWS Transfer for FTP）

使用 Transfer Family，您可以安全地让第三方（例如您的供应商、合作伙伴或客户）通过支持的协议在全球范围内大规模访问您的文件，而无需管理任何基础架构。此外，您现在还可以使用 SFTP、FTPS 和 FTP 客户端从 Windows、macOS 和 Linux 环境轻松访问您的 EFS 文件系统。这有助于将数据的可访问性扩展到 NFS 客户端和接入点之外，覆盖多个环境中的用户。

使用 Transfer Family 在 Amazon EFS 文件系统中传输数据的核算方式与其他客户端使用量的核算方式相同。有关更多信息，请参阅[吞吐量模式](performance.md#throughput-modes)和[Amazon EFS 限额](limits.md)。

要了解更多信息 AWS Transfer Family，请参阅《[AWS Transfer Family 用户指南》](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html)。

**注意**  
对于那些拥有 2021 年 1 月 6 日之前创建的 Amazon EF AWS 账户 S 文件系统的允许公开访问的策略，则默认情况下会禁用将 Transfer Family 与 Amazon EFS 配合使用。要允许使用 Transfer Family 访问您的文件系统，请联系 支持。

**Topics**
+ [

## AWS Transfer Family 与 Amazon EFS 一起使用的先决条件
](#prerequisites-aws-transfer)
+ [

## 将 EFS 文件系统配置为 AWS Transfer Family
](#config-efs-aws-transfer-int)

## AWS Transfer Family 与 Amazon EFS 一起使用的先决条件
<a name="prerequisites-aws-transfer"></a>

要使用 Transfer Family 访问您的 Amazon EFS 文件系统中的文件，您的配置必须满足以下条件：
+ Transfer Family 服务器和您的 Amazon EFS 文件系统位于同一 AWS 区域中。
+ Transfer Family 使用的 IAM 角色必须附加 Amazon EFS 权限（例如 `elasticfilesystem:ClientMount` 和 `elasticfilesystem:ClientWrite`）。有关策略和权限的更多信息，请参阅《AWS Transfer Family 用户指南**》中的[创建 IAM 角色和策略](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-roles.html)。
+ （可选）如果 Transfer Family 服务器归其他账户所有，请启用跨账户存取。
  + 确保您的文件系统策略不允许公有访问。有关更多信息，请参阅 [屏蔽对 EFS 文件系统的公共访问权限](access-control-block-public-access.md)。
  + 修改文件系统策略以启用跨账户存取。有关更多信息，请参阅 [配置 Transfer Family 的跨账户存取](#efs-cross-acct-access-transfer)。

## 将 EFS 文件系统配置为 AWS Transfer Family
<a name="config-efs-aws-transfer-int"></a>

配置 Amazon EFS 文件系统以使用 Transfer Family 需要执行以下步骤：
+ **步骤 1：**获取分配给 Transfer Family 用户的 POSIX IDs 列表。
+ **步骤 2：**使用 IDs 分配给 Transfer Family 用户的 POSIX，确保 Transfer Family 用户可以访问文件系统的目录。
+ **第 3 步：**配置 IAM 以允许访问 Transfer Family 使用的 IAM 角色。

### 为 Transfer Family 用户设置文件和目录权限
<a name="efs-access-aws-transfer"></a>

确保 Transfer Family 用户可以访问您的 EFS 文件系统上的必要文件和目录。使用分配给 Transfer Family 用户的 POSIX 列表为目录 IDs 分配访问权限。在此示例中，用户在 Amazon EFS 挂载点下创建一个名为 `transferFam` 的目录。根据您的使用情况，创建目录是可选的。如果需要，您可以在 EFS 文件系统上选择其名称和位置。

**为 Transfer Family 的 POSIX 用户分配文件和目录权限**

1. 连接到 Amazon EC2 实例。Amazon EFS 仅支持通过基于 Linux 的 EC2 实例进行挂载。

1. 如果 EFS 文件系统尚未挂载在 EC2 实例上，则挂载该文件系统。有关更多信息，请参阅 [挂载 EFS 文件系统](mounting-fs.md)。

1. 以下示例将在 EFS 文件系统上创建目录，并将其组更改为 Transfer Family 用户的 POSIX 组 ID，在本示例中为 1101。

   1. 使用以下命令创建目录 `efs/transferFam`。实际上，您可以在所选文件系统上使用名称和位置。

      ```
      [ec2-user@ip-192-0-2-0 ~]$ ls 
      efs  efs-mount-point  efs-mount-point2
      [ec2-user@ip-192-0-2-0 ~]$ ls efs
      [ec2-user@ip-192-0-2-0 ~]$ sudo mkdir efs/transferFam
      [ec2-user@ip-192-0-2-0 ~]$ ls -l efs
      total 0
      drwxr-xr-x 2 root root 6 Jan  6 15:58 transferFam
      ```

   1. 使用以下命令将 `efs/transferFam` 组更改为分配给 Transfer Family 用户的 POSIX GID。

      ```
      [ec2-user@ip-192-0-2-0 ~]$ sudo chown :1101 efs/transferFam/
      ```

   1. 确认更改。

      ```
      [ec2-user@ip-192-0-2-0 ~]$ ls -l efs
      total 0
      drwxr-xr-x 2 root 1101 6 Jan  6 15:58 transferFam
      ```

### 启用对 Transfer Family 使用的 IAM 角色的访问
<a name="configure-iam-transfer-role"></a>

在 Transfer Family 中，您可以创建基于资源的 IAM 策略和 IAM 角色，用于定义用户对 EFS 文件系统的访问权限。有关更多信息，请参阅《AWS Transfer Family 用户指南》中的[创建 IAM 角色和策略](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-roles.html)。**您必须使用 IAM 身份策略或文件系统策略向该 Transfer Family IAM 角色授予对您的 EFS 文件系统的访问权限。

以下是授予 IAM 角色 `EFS-role-for-transfer` `ClientMount`（读取）和 `ClientWrite` 访问权限的文件系统策略示例。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "efs-policy-wizard-8698b356-4212-4d30-901e-ad2030b57762",
    "Statement": [
        {
            "Sid": "Grant-transfer-role-access",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/EFS-role-for-transfer"
            },
            "Action": [
                "elasticfilesystem:ClientWrite",
                "elasticfilesystem:ClientMount"
            ],
            "Resource": "arn:aws:elasticfilesystem:us-east-1:111122223333:file-system/*"
        }
    ]
}
```

------

有关创建文件系统策略的更多信息，请参阅[创建文件系统策略](create-file-system-policy.md)。有关使用基于身份的 IAM 策略管理对 EFS 资源的访问的更多信息，请参阅[Amazon EFS 基于身份的策略](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies)。

### 配置 Transfer Family 的跨账户存取
<a name="efs-cross-acct-access-transfer"></a>

如果用于访问您的文件系统的 Transfer Family 服务器属于其他服务器 AWS 账户，则必须授予该帐户访问您的文件系统的权限。此外，您的文件系统策略还必须是非公开的。有关阻止对文件系统的公有访问的更多信息，请参阅[屏蔽对 EFS 文件系统的公共访问权限](access-control-block-public-access.md)。

您可以在文件系统策略中授予对文件系统的不同 AWS 账户 访问权限。在 Amazon EFS 控制台中，使用**文件系统策略编辑器**的 “**授予额外权限**” 部分来指定您授予的文件系统访问权限 AWS 账户 和级别。有关创建或编辑文件系统策略的更多信息，请参阅[创建文件系统策略](create-file-system-policy.md)。

您可以使用账户 ID 或账户 Amazon 资源名称（ARN）指定账户。有关更多信息 ARNs，请参阅 [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) *用户指南 ARNs中的 IAM*。

以下是一个非公开文件系统策略示例，此策略授予对文件系统的跨账户存取权限。它包含以下两个声明：

1. 第一个声明 `NFS-client-read-write-via-fsmt` 向使用文件系统挂载目标访问文件系统的 NFS 客户端授予读取、写入和根权限。

1. 第二条语句仅授予对 AWS 账户 111122223333 的读写权限，该账户拥有 Transfer Family 服务器，需要在您的账户中访问此 EFS 文件系统。`Grant-cross-account-access`

```
{    
    "Statement": [
        {
            "Sid": "NFS-client-read-write-via-fsmt",
            "Effect": "Allow",
            "Action": [
                "elasticfilesystem:ClientRootAccess",
                "elasticfilesystem:ClientWrite",
                "elasticfilesystem:ClientMount"
            ],
            "Condition": {
                "Bool": {
                    "elasticfilesystem:AccessedViaMountTarget": "true"
                }
            }
        },
        {
            "Sid": "Grant-cross-account-access",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "elasticfilesystem:ClientWrite",
                "elasticfilesystem:ClientMount"
            ]
        }
    ]
}
```

以下文件系统策略添加了一条声明，授予对 Transfer Family 使用的 IAM 角色的访问权限。

```
{
    "Statement": [
        {
            "Sid": "NFS-client-read-write-via-fsmt",
            "Effect": "Allow",
            "Action": [
                "elasticfilesystem:ClientRootAccess",
                "elasticfilesystem:ClientWrite",
                "elasticfilesystem:ClientMount"
            ],
            "Condition": {
                "Bool": {
                    "elasticfilesystem:AccessedViaMountTarget": "true"
                }
            }
        },
        {
            "Sid": "Grant-cross-account-access",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "elasticfilesystem:ClientWrite",
                "elasticfilesystem:ClientMount"
            ]
        },
        {
            "Sid": "Grant-transfer-role-access",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/EFS-role-for-transfer"
            },
            "Action": [
                "elasticfilesystem:ClientWrite",
                "elasticfilesystem:ClientMount"
            ]
        }
    ]
}
```