一般性问题

问:什么是 AWS Transfer Family?

答:AWS Transfer Family 为 SFTP、FTPS 和 FTP 直接进出 Amazon S3 或 Amazon EFS 的文件传输提供完全托管式支持。通过维持身份验证、访问和防火墙的现有客户端配置,可以实现文件传输工作流程的无缝迁移、监控和自动化,客户、合作伙伴和内部团队或者其应用程序无需任何更改。

问:什么是 SFTP?

答:SFTP 是指 Secure Shell (SSH) 文件传输协议,一种用于通过 Internet 安全传输数据的网络协议。该协议支持 SSH 的完整安全性和身份验证功能,并且广泛用于多个行业(包括金融服务、医疗保健、媒体和娱乐、零售、广告等)内业务合作伙伴之间的数据交换。

问:什么是 FTP?

答:FTP 是指文件传输协议,一种用于传输数据的网络协议。FTP 针对控制和数据传输使用独立通道。控制通道通常开放至终止或不活动超时,数据通道在传输期间一直活动。FTP 使用明文,不支持流量加密。

问:什么是 FTPS?

答:FTPS 是指 SSL 文件传输协议,是 FTP 的扩展。它使用传输层协议 (TLS) 和安全套接层 (SSL) 密码协议对流量进行加密。FTPS 允许同时或独立地对控制和数据通道连接进行加密。

问:为什么应该使用 AWS Transfer Family?

答:AWS Transfer Family 支持多种企业对企业 (B2B) 文件传输协议,因此可以在利益攸关方、第三方供应商、业务合作伙伴或客户之间轻松安全地交换数据。在不使用 Transfer Family 的情况下,您必须托管和管理自己的文件传输服务,这需要您在运行和管理基础设施、修补服务器、监控正常运行时间和可用性以及制定一次性机制来预置用户和审计用户活动方面进行投入。AWS Transfer Family 为 SFTP、FTPS 和 FTP 提供了完全托管式支持来应对这些挑战,该服务可以减轻您的运营负担,同时为终端用户保留现有的传输工作流程。AWS Transfer Family 的托管文件处理工作流使您能够创建和监控文件传输和数据处理并实现其自动化,且无需维护您自己的代码或基础设施。该服务将传输的数据作为对象存储在 Amazon S3 存储桶中,或者作为文件存储在 Amazon EFS 文件系统中,因此您可以从数据湖内的这些文件中提取价值,或将其用于客户关系管理 (CRM) 或企业资源规划 (ERP) 工作流程,也可以用于在 AWS 中归档。

问:使用 AWS Transfer Family 有哪些好处?

答:AWS Transfer Family 为您提供完全托管、高度可用的文件传输服务,其中包含自动扩展功能,无需您亲自管理文件传输相关基础设施。您的最终用户的工作流程将保持不变,同时上传和下载的数据将存储在 Amazon S3 存储桶或 Amazon EFS 文件系统中。现在,通过将数据存储在 AWS 中,您可以在满足合规性要求的环境中轻松地将其与各种 AWS 服务配合使用,以支持数据处理、内容管理、分析、机器学习和存档。

问:如何使用 AWS Transfer Family?

答:只需 3 个简单步骤,您就可以为 SFTP、FTPS 和/或 FTP 启用始终可用的服务器终端节点。首先,选择您希望最终用户连接至终端节点的协议。随后,使用 Transfer Family 的内置身份验证管理器(服务托管)或 Microsoft Active Directory (AD) 来配置用户访问权限,也可以通过集成您自己或第三方的身份提供程序(例如 Okta 或 Microsoft AzureAD [“BYO”身份验证])来执行此操作。最后,选择服务器,以访问 S3 存储桶或 EFS 文件系统。启用协议、身份提供程序和对文件系统的访问后,您的用户可以继续使用其现有的 SFTP、FTPS 或 FTP 客户端和配置,同时将访问的数据存储在所选文件系统中。 

问:SFTP 与 FTPS 之间有何区别? 我应该使用哪种服务,何时使用?

答:FTPS 和 SFTP 都可用于安全传输。由于是不同的协议,两者使用不同的客户端和技术来提供安全隧道,用于传输命令和数据。SFTP 是较新的协议,针对命令和数据使用单一通道,所需的端口少于 FTPS。

问:我的用户能否继续使用现有的文件传输客户端和应用程序?

答:可以,只要为所选协议启用了终端节点,任何现有文件传输客户端应用程序可继续使用。常用的客户端示例包括 WinSCP、FileZilla、CyberDuck、lftp 和 OpenSSH 客户端。 

问:是否可以使用 CloudFormation 自动部署服务器和用户?

答:可以。您可以部署 CloudFormation 模板来自动创建 SFTP 服务器和用户,或与身份提供商集成。请参阅使用指南,以在 CloudFormation 模板中使用 AWS Transfer 资源

问:使用此服务时,我的用户能否使用 SCP、HTTPS 或 AS2 传输文件?

答:不可以,您的用户需要使用 SFTP、FTPS 或 FTP 传输文件。大部分文件传输客户端将这两种协议作为选项,身份验证期间需要选择其中一项。请通过 AWS Support 或您的 AWS 客户团队告知您希望获得支持的任何特定协议。

服务器终端节点选项

问:能否使用公司域名 (sftp.mycompanyname.com) 访问我的 SFTP 终端节点?

答:可以。如果您已有域名,则可以使用 Amazon Route 53 或任意 DNS 服务将用户的流量从已注册域路由到 AWS 中的服务器终端节点。请参阅有关 AWS Transfer Family 如何使用 Amazon Route 53 自定义域名的文档(仅适用于面向互联网的端点)。

问:如果我没有域名,还可以使用此服务吗?

答:可以,如果您没有域名,则用户可以使用服务提供的主机名访问终端节点。或者,您可以使用 Amazon Route 53 控制台或 API 注册新域,并将流量从此新域路由到服务提供的终端节点主机名。

问:能否使用已有公有区域的域?

答:可以,您将需要为该域设置别名并指向服务提供的终端节点主机名。

问:是否可以将服务器设置为仅可访问我的 VPC 中的资源?

答:可以。创建服务器或更新现有服务器时,可以选择指定通过公共互联网访问终端节点还是在 VPC 内部托管终端节点。通过将 VPC 托管终端节点用于服务器,您可以将其设置为只能由同一 VPC 、您指定的其他 VPC 或使用扩展 VPC 的网络技术(如 AWS Direct Connect、AWS VPN 或 VPC 对等)的本地环境中的客户端访问。您可以利用子网网络访问控制列表 (NACL) 或安全组进一步限制对 VPC 的特定子网中的资源的访问。有关详细信息,请参阅有关使用 AWS PrivateLink 在 VPC 内创建服务器端点的文档。

问:FTP 能够用于面向互联网的终端节点?

答:不可以,启用 FTP 后,您只能使用 VPC 托管的终端节点的内部访问选项。如果流量需要跨越公共网络,应使用 SFTP 或 FTPS 等安全协议。

问:需要使用 FTP 在公有互联网上进行传输,怎么办?

答:该服务不允许在公有网络上使用 FTP,因为您创建用于 FTP 的服务器时,服务器端点仅可访问您的 VPC 内的资源。如果需要使用 FTP 在公有互联网上交换数据,您可以为服务器的 VPC 端点配置面向互联网的网络负载均衡器 (NLB)。 要支持可能无法使用此配置的 FTP 客户端,请在 PASV 模式下使用您的服务器。

问:能否在无 VPC 的情况下使用 FTP?

答:不可以,托管 FTP 服务器终端节点需要 VPC。请参阅 CloudFormation 模板的文档,了解如何自动创建 VPC 资源以在服务器创建期间托管终端节点。

问:我的最终用户是否可以使用固定 IP 地址在其防火墙内建立我的服务器终端节点的访问白名单?

答:可以。您可以为自己的服务器选择 VPC 托管终端节点并选择面向互联网的选项,为您的服务器终端节点启用固定 IP。这样您就可以直接将弹性 IP(包括 BYO IP)连接至终端节点,将其分配为终端节点的 IP 地址。请参阅文档:在 VPC 内创建服务器端点中关于创建面向互联网的端点部分。

问:我是否可以按终端用户的源 IP 地址限制传入流量?

答:可以。您有三种方法来按用户的源 IP 地址限制传入流量。如果您在 VPC 内托管您的服务器端点,请参阅有关使用安全组允许列出源 IP 地址或使用 AWS Network Firewall 服务的博客文章。如果您使用公有 EndpointType 传输服务器和 API Gateway 来集成身份管理系统,则还可以使用 AWS WAF 允许、阻止终端用户的源 IP 地址访问或设置速率限制。

问:我可以在共享 VPC 环境中托管服务器的端点吗?

答:可以。您可以使用诸如 AWS Landing Zone 之类的工具对共享 VPC 环境(通常在对 AWS 环境分段时使用)部署服务器终端节点,以提高安全性、成本监控能力和可扩展性。请参阅此博客文章,了解如何在具有 AWS Transfer Family 的共享 VPC 环境中使用 VPC 托管端点

问:如何访问外部 SFTP 或 FTPS 网站中存储的文件?

答:请参阅有关使用 AWS Fargate 连接到外部 SFTP/FTPS 站点并使用 AWS Transfer Family 访问您数据的博客文章。如果您正在寻找用于连接到外部站点的完全托管的解决方案,请通过 AWS Support 或您的 AWS 客户团队与我们联系。

问:如何为位置偏远的终端用户改善文件传输的性能?

答:您可以将 AWS Global Accelerator 与传输服务器端点结合使用,以优化文件传输吞吐量和往返时间。请参阅这篇博客文章,了解更多信息。

问:我可以选择终端用户的客户端连接到服务器端点时要使用的加密算法吗?

答:可以。根据您的安全性和合规性要求,您可以从以下三种安全策略中选择一项来控制用于公开您的服务器终端节点的加密算法:Transfer-Security-Policy-2018-11(默认)、Transfer-Security-Policy-2020-06(严格 – 没有 SHA-1 算法)和 Transfer-FIPS-2020-06(符合 FIPS 要求的算法)。当最终用户的文件传输客户端尝试连接服务器时,将仅使用安全政策中指定的算法来协商连接。请参阅有关预定义安全策略的文档

问:我的最终用户是否可以使用固定 IP 地址访问终端节点类型为 PUBLIC 的服务器?

答:不能。目前 PUBLIC 终端节点类型上不支持通常用于防火墙白名单目的的固定 IP 地址。 使用 VPC 托管的终端节点为您的终端节点分配静态 IP 地址。

问:为了访问我的 SFTP 服务器的“公共”类型的终端节点,我的最终用户需要将哪些 IP 地址范围列入白名单?

答:如果您使用的是“公有”端点类型,您的用户需要将此处发布的 AWS IP 地址范围加入白名单。有关 AWS IP 地址范围的最新详情,请参阅相应文档。

问:创建服务器后,我的 AWS Transfer for SFTP 服务器的主机密钥是否会发生更改?

答:不会。服务器主机密钥在您创建服务器时分配给您,除非您将其删除并创建新密钥,否则主机密钥始终不变。

问:我能否从当前的 SFTP 服务器中导入密钥,使用户不必重新验证会话信息?

答:可以。您可以在创建新服务器或更新现有服务器时提供 RSA 主机密钥。最终用户的客户端将使用此密钥来标识您的服务器。请参阅有关使用 AWS CLI/软件开发工具包上载服务器的主机密钥的文档

问:我的最终用户的 FTP 客户端如何验证我的 FTPS 服务器的身份?

答:启用 FTPS 访问后,您需要提供 Amazon Certificate Manager (ACM) 证书。此证书由您的最终用户客户端用于验证您的 FTPS 服务器的身份。参阅 ACM 文档中的请求新证书将现有证书导入 ACM

问:是否支持 FTPS 和 FTP 的主动和被动模式?

答:我们仅支持被动模式,允许您的最终用户客户端启动与您的服务器的连接。被动模式需要的客户端端口更少,服务器终端节点与受保护防火墙后方的最终用户更兼容。

问:是否支持显式和隐式 FTPS 模式?

答:我们仅支持显式 FTPS 模式。

问:如果在客户端和服务器之间配置了防火墙或路由器,还可以通过 FTPS/FTP 协议传输文件吗?

答:可以。默认情况下,使用扩展被动连接模式 (EPSV) 支持穿越防火墙或路由器的文件传输。如果您使用的是不支持 EPSV 模式的 FTPS/FTP 客户端,请访问此博客文章以在 PASV 模式下配置您的服务器,从而扩展您的服务器对各种客户端的兼容性。

多协议访问

问:可否在同一个端点上启用多个协议?

可以。设置过程中,您可以选择您希望客户端连接至端点的协议。服务器主机名和身份提供商在选定协议间共享。同样,您也可以将 FTP/FTPS 支持添加至现有 AWS Transfer for SFTP 服务器终端节点,只要该终端节点托管于您的 VPC 内并且您正在使用自定义身份提供商。

问:何时为每个协议创建单独的服务器终端节点,何时为多个协议启用同一个终端节点?

答:需要使用 FTP(仅 VPC 内的访问支持)并且还需要通过互联网支持 SFTP 或 FTPS 时,FTP 就需要单独的服务器终端节点。希望为通过多个协议连接的客户端使用相同的终端节点主机名和 IP 地址时,您可以为多个协议使用同一个终端节点。此外,如果希望为 SFTP 和 FTPS 共享相同凭证,可以设置和使用单个身份提供商,以便验证通过任意协议连接的客户端。

问:可否将相同最终用户设置为通过多个协议访问终端节点?

答:可以,您可以通过多个协议提供相同用户访问,只要在您的身份提供商中设置了特定于协议的凭证。如果已经启用 FTP,我们建议维持 FTP 的单独凭证。请参阅为 FTP 设置单独凭证的文档。

问:为什么应该为 FTP 用户维持单独凭证?

答:不同于 SFTP 和 FTPS,FTP 以明文传输凭证。我们建议隔离 FTP 凭证与 SFTP 或 FTPS,这样即使 FTP 凭证被无意间共享或暴露,使用 SFTP 或 FTPS 的工作负载仍然是安全的。

问:我的用户可以使用浏览器访问 AWS Transfer Family SFTP 端点吗?

答:可以,您可以部署此开源解决方案,从而使用 AWS Transfer Family 的 SFTP 端点提供基于浏览器的界面。

身份提供程序选项

问:此服务支持哪些身份提供程序选项?

答:此服务支持三种身份提供程序选项:服务托管型,用户身份存储在服务内;Microsoft Active Directory;以及自定义选项 (BYO),允许集成您选择的身份提供程序。仅启用 SFTP 的服务器终端节点支持服务托管型身份验证。

问:如何使用服务托管型身份验证对用户进行身份验证?

答:对于服务托管型身份验证,您可以使用 SSH 密钥对 SFTP 用户进行身份验证。

问:每位 SFTP 用户可以上传多少 SSH 密钥?

答:每位用户可以上传最多 10 个 SSH 密钥。

问:服务托管型身份验证是否支持 SSH 密钥轮换?

答:可以。请参阅本文档,了解有关如何为 SFTP 用户设置密钥轮换的详细信息。

问:能否将服务托管型选项用于密码身份验证?

答:不能。当前不支持在服务中存储密码进行身份验证。如果您需要密码身份验证,请在 AWS Directory Service 中选择一个目录以使用 Active Directory,或者使用使用 Secrets Manager 启用密码身份验证这篇博客文章中介绍的架构

问:如何开始使用 Microsoft AD?

答:当您创建自己的服务器时,您需要在 AWS 托管的 Microsoft AD、您的本地环境或者 Amazon EC2 中自行管理的 AD 中选择一个目录作为您的身份提供程序。随后,您需要使用安全标识符 (SID) 指定允许访问的 AD 组。将您的 AD 组与访问控制信息(例如 IAM 角色、范围缩小策略 [仅 S3]、POSIX 配置文件 [仅 EFS]、主目录位置和逻辑目录映射)关联之后,组成员即可使用他们的 AD 凭证进行身份验证,并通过所启用的协议(SFTP、FTPS、FTP)来传输文件。

问:如何设置我的 AD 用户,以使他们对我的 S3 存储桶的不同部分拥有隔离的访问权限?

答:当您设置用户时,需要提供一个范围缩小策略,系统会在运行时根据您的用户的信息(例如他们的用户名)来评估此策略。您可以对所有用户使用同一个范围缩小策略,以根据用户的用户名为他们提供对于您存储桶中的唯一前缀的访问权限。此外,也可以提供一个标准化模板,以说明如何让您的 S3 存储桶或 EFS 文件系统的内容对您的用户可见,从而使用用户名来评估逻辑目录映射。请访问此文档,以便为 AD 组授予权限。

问:我能否将 Microsoft AD 用作所支持的全部协议的一个身份提供程序选项?

答:可以,对于通过 SFTP、FTPS 和 FTP 进行的访问,您可以使用 Microsoft AD 来验证用户身份。

问:我能否为所启用的 AD 组撤销访问权限?

答:可以,您可以为个别 AD 组撤销文件传输访问权限。撤销之后,AD 组的成员将无法使用他们的 AD 凭证来传输文件。

问:我能否为个别 AD 用户或者一个目录中的所有用户授予访问权限?

答:不能,我们只支持按 AD 组设置访问权限。

问:我能否使用 AD 对使用 SSH 密钥的用户进行身份验证?

答:不能,为 Microsoft AD 提供的 AWS Transfer Family 支持只能用于基于密码的身份验证。要使用多种身份验证模式的组合,请使用自定义授权方选项。

问:为什么应该使用自定义身份验证模式?

答:自定义模式(“BYO”身份验证)可让您充分利用现有的身份提供程序来管理所有协议类型(SFTP、FTPS 和 FTP)的终端用户,轻松实现用户无缝迁移。凭证可存储在企业目录或内部身份数据存储中,经过集成可用于终端用户身份验证目的。身份提供程序的示例包括 Okta、Microsoft AzureAD 或者您在对门户进行整体预置时可以使用的任何定制身份提供程序。

问:如何开始集成现有身份提供商进行用户身份验证?

答:首先,可以使用使用指南中的 AWS CloudFormation 模板并提供用户身份验证和访问的必要信息。请访问有关自定义身份提供商的网站,了解更多信息。

问:通过自定义身份提供商设置我的用户时,需要使用什么信息来启用对用户的访问?

答:您的用户需要提供用于进行身份验证的用户名和密码(或 SSH 密钥),对存储桶的访问权限由 API 网关提供的 AWS IAM 角色和用于查询身份提供商的 Lambda 决定。您还需要提供主目录信息,建议您将它们锁定在指定的主文件夹中,以提高安全性和可用性。请参阅此博客文章,了解如何在将自定义身份提供商与 AWS SFTP 结合使用时简化最终用户的体验。

问:是否支持匿名用户?

答:不支持,目前不支持任何协议的匿名用户。

文章上载流程的托管工作流

问:文章上载流程的托管工作流是怎样的?

答:AWS Transfer Family 对托管工作流的支持使您可以更轻松地创建、执行和监控通过 SFTP、FTPS 和 FTP 进行文件传输的上载后处理。使用此功能,您可以通过低水平的代码自动化来协调所有必要的任务,例如复制和标记,从而节省时间。您还可以自定义扫描 PII、病毒/恶意软件或其他错误(例如不正确的文件格式或类型),使您能够快速检测异常并满足合规性要求。

问:为什么要使用托管工作流?

答:当通过需要预处理的可用 AWS Transfer Family 协议(SFTP、FTPS、FTP)之一与您的业务合作伙伴交换数据时,您必须配置多项设置,包括设置基础设施,以在文件到达时运行自定义代码;编写您自己的标记和复制功能;持续监控运行时出现的错误和异常;并确保对数据的所有更改和转换都得到审核和记录。此外,您需要考虑技术和业务方面的错误情况,同时确保正确触发故障保护模式。如果您对可追溯性有要求,则需要在数据沿工作流程的不同组件传递时跟踪数据的沿袭。维护和管理这些类型的工作流需要时间,让您无法专注于可以为业务而做的差异化工作。借助 AWS Transfer Family 托管的工作流程,这些繁琐的任务将完全不再需要您费心。

问:使用工作流有哪些好处?

AWS Transfer Family 的托管工作流可帮助您可以编排常见的文件处理步骤,例如复制和标记,而无需承担管理自定义代码和基础设施的开销。此外,AWS Transfer Family 的托管工作流允许您使用 AWS Lambda 为恶意软件扫描和文件类型兼容性检查等用例提供自己的文件处理逻辑,使您能够在将数据提供给数据分析管道之前轻松地对其进行预处理。您可以使用 AWS Transfer Family 管理控制台和 Amazon CloudWatch 日志全面了解您的工作流执行情况,获得强大的监控和提示系统。 

问:如何开始使用工作流?

答:首先,将您的工作流设置为包含复制、标记等一系列操作,这些操作可以根据您的要求在一系列步骤中包含您自己的自定义步骤。接下来,将工作流映射到服务器,以便在文件到达时,实时评估和触发此工作流中指定的操作。有关更多详细信息,请参阅文档

问:多个服务器是否可以使用相同的工作流设置?

答:可以。可以将相同的工作流分配给多个服务器,这样您可以更轻松地维护和标准化配置。

问:使用工作流可以对自己的文件执行哪些操作?

答:传输服务器从客户端接收文件后,可以使用以下常见操作:

  • 将数据从到达的位置移动或复制到需要使用的位置。
  • 根据文件内容标记文件,以便下游服务对其进行索引和搜索(仅限 S3)
  • 通过提供您自己的 Lambda 函数作为工作流的自定义步骤来设置任何自定义文件处理逻辑。例如,在将文件摄取到数据分析之前,检查文件类型的兼容性、扫描文件中的恶意软件以及提取元数据。

问:如何查看工作流的状态?

答:使用 AWS 管理控制台,您可以搜索和查看正在进行的工作流执行的实时状态。您服务器的 CloudWatch logs 也会提供已完成执行的详细信息。

问:我会收到什么类型的通知?

答:您可以使用自定义处理器步骤触发对 EventBridge 的通知,并在文件完成处理时收到通知。此外,您还可以使用来自 Lambda 执行的 CloudWatch Logs 来获取通知。

问:我正在使用 AWS Step Functions 来编排我的文件处理步骤。AWS Transfer Family 的托管工作流程与我当前的 AWS Step Functions 设置有何不同?

答:AWS Step Functions 是一项无服务器编排服务,可让您将 AWS Lambda 与其他服务结合起来,以简单的步骤定义业务应用程序的执行。要使用 AWS Step Functions 执行文件处理步骤,您可以使用 AWS Lambda 函数和 Amazon S3 的事件触发器来组合您自己的工作流。托管工作流提供了一个框架来轻松编排线性处理序列,并通过以下方式获得不同于现有解决方案的差异化特性:1) 只有完整文件上载会触发工作流执行,2) 工作流可以自动触发 S3 和 EFS(这 不提供上载后事件),并且 3) 客户可以在 CloudWatch 日志中端到端地了解他们的文件传输和处理。

问:如果文件验证检查失败,我可以发送通知吗?

答:可以。如果针对预配置的验证步骤的文件验证检查失败,您可以使用异常处理程序调用您的监控系统,或者通过 Amazon SNS 主题求助团队成员。

问:我可以在用户下载时触发工作流操作吗?

答:不能。只能在文件到达时使用入站端点调用处理。

问:我可以在会话中让成批文件触发相同的工作流吗?

答:不可以。

问:在部分上载时可以触发工作流吗?

答:不可以。只有完成和完整的文件上载才会触发工作流处理。

Amazon S3 访问

问:为什么需要提供 AWS IAM 角色?如何使用?

答:AWS IAM 用于确定您想提供给用户的访问级别。这包括您想在他们的客户端启用哪些操作,以及他们有权访问哪些 Amazon S3 存储桶(无论是整个还是部分存储桶)。

问:为什么我需要提供主目录信息?如何使用?

答:您为用户设置的主目录决定了他们的登录目录。这是用户客户端放置用户的目录路径,只要用户成功通过身份验证进入服务器。您需要确保所提供的 IAM 角色为用户提供了主目录的访问权限。

问:我有数百名用户拥有相似的访问设置,但是这些设置分别针对存储桶的不同部分。能否使用相同的 IAM 角色和策略进行设置以授予他们访问权限?

答:是。您可以为所有用户分配单个 IAM 角色,并使用逻辑目录映射,指定希望哪些绝对 Amazon S3 存储桶路径对最终用户可见,以及客户端如何将这些路径展示给最终用户。访问此博客,了解如何使用 Chroot 和逻辑目录简化您的 AWS SFTP/FTPS/FTP 结构

问:如何在使用 AWS SFTP 传输的 Amazon S3 存储桶中存储文件?

答:通过受支持协议的文件作为对象存储在 Amazon S3 存储桶中,并且文件和对象之间是一对一映射关系,从而使您能够使用 AWS 处理或分析服务对这些对象进行本机访问。

问:存储桶中存储的 Amazon S3 对象如何向用户显示?

答:成功进行身份验证后,此服务根据用户凭证将 Amazon S3 对象和文件夹作为文件和目录展示给用户的传输应用程序。

问:服务支持哪些文件操作? 不支持哪些操作?

答:支持创建、阅读、更新和删除文件和目录的常见命令。文件作为单独的对象存储在 Amazon S3 存储桶中。目录使用与 S3 控制台相同的语法,作为文件夹对象托管在 S3 中。

当前不支持目录重命名操作、附加操作、所有权、权限和时间戳的更改,以及符号链接和硬链接的使用。

是否可以控制允许用户执行的操作?

答:可以,您可以使用映射到用户名的 AWS IAM 角色启用/禁用文件操作。请参阅文档中的创建 IAM 政策和角色来控制终端用户的访问

问:我是否可以为我的最终用户提供多个 Amazon S3 存储桶的访问权限?

答:可以。您的用户可以访问的存储桶取决于 AWS IAM 角色以及您为该用户分配的可选范围限制策略。您只能使用单个存储桶作为用户的主目录。

问:是否可以使用 AWS 账户 A 创建服务器并将我的用户映射到 AWS 账户 B 拥有的 Amazon S3 存储桶?

答:可以。您可以使用 CLI 和 API 在服务器和希望用于存储通过受支持协议传输的文件的存储桶之间设置跨帐户访问。控制台下拉列表仅列出帐户 A 中的存储桶。此外,您需要确保分配给用户的角色属于帐户 A。

问:能否在文件上载到 Amazon S3 后自动处理文件?

答:可以,在您的文件上载到 Amazon S3 之后,您可以使用 AWS Transfer Family 的托管工作流来创建、自动化和监控文件处理。使用托管工作流,您可以在将文件摄取到数据分析和处理系统之前对其进行预处理,而无需承担管理自定义代码和基础设施的开销。 请参阅此文档了解关于 AWS Transfer Family 托管工作流的更多信息。

问:我可否根据上载文件的用户自定义处理规则?

答:可以。用户上传文件后,用户名和用于上传的服务器的服务器 ID 作为相关联 S3 对象元数据的一部分被存储。您可以使用此信息执行上传后处理工作。 有关用于上载后处理工作的信息,请参阅文档。

Amazon EFS 访问

问:如何设置 EFS 文件系统以与 AWS Transfer Family 一起使用?

答:在设置 AWS Transfer Family 以与 Amazon EFS 文件系统一起使用之前,您将需要使用计划分配给您的 AWS Transfer Family 用户的相同 POSIX 身份(用户 ID/组 ID)来设置文件和文件夹的所有权。此外,如果要访问其他账户中的文件系统,则还必须在文件系统上配置资源策略以启用跨账户访问。

问:如何为用户提供向文件系统上传文件/从文件系统下载文件的权限?

答:Amazon EFS 使用 POSIX ID(包括操作系统用户 ID、组 ID和辅助组 ID)来控制对文件系统的访问。在 AWS Transfer Family 控制台/CLI/API 中设置用户时,您需要指定用户名、用户的 POSIX 配置和 IAM 角色来访问 EFS 文件系统。您还需要指定一个 EFS 文件系统 ID,还可以根据需要指定该文件系统中的目录作为用户的登录目录。当您的 AWS Transfer Family 用户成功通过使用其文件传输客户端的身份验证时,他们将被直接置于指定主目录或指定 EFS 文件系统的根目录中。他们的操作系统 POSIX ID 将应用于通过其文件传输客户端发出的所有请求。作为 EFS 管理员,您需要确保希望您的 AWS Transfer Family 用户访问的文件和目录归其 EFS 文件系统中对应的 POSIX ID 所有。请参阅文档以了解有关在 EFS 中配置子目录所有权的更多信息

问:如何通过存储在我的 Amazon EFS 文件系统中的协议传输文件?

答:通过启用的协议传输的文件直接存储在您的 Amazon EFS 文件系统中,并且可以通过标准文件系统界面或可以访问 Amazon EFS 文件系统的 AWS 服务进行访问。

问:使用 Amazon S3 和 Amazon EFS 时,协议支持哪些文件操作?

答:支持创建、读取、更新和删除文件、目录和符号链接的 SFTP/FTPS/FTP 命令。有关 EFS 和 S3 的支持命令,请参阅下表。

命令 Amazon S3 Amazon EFS
     cd 支持 支持
     ls/dir 支持 支持
     pwd 支持 支持
     put 支持 支持
     get 支持 支持,包括解析符号链接和硬链接
     rename 支持1 支持
     chown 不支持 支持2
     chmod 不支持 支持2
     chgrp 不支持 支持3
     ln -s/symlink 不支持 支持
     mkdir 支持 支持
     rm/delete 支持 支持
     rmdir 支持4 支持
     chmtime 不支持 支持

1 仅支持重命名文件。不支持重命名目录和文件以覆盖现有文件。

2 只有根用户,即 uid=0 的用户才能更改文件和目录的所有权和权限。

3 支持根用户,即 uid=0 的用户或文件所有者,他们只能将文件组更改为其次要组之一。

4 仅支持非空文件夹。

问:如何控制用户可以访问哪些文件和文件夹以及允许和禁止执行哪些操作?

答:您为 AWS Transfer Family 用户提供的 IAM 策略确定他们是否对文件系统具有只读、读写和根访问权限。此外,作为文件系统管理员,您可以使用其用户 ID 和组 ID 设置所有权并授权访问文件系统中的文件和目录。这适用于用户,无论他们存储在服务中(服务托管)还是在身份管理系统中(“BYO 身份验证”)。

问:我可以限制每个用户访问文件系统中的不同目录,并且仅访问那些目录中的文件吗?

答:可以,在设置用户时,可以为每个用户指定不同的文件系统和目录。成功通过身份认证后,EFS 将为使用已启用协议提出的每个文件系统请求强制指定一个目录。

问:我可以隐藏文件系统的名称以免暴露给用户吗?

答:可以,使用 AWS Transfer Family 的逻辑目录映射,您可以通过将绝对路径映射到最终用户可见的路径名来限制最终用户在文件系统中的目录视图。这还包括能够将用户“chroot”到其指定的主目录。

问:是否支持符号链接?

答:是的,如果您的用户可以访问的目录中存在符号链接,而您的用户尝试访问它们,则这些链接将被解析为其目标。当您使用逻辑目录映射来设置用户的访问权限时,不支持符号链接。

问:我可以为单个 SFTP/FTPS/FTP 用户提供对多个文件系统的访问权限吗?

答:可以,在设置 AWS Transfer Family 用户时,您可以在您提供的 IAM 策略中指定一个或多个文件系统,作为用户设置的一部分,以授予对多个文件系统的访问权限。

问:我可以使用哪些操作系统通过 AWS Transfer Family 访问我的 EFS 文件系统?

答:您可以使用为 Microsoft Windows、Linux、macOS 或任何支持 SFTP/FTPS/FTP 的操作系统而构建的客户端和应用程序上传和访问存储在 EFS 文件系统中的文件。只需配置对 EFS 文件系统具有适当权限的服务器和用户,即可跨所有操作系统访问文件系统。

问:我的文件上载到 EFS 后,如何自动化和监控文件处理步骤?

答:您可以创建 AWS Transfer Family 的托管工作流,以在文件上载到 EFS 后自动触发文件处理。您可以设置包含标记、复制以及您希望根据业务需求对文件执行的任何自定义处理步骤的工作流。访问 AWS Transfer Family 的托管工作流文档以了解更多信息。

问:我怎么知道哪位用户上载了文件?

答:对于新文件,与上传文件的用户相关联的 POSIX 用户 ID 将被设置为 EFS 文件系统中文件的所有者。此外,您还可以使用 Amazon CloudWatch 跟踪用户的活动,以进行文件创建、更新、删除和读取操作。访问本文档,了解有关如何启用 Amazon CloudWatch 日志记录的更多信息

问:我可以查看通过已启用协议上传和下载了多少数据吗?

答:可以,使用服务器上传和下载的数据的指标将发布到 AWS Transfer Family 命名空间内的 Amazon CloudWatch。请访问文档以查看要进行跟踪和监控的可用指标

问:我可以使用 AWS Transfer Family 访问其他账户中的文件系统吗?

答:可以。您可以使用 CLI 和 API 来设置 AWS Transfer Family 资源和 EFS 文件系统之间的跨账户访问。AWS Transfer Family 控制台将仅列出同一账户中的文件系统。此外,您需要确保分配给用户以访问文件系统的 IAM 角色属于账户 A。

问:如果我的 EFS 文件系统没有为跨账户访问启用正确的策略,该怎么办?

答:如果您对 AWS Transfer Family 服务器进行了设置,以访问未启用跨账户访问的跨账户 EFS 文件系统,则将拒绝您的 SFTP/FTP/FTPS 用户访问文件系统。如果您在服务器上启用了 CloudWatch 日志记录,则跨账户访问错误将记录到您的 CloudWatch Logs 中。

问:我可以使用 AWS Transfer Family 访问其他 AWS 区域中的 EFS 文件系统吗?

答:不能,您只能使用 AWS Transfer Family 来访问同一 AWS 区域中的 EFS 文件系统。

问:我可以对所有 EFS 存储类使用 AWS Transfer Family 吗?

答:可以。您可以使用 AWS Transfer 将文件写入到 EFS 中,还可以将 EFS 生命周期管理配置为将一段时期内未访问的文件迁移到不频繁访问 (IA) 存储类。

问:我的应用程序可以使用 SFTP/FTPS/FTP 并发地从同一文件读写数据吗?

答:可以,Amazon EFS 可以提供文件系统界面、文件系统访问语义(例如强一致性和文件锁定)以及可供多达数千个 NFS/SFTP/FTPS/FTP 客户端同时访问的存储。

问:当我使用 AWS Transfer Family 访问文件系统时,是否会消耗我的 EFS 突增积分?

答:可以。无论吞吐量模式如何,使用 AWS Transfer Family 服务器访问 EFS 文件系统都会消耗您的 EFS 突增积分。 请参阅有关可用性能和吞吐量模式的文档,并查看一些有用的性能提示

安全性与合规性

问:通过公共网络传输时,我应该使用哪些协议保护数据?

答:SFTP 或 FTPS 均可用于保护公共网络传输。由于基于 SSH 和 TLS 密码算法的协议具有底层安全性,数据和命令通过安全的加密通道进行传输。

问:我有哪些静止加密数据的选项?

答:您可以选择使用 Amazon S3 Server-Side Encryption (SSE-S3) 或 Amazon KMS (SSE-KMS) 加密存储在您的存储桶中的文件。 对于存储在 EFS 中的文件,您可以选择 AWS 或客户管理的 CMK 对静态文件进行加密。有关使用 Amazon EFS 静态加密文件数据和元数据的选项的更多详细信息,请参阅文档。

问:AWS Transfer Family 支持哪些合规性计划?

答:AWS Transfer Family 符合 PCI-DSS 和 GDPR 的规定,并且符合 HIPAA 要求。此服务也符合 SOC 1、2 和 3 的规定。了解有关按合规性计划提供的范围内服务的更多信息。

问:AWS Transfer Family 是否符合 FISMA 的规定?

答:AWS East/West 和 GovCloud(美国)区域符合 FISMA 的规定。当授权 AWS Transfer Family 获得了 FedRAMP 授权时,它将在相应的区域内符合 FISMA 的规定。通过将这两个区域的 FedRAMP 授权设置为 FedRAMP 中级和 FedRAMP 高级,可以证明这种合规性。我们通过年度评估来证明这种合规性,并在我们的系统安全计划中使用范围内 NIST SP 800-53 控件记录这种合规性。您可以在 Artifact 以及我们的客户责任矩阵 (CRM) 上获得模板,CRM 详细说明了我们在根据 FedRAMP 的要求满足这些 NIST 控件方面的责任。您可以通过管理控制台访问 Artifact,该控制台可通过 East/West 和 GovCloud 的 AWS 账户访问。如果您对此主题还有其他疑问,请查阅控制台

问:该服务如何确保已上传文件的完整性?

答:通过服务上传的所有文件都会通过对比文件上传前后的 MD5 校验和进行验证。

问:如何监控最终用户的活动?

答:您可以使用 Amazon CloudWatch 监控最终用户的活动,使用 AWS CloudTrail 访问服务器调用(应最终用户数据请求)的所有 S3 API 操作的记录。访问本文档,了解有关如何启用 Amazon CloudWatch 和 AWS CloudTrail 日志记录。

问:如何跟踪通过协议上传和下载的数据量?

答:您可以使用 Amazon CloudWatch Metrics 监控和跟踪用户通过所选协议上传和下载的数据。访问本文档,了解有关使用 Amazon CloudWatch 指标的更多信息。

计费

问:使用此服务如何计费?

答:从您创建并配置服务器终端节点到删除终端节点,会按小时对您启用的每个协议收取费用。您还需要根据通过 SFTP、FTPS 或 FTP 上传和下载的数据量付费。有关其他详细信息,请参阅定价页面

问:如果为多个协议使用同一个服务器终端节点,或者为每个协议使用不同的终端节点,计费会有不同吗?

答:不会,将按小时对您启用的每个协议,根据每个协议传输的数据量收取费用,与是否为多个协议启用同一个终端节点或为每个协议使用不同的终端节点无关。

问:我已停止了我的服务器。我是否需要为服务器付费?

答:是的,使用控制台、运行“stop-server”CLI 命令或“StopServer”API 命令停止服务器时,不会影响计费。从您创建服务器端点并配置一个或多个协议的访问权限到删除端点,会按小时收取费用。

问:使用托管工作流如何计费?

答:使用托管工作流不会产生额外费用。根据您的工作流程配置,您需要为使用 Amazon S3、Amazon EFS 和 AWS Lambda 付费。

了解有关 SFTP 定价的更多信息
了解有关定价的更多信息

AWS Transfer Family 提供一个完全托管的服务,从而减少了运行文件传输服务的运营成本。

了解更多 
注册免费 AWS 账户
注册免费账户

立即享受 AWS 免费套餐。 

注册 
开始使用 SFTP 进行构建
开始在控制台中构建

开始在 AWS 管理控制台中构建您的 SFTP、FTPS 和 FTP 服务。

登录