使用Amazon Transfer Family访问 Amazon EFS 文件系统中的文件 - Amazon Elastic File System
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

使用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 文件系统中传输数据的方式与其他客户端使用相同。有关更多信息,请参阅 吞吐量模式Amazon EFS 配额和限制

要了解有关 Amazon Transfer Family 的更多信息,请参阅 Amazon Transfer Family 用户指南

注意

默认情况下,将 “Transfer Family” 与 Amazon EFS 一起使用Amazon Web Services 账户具有 Amazon EFS 文件系统的策略,这些策略允许公共访问,这些策略是在 2021 年 1 月 6 日之前创建的。要启用 “Transfer Family” 访问您的文件系统,请联系Amazon Web Services Support。

使用 的先决条件Amazon Transfer FamilyAmazon EFS

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

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

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

  • (可选)如果 Transfer Family 服务器由其他帐户拥有,请启用跨账户访问。

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

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

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

  • 步骤 2. 通过使用分配给传输系列用户的 POSIX ID,确保 Transfer Family 用户可以访问您的文件系统的目录。

  • 步驟 3. 配置 IAM 以启用对 Transfer Family 所使用的 IAM 角色的访问。

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

确保 Transfer Family 用户有权访问 EFS 文件系统上所需的文件和目录。使用分配给 Transfer Family 列用户的 POSIX ID 列表为目录分配访问权限。在此示例中,用户创建一个名为transferFamEFS 挂载点下。创建目录是可选的,具体取决于您的用例。如果需要,您可以在 EFS 文件系统中选择它的名称和位置。

向 POSIX 用户分配文件和目录权限以进行 Transfer Family

  1. 连接到您的 Amazon EC2 实例。亚马逊 EFS 仅支持通过基于 Linux 的 EC2 实例进行装载。

  2. 如果 EFS 文件系统尚未挂载到 EC2 实例上,请挂载该 EFS 文件系统。有关更多信息,请参阅挂载 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 策略和用于定义用户对 EFS 文件系统的访问权限的 IAM 角色。有关更多信息,请参阅 。创建 IAM 角色和策略中的Amazon Transfer Family用户指南。您必须使用 IAM 身份策略或文件系统策略授予该 Transfer Family IAM 角色对 EFS 文件系统的访问权限。

以下是授予ClientMount(已读) 和ClientWrite对 IAM 角色的访问EFS-role-for-transfer

{ "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 资源访问的更多信息,请参阅管理对资源的访问

为 Transfer Family 配置跨账户访问

如果用于访问文件系统的传输系列服务器属于不同的Amazon Web Services 账户,则必须授予该帐户对文件系统的访问权限。此外,您的文件系统策略必须是非公共策略。有关阻止对您的文件系统的公有访问的更多信息,请参阅阻止公有访问

您可以授予不同的Amazon Web Services 账户访问文件系统策略中的文件系统。在亚马逊 EFS 控制台中,使用授予其他权限的 部分文件系统策略编辑器指定Amazon Web Services 账户以及要授予的文件系统访问权限级别。有关创建或编辑文件系统策略的更多信息,请参阅创建文件系统策略

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

以下示例是授予对文件系统的跨账户访问权限的非公用文件系统策略。它具有以下两个语句:

  1. 第一个语句是NFS-client-read-write-via-fsmt,向使用文件系统装载目标访问文件系统的 NFS 客户端授予读取、写入和 root 权限。

  2. 第二个语句是Grant-cross-account-access,则仅授予Amazon Web Services 账户111122223333,该帐户拥有需要访问您帐户中此 EFS 文件系统的传输系列服务器的帐户。

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