使用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 文件系统:

  • 安全外壳 (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 账户具有在 2021 年 1 月 6 日之前创建的允许公共访问的策略的 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 角色。有关更多信息,请参阅 。创建 IAM 角色和策略中的Amazon Transfer Family用户指南.

  • (可选)如果 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 列表分配对目录的访问权限。在此示例中,用户创建了一个名为transferFam在 EFS 挂载点之下。创建目录是可选的,具体取决于您的使用案例。如果需要,您可以在 EFS 文件系统上选择它的名称和位置。

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

  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 策略和定义用户对 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 账户在文件系统策略中访问文件系统。在 Amazon EFS 控制台中,使用授予其他权限的 部分文件系统策略编辑器要指定Amazon Web Services 账户以及您授予的文件系统访问权限级别。有关创建或编辑文件系统策略的更多信息,请参阅创建文件系统策略.

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

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

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

  2. 第二个语句,Grant-cross-account-access,仅授予读取和写入权限Amazon Web Services 账户111122223333,这是拥有 Transfer Family 服务器的账户,需要访问您账户中的此 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" ] } ] }