用于将数据传输 Amazon Transfer Family 到 Amazon EFS - Amazon Elastic File System
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

用于将数据传输 Amazon Transfer Family 到 Amazon EFS

Amazon Transfer Family 是一项完全托管的 Amazon 服务,您可以使用它通过以下协议将文件传入和传出 Amazon EFS 文件系统:

  • Secure Shell(SSH)文件传输协议(SFTP)(Amazon Transfer for SFTP)

  • 安全文件传输协议(FTPS)(Amazon Transfer for FTPS)

  • 文件传输协议(FTP)(Amazon Transfer for FTP)

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

使用 Transfer Family 在 Amazon EFS 文件系统中传输数据的核算方式与其他客户端使用量的核算方式相同。有关更多信息,请参阅 吞吐量模式亚马逊 EFS 配额

要了解更多信息 Amazon Transfer Family,请参阅《Amazon Transfer Family 用户指南》

注意

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

Amazon Transfer Family 与 Amazon EFS 一起使用的先决条件

要使用 Transfer Family 访问您的 Amazon EFS 文件系统中的文件,您的配置必须满足以下条件:

  • Transfer Family 服务器和您的 Amazon EFS 文件系统位于同一 Amazon Web Services 区域中。

  • IAM 策略配置为允许访问 Transfer Family 使用的 IAM 角色。有关更多信息,请参阅《Amazon Transfer Family 用户指南》中的创建 IAM 角色和策略

  • (可选)如果 Transfer Family 服务器归其他账户所有,请启用跨账户存取。

配置您的 Amazon EFS 文件系统以供使用 Amazon Transfer Family

配置 Amazon EFS 文件系统以使用 Transfer Family 需要执行以下步骤:

  • 第 1 步。获取分配给 Transfer Family 用户的 POSIX ID 列表。

  • 第 2 步。使用分配给 Transfer Family 用户的 POSIX ID,确保 Transfer Family 用户可以访问文件系统的目录。

  • 第 3 步。配置 IAM 以允许访问 Transfer Family 使用的 IAM 角色。

为 Transfer Family 用户设置文件和目录权限

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

为 Transfer Family 的 POSIX 用户分配文件和目录权限
  1. 连接到 Amazon EC2 实例。Amazon EFS 仅支持通过基于 Linux 的 EC2 实例进行挂载。

  2. 如果 EFS 文件系统尚未挂载在 EC2 实例上,则挂载该文件系统。有关更多信息,请参阅 挂载 EFS 文件系统

  3. 以下示例将在 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
    2. 使用以下命令将 efs/transferFam 组更改为分配给 Transfer Family 用户的 POSIX GID。

      [ec2-user@ip-192-0-2-0 ~]$ sudo chown :1101 efs/transferFam/
    3. 确认更改。

      [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 角色的访问

在 Transfer Family 中,您可以创建基于资源的 IAM 策略和 IAM 角色,用于定义用户对 EFS 文件系统的访问权限。有关更多信息,请参阅《Amazon Transfer Family 用户指南》中的创建 IAM 角色和策略您必须使用 IAM 身份策略或文件系统策略向该 Transfer Family IAM 角色授予对您的 EFS 文件系统的访问权限。

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

{ "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" ] } ] }

有关创建文件系统策略的更多信息,请参阅创建文件系统策略。有关使用基于身份的 IAM 策略管理对 EFS 资源的访问的更多信息,请参阅Amazon EFS 基于身份的策略

配置 Transfer Family 的跨账户存取

如果用于访问您的文件系统的 Transfer Family 服务器属于其他服务器 Amazon Web Services 账户,则必须授予该帐户访问您的文件系统的权限。此外,您的文件系统策略还必须是非公开的。有关阻止对文件系统的公有访问的更多信息,请参阅阻止公众访问 Amazon EFS 文件系统

您可以在文件系统策略中授予对文件系统的不同 Amazon Web Services 账户 访问权限。在 Amazon EFS 控制台中,使用文件系统策略编辑器的 “授予额外权限” 部分来指定您授予的文件系统访问权限 Amazon Web Services 账户 和级别。有关创建或编辑文件系统策略的更多信息,请参阅创建文件系统策略

您可以使用账户 ID 或账户 Amazon 资源名称(ARN)指定账户。有关 ARN 的更多信息,请参阅《IAM 用户指南》中的 IAM ARN

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

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

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

{ "Statement": [ { "Sid": "NFS-client-read-write-via-fsmt", "Effect": "Allow", "Principal": { "AWS": "*" }, "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", "Principal": { "AWS": "*" }, "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" ] } ] }