一般性问题
什么是 AWS Transfer Family?
AWS Transfer Family 为 SFTP、AS2、FTPS 和 FTP 直接进出 Amazon S3 或 Amazon EFS 的文件传输提供完全托管式支持。通过维持身份验证、访问和防火墙的现有客户端配置,可以实现文件传输工作流程的无缝迁移、监控和自动化,客户、合作伙伴和内部团队或者其应用程序无需任何更改。
什么是 SFTP?
SFTP 是指 Secure Shell(SSH)文件传输协议,一种用于通过 Internet 安全传输数据的网络协议。该协议支持 SSH 的完整安全性和身份验证功能,并且广泛用于多个行业(包括金融服务、医疗保健、媒体和娱乐、零售、广告等)内业务合作伙伴之间的数据交换。
什么是 FTP?
FTP 是指文件传输协议,一种用于传输数据的网络协议。FTP 针对控制和数据传输使用独立通道。控制通道通常开放至终止或不活动超时,数据通道在传输期间一直活动。FTP 使用明文,不支持流量加密。
什么是 FTPS?
FTPS 是指 SSL 文件传输协议,是 FTP 的扩展。与 FTP 类似,FTPS 也使用单独的通道进行控制和数据传输。控制通道通常一直处于开放状态,直至终止或处于非活动状态超时,数据通道则在传输期间一直处于活动状态。FTPS 使用传输层安全性协议(TLS)来加密流量,并允许同时或独立加密控制和数据通道连接。
什么是 AS2?
AS2 是适用性声明 2(Applicability Statement 2)的缩写,它是一种网络协议,用于企业与企业之间通过 HTTP/HTTPS(或任何 TCP/IP 网络),在公共互联网上安全可靠地传输数据。
什么是 SFTP 连接器?
AWS Transfer Family 的 SFTP 连接器用于在外部托管的 SFTP 服务器和 AWS 存储服务之间轻松可靠地大规模复制文件。
为什么应该使用 AWS Transfer Family?
AWS Transfer Family 支持多种企业对企业(B2B)文件传输协议,因此可以与利益攸关方、第三方供应商、业务合作伙伴或客户轻松安全地交换数据。在不使用 Transfer Family 的情况下,您必须托管和管理自己的文件传输服务,这需要您在运行和管理基础设施、修补服务器、监控正常运行时间和可用性以及制定一次性机制来预置用户和审计用户活动方面进行投入。AWS Transfer Family 通过 SFTP、AS2、FTPS 和 FTP 为 B2B 文件传输提供完全托管和安全的连接选项,从而解决了这些挑战,使您无需管理与文件传输相关的基础设施。您的最终用户的工作流程将保持不变,同时上传和下载的数据将存储在 Amazon S3 存储桶或 Amazon EFS 文件系统中。现在,通过将数据存储在 AWS 中,您可以在满足合规性要求的环境中轻松地将其与各种 AWS 服务配合使用,以支持数据处理、内容管理、分析、机器学习和存档。
我能否使用 AWS Transfer Family 在 AWS 中构建事件驱动的托管式文件传输(MFT)工作流?
符合。AWS Transfer Family 会在 Amazon EventBridge 中为每个文件传输操作发布事件通知。您可以在 Amazon EventBridge 中订阅 AWS Transfer Family 事件,并使用这些事件通过 Amazon EventBridge 或您选择的与这些事件集成的任何其他编排引擎来编排事件驱动的 MFT 工作流。请参阅“文件处理自动化”一节了解更多详细信息。
使用 AWS Transfer Family 有哪些好处?
AWS Transfer Family 为您提供完全托管、高度可用的文件传输服务,其中包含自动扩展功能,无需您亲自管理文件传输相关基础设施。您的最终用户的工作流程将保持不变,同时上传和下载的数据将存储在 Amazon S3 存储桶或 Amazon EFS 文件系统中。现在,通过将数据存储在 AWS 中,您可以在满足合规性要求的环境中轻松地将其与各种 AWS 服务配合使用,以支持数据处理、内容管理、分析、机器学习和存档。
如何开始使用 AWS Transfer for SFTP、FTPS 和 FTP 服务器端点?
只需 3 个简单步骤,您就可以为 SFTP、FTPS 和/或 FTP 启用始终可用的服务器端点。首先,选择您希望最终用户连接至终端节点的协议。随后,使用 AWS Transfer Family 内置身份验证管理器(服务托管)或 Microsoft Active Directory (AD) 来配置用户访问权限,也可以通过集成您自己或第三方的身份提供程序(例如 Okta 或 Microsoft AzureAD [“BYO”身份验证])来执行此操作。最后,选择服务器,以访问 S3 存储桶或 EFS 文件系统。启用协议、身份提供程序和对文件系统的访问后,您的用户可以继续使用其现有的 SFTP、FTPS 或 FTP 客户端和配置,同时将访问的数据存储在所选文件系统中。
如何开始使用 AWS Transfer for AS2?
只需 3 个简单的步骤,您就可以开始使用 AS2 与您的交易伙伴交换消息:首先,导入您的证书和私钥以及您的交易伙伴的证书和证书链。接下来,使用您和您的合作伙伴的 AS2 ID 创建配置文件。最后,使用用于接收数据的协议和用于发送数据的连接器,将您自己和您的合作伙伴的配置文件信息进行配对。这样您便能够与交易伙伴的 AS2 服务器交换消息了。
如何开始使用 AWS Transfer SFTP 连接器?
您可以开始使用 SFTP 连接器通过三个简单的步骤在远程 SFTP 服务器和 Amazon S3 之间复制文件:首先,创建一个密钥,用于存储 SFTP 连接器用于对远程服务器进行身份验证的凭证。其次,提供密钥和远程服务器的 URL,从而创建 SFTP 连接器。第三,创建连接器后,您可以调用 StartFileTransfer API,从而在远程服务器和 Amazon S3 桶之间开始借此复制文件。
SFTP 与 FTPS 之间有何区别? 我应该使用哪种服务,何时使用?
FTPS 和 SFTP 都可用于安全传输。由于是不同的协议,两者使用不同的客户端和技术来提供安全隧道,用于传输命令和数据。SFTP 是较新的协议,针对命令和数据使用单一通道,所需的端口少于 FTPS。
SFTP、FTPS 和 AS2 协议之间有何区别? 何时应使用 AS2 协议?
SFTP、FTPS 和 AS2 都可以用于安全传输。但它们是不同的协议,使用不同的客户端和技术来保障数据传输的安全。AS2 除了支持加密和签名的消息外,内置的消息处置通知(MDN)机制会提醒发送者消息已被接收者成功接收和解密。由此可向发送者提供其消息在传输过程中没有被篡改的证明。AS2 在零售、电子商务、支付、供应链的工作流中得到普遍使用,用于与同样能够使用 AS2 的业务合作伙伴进行交互,以便安全地传输和传递消息。AS2 为您提供选项来确保发送者和接收者的身份、消息的完整性,以及确认消息是否已成功传递并被接收者解密。
问:我的用户能否继续使用现有的文件传输客户端和应用程序?
符合。只要为所选协议启用了端点,任何现有文件传输客户端应用程序可继续使用。常用的 SFTP/FTPS/FTP 客户端示例包括 WinSCP、FileZilla、CyberDuck、lftp 和 OpenSSH 客户端。
我的用户能否使用 Web 门户上传和下载文件?
符合。客户可以使用适用于 AWS Transfer Family 的 Web 客户端,让用户能够使用 Web 门户上传和下载文件。客户可以获得与 AWS Transfer for SFTP 相同的身份验证和访问控制优势,另外还增加了专为非技术用户设计的直观的 Web 浏览器界面。
如何访问存储在外部 SFTP 站点中的文件?
您可以使用 AWS Transfer SFTP 连接器访问存储在外部 SFTP 站点上的文件。请参阅 SFTP 连接器文档,以开始使用 SFTP 连接器
如何将文件从我的贸易伙伴的业务系统移动到我的 S3 存储桶?
您可以使用 AWS Transfer Family 完全托管的 SFTP/FTPS/AS2 功能来接收从贸易伙伴的业务系统生成的电子数据交换文档。使用 AWS Transfer Family 的连接功能接收的 EDI 文档会自动上传到 Amazon S3,然后可以使用 AWS B2B Data Interchange 将其转换为 JSON 和 XML 格式的输出。或者,您也可以使用任何其他 EDI 连接工具将 EDI 文档上传到 S3。
使用此服务时,我的用户能否使用 HTTPS 传输文件?
不可以。您的用户需要使用 SFTP、AS2、FTPS 或 FTP 传输文件。大部分文件传输客户端提供其中一种协议作为选项,需要在身份验证期间进行选择。请通过 AWS Support 或您的 AWS 客户团队告知您希望获得支持的任何特定协议。
使用此服务时,我的用户能否使用 SCP 命令传输文件?
是的,您可以使用 Transfer Family 通过 SFTP 协议支持 SCP 命令,以满足大多数使用 S3 和 EFS 存储进行文件传输的 SCP 用例。要支持 SCP 命令,请确保您的 SCP 客户端默认通过 SFTP 使用 SCP,例如 OpenSSH 9.0 或更高版本。但是,SCP 协议已过时,该服务不支持。要了解更多信息,请访问我们的文档。
服务器端点选项
是否可以为连接到我的 Transfer Family 服务器的用户自定义登录横幅?
符合。您可以配置 Transfer Family 服务器以为用户显示自定义横幅,例如组织的政策或条款与条件。您还可以为成功通过身份验证的用户显示自定义的每日提示消息(MOTD)。要了解更多信息,请访问文档。
能否使用公司域名(sftp.mycompanyname.com)访问我的 SFTP 端点?
符合。默认情况下,该服务会提供一个用于访问您的端点的域名。如果您已有域名,则可以使用 Amazon Route 53 或任意 DNS 服务将用户的流量从已注册域路由到 AWS 中的服务器端点。请参阅有关 AWS Transfer Family 如何使用 Amazon Route 53 自定义域名的文档(仅适用于面向互联网的端点)。
是否可以将服务器设置为仅可访问我的 VPC 中的资源?
符合。创建服务器或更新现有服务器时,可以选择指定通过公共互联网访问终端节点还是在 VPC 内部托管终端节点。通过将 VPC 托管终端节点用于服务器,您可以将其设置为只能由同一 VPC、您指定的其他 VPC 或使用扩展 VPC 的网络技术(如 AWS Direct Connect、AWS VPN 或 VPC 对等)的本地环境中的客户端访问。您可以利用子网网络访问控制列表 (NACL) 或安全组进一步限制对 VPC 的特定子网中的资源的访问。有关详细信息,请参阅有关使用 AWS PrivateLink 在 VPC 内创建服务器端点的文档。
FTP 能否用于面向互联网的端点?
不可以,启用 FTP 后,由于 FTP 以明文形式传输数据,您只能使用 VPC 托管的端点的内部访问选项。如果流量需要跨越公共网络,应使用 SFTP 或 FTPS 等安全协议。
能否在无 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 托管端点。
如何为位置偏远的终端用户改善文件传输的性能?
您可以将 AWS Global Accelerator 与传输服务器端点结合使用,以优化文件传输吞吐量和往返时间。请参阅这篇博客文章,了解更多信息。
我可以选择最终用户的客户端连接到服务器端点时要使用的加密算法吗?
符合。根据您的安全性与合规性要求,您可以选择我们其中一个可用的服务托管安全策略来控制服务器端点将公布的加密算法。当最终用户的文件传输客户端尝试连接服务器时,仅可使用安全策略中指定的算法来协商连接。请参阅有关预定义安全策略的文档。
AWS Transfer Family 是否支持公钥的量子安全交换?
符合。AWS Transfer Family 支持用于 SFTP 文件传输的量子安全公用密钥交换。您可以将其中一个预定义的混合 PQ 安全策略与 SFTP 服务器关联,从而与支持 PQ 加密算法的客户端进行量子安全密钥交换。
我的最终用户是否可以使用固定 IP 地址访问端点类型为 PUBLIC 的服务器?
不能。目前 PUBLIC 端点类型上不支持通常用于防火墙白名单目的的固定 IP 地址。 使用 VPC 托管的终端节点为您的终端节点分配静态 IP 地址。
为了访问我的 SFTP 服务器的“公共”类型的端点,我的最终用户需要将哪些 IP 地址范围加入允许列表?
如果您使用的是“公有”端点类型,您的用户需要将此处发布的 AWS IP 地址范围加入允许列表。有关 AWS IP 地址范围的最新详情,请参阅相应文档。
创建服务器后,我的 AWS Transfer for SFTP 服务器的主机密钥是否会发生更改?
不会。服务器主机密钥在您创建服务器时分配给您,除非您添加新主机密钥并手动删除原有密钥,否则主机密钥始终不变。
支持哪些类型的 SFTP 服务器主机密钥?
RSA、ED25519 和 ECDSA 密钥类型支持用于 SFTP 服务器主机密钥。
我是否可以从当前的 SFTP 服务器导入密钥,以便我的用户不必再次验证服务器的真实性了吗?
符合。您可以在创建服务器时导入一个主机密钥,或者在更新服务器时导入多个主机密钥。请参阅关于为启用 SFTP 的服务器管理主机密钥的文档。
能否使用多个主机密钥来验证 SFTP 服务器的真实性?
符合。每种密钥类型中最早的主机密钥可用于验证 SFTP 服务器的真实性。通过添加 RSA、ED25519 和 ECDSA 主机密钥,可将 3 个单独的主机密钥用于识别您的 SFTP 服务器。
哪些主机密钥可用于验证 SFTP 服务器的真实性?
每种密钥类型中最早的主机密钥用于验证 SFTP 服务器的真实性。
能否旋转我的 SFTP 服务器主机密钥,以确保安全连接?
符合。您可以随时通过添加和移除主机密钥旋转 SFTP 服务器主机密钥。请参阅关于为启用 SFTP 的服务器管理主机密钥的文档。
我的最终用户的 FTPS 客户端如何验证我的 FTPS 服务器的身份?
启用 FTPS 访问后,您需要提供 Amazon Certificate Manager(ACM)证书。此证书由您的最终用户客户端用于验证您的 FTPS 服务器的身份。请参阅 ACM 文档中的请求新证书或将现有证书导入 ACM。
是否支持 FTPS 和 FTP 的主动和被动模式?
我们仅支持被动模式,允许您的最终用户客户端启动与您的服务器的连接。被动模式需要的客户端端口更少,服务器终端节点与受保护防火墙后方的最终用户更兼容。
是否支持显式和隐式 FTPS 模式?
我们仅支持显式 FTPS 模式。
如果在客户端和服务器之间配置了防火墙或路由器,还可以通过 FTPS/FTP 协议传输文件吗?
符合。默认情况下,使用扩展被动连接模式 (EPSV) 支持穿越防火墙或路由器的文件传输。如果您使用的是不支持 EPSV 模式的 FTPS/FTP 客户端,请访问此博客文章以了解如何在 PASV 模式下配置服务器,从而使其能够兼容各种客户端。
AWS Transfer Family 是否支持 SFTP 服务器的非默认端口?
符合。除标准端口 22 外,AWS Transfer Family 还支持备用端口 2222。默认情况下,您的 SFTP 服务器配置端口 22。为增强服务器的安全性,您可以将 SSH 流量配置为使用端口 22、2222 或同时使用这两个端口。请单击此处,参阅我们的文档。
SFTP 连接器
支持使用哪些身份验证方法来建立与远程 SFTP 服务器的连接?
您可以根据远程服务器的要求,使用 SSH 密钥对和/或密码,对与远程服务器的连接进行身份验证。要了解有关在 AWS Secrets Manager 账户中存储和管理连接器的身份验证凭证的更多信息,请访问文档。
支持哪些 AWS 存储服务使用 SFTP 连接器传输文件?
您可以使用 SFTP 连接器将文件传输到 Amazon S3 或从 Amazon S3 传输到远程 SFTP 服务器。
SFTP 连接器支持哪些 SSH 主机密钥算法?
我们支持 RSA 和 ECDSA 主机密钥算法。有关支持的密钥类型的更多详细信息,请访问此处的文档。
创建连接时如何验证远程 SFTP 服务器的身份?
连接器使用主机指纹来验证远程服务器的身份。如果远程服务器提供的指纹与上传到连接器配置的指纹不匹配,则连接将失败,错误详细信息将记录在 CloudWatch 中。要详细了解如何上传远程服务器 SSH 密钥的公共部分以进行识别,请访问此处的 SFTP 连接器文档。
我能否在单独的 AWS 账户中配置 Amazon S3 存储桶和 SFTP?
可以。您可以在不同的 AWS 账户中预置 Amazon S3 存储桶和 SFTP 连接器资源。
我能否选择哪些加密算法可用于 SFTP 连接器,以连接到远程 SFTP 服务器?
符合。根据您的安全性与兼容性要求,您可以选择一个我们可用的服务托管安全策略,以控制您的 SFTP 连接器将公布的加密算法。当您的连接器尝试连接到远程服务器时,将仅使用连接器所附加的策略中指定的算法来协商连接。请参阅有关预定义安全策略的文档。
我能否在一个 AWS 账户中创建 SFTP 连接器并使用其从不同的 AWS 账户传输文件?
符合。您可以在一个 AWS 账户中创建 SFTP 连接器,并通过在附加到连接器的 IAM 角色中提供适当的访问权限,使用其从另一个账户传输文件。
如何在不传输文件的情况下检查与远程服务器的连接?
您可以使用 AWS 管理控制台或 TestConnection API/CLI/CDK 命令测试与远程服务器的连接。 我们建议您在创建连接器后立即测试与远程服务器的连接,以确保其配置正确。如有必要,请确保将与您的连接器关联的静态 IP 地址列入远程服务器的允许列表。要了解更多信息,请访问 SFTP 连接器文档。
SFTP 连接器支持哪些文件传输操作?
SFTP 连接器可用于将文件从 Amazon S3 发送到远程 SFTP 服务器、从远程 SFTP 服务器检索文件到 Amazon S3,以及列出存储在远程 SFTP 服务器目录中的文件。要了解有关使用 SFTP 连接器的更多信息,请访问 SFTP 连接器文档。
如果事先不知道文件名,如何从远程 SFTP 服务器检索文件?
您可以使用 SFTP 连接器的 StartDirectoryListing API 操作,列出存储在远程 SFTP 服务器目录中的文件。然后,在使用 StartFileTransfer API 操作传输文件时,您可以通过传递列表中的文件名,从远程服务器检索目标文件。有关更多信息,请参阅文档并阅读这篇博客文章。
问:我能否使用通配符来指定要使用 SFTP 连接器复制的文件的文件名模式?
您可以使用 SFTP 连接器列出远程 SFTP 服务器上某个目录中的所有文件,并根据文件名模式的通配符标准构建自定义逻辑来筛选文件列表。然后,您可以使用 StartFileTransfer API 操作通过 SFTP 连接器传输这些文件。
如何追踪我的文件传输状态?
您可以监控您的 Amazon CloudWatch Logs,了解文件传输状态。您可以跟踪文件传输是完成还是失败,以及其他详细信息,例如操作(发送或检索)、时间戳、文件路径以及错误描述(如果有),以帮助您维护数据世系。或者,您可以在 Amazon EventBridge 中订阅 AWS Transfer Family 的 SFTP 连接器事件,其中包含有关传输状态的信息。
我能否使用 SFTP 连接器安排文件传输?
符合。您可以使用 Amazon EventBridge 调度器安排文件传输。使用 EventBridge 的调度器创建满足业务需求的时间表,并将 AWS Transfer Family 的 StartFileTransfer API 或 StartDirectoryListing API 指定为日程安排的通用目标。
我能否在 AWS Step Function 中使用 SFTP 连接器从我的状态机调用文件传输?
符合。AWS Step Functions 集成了包括 AWS Transfer Family 在内的各种 AWS 服务,使您能够直接从状态机调用 SFTP 连接器的 StartFileTransfer 操作。使用 AWS Transfer Family 创建 SFTP 连接器后,利用 Step Functions 的 AWS SDK 集成来调用 StartFileTransfer API。要了解更多信息,请访问 Step Functions 文档。
我能否协调对使用 SFTP 连接器传输的文件进行事件驱动的处理?
符合。使用 SFTP 连接器的每个文件传输操作都会在 Amazon EventBridge 的默认事件总线中发布事件通知。您可以订阅 SFTP 连接器事件,并使用这些事件通过 Amazon EventBridge 或您选择的与这些事件集成的任何其他工作流编排服务来协调所传输文件的事件驱动处理。
能否对我的 SFTP 连接器使用静态 IP 地址,这样业务合作伙伴就可以允许在其防火墙中列出连接器的 IP 地址?
符合。默认情况下,静态 IP 地址与您的连接器关联,可用于将您的业务合作伙伴防火墙上的连接列入允许列表。您可以通过导航到 AWS Transfer Family 控制台中的连接器详细信息页面或使用 DescribeConnector API/CLI/CDK 命令来识别与连接器关联的静态 IP 地址。
我账户中所有 SFTP 连接器的静态 IP 地址都相同吗?
符合。AWS 账户区域中的所有 SFTP 连接器将共享一组静态 IP 地址。在给定类型的连接器之间共享 IP 地址可以减少允许列表文档的数量以及需要与外部合作伙伴进行的入门沟通。
能否使用 SFTP 连接器连接私有网络中的服务器?
不能。目前,SFTP 连接器只能用于连接提供互联网访问端点的服务器。如果您需要连接到只能通过私有网络访问的服务器,请通过 AWS Support 或您的 AWS 账户团队告知我们。
多协议访问
可否在同一个服务器端点上启用多个协议?
符合。设置过程中,您可以选择您希望客户端连接至端点的协议。服务器主机名、IP 地址和身份提供商在选定协议间共享。同样的,您还可以为现有的 AWS Transfer Family 端点启用额外的协议支持,只要端点配置满足您打算使用的所有协议的要求。
何时为每个协议创建单独的服务器端点,何时为多个协议启用同一个端点?
需要使用 FTP(仅 VPC 内的访问支持)并且还需要通过互联网支持 SFTP、AS2 或 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;以及自定义身份提供程序,允许集成您选择的身份提供程序。仅启用 SFTP 的服务器终端节点支持服务托管型身份验证。
如何使用服务托管型身份验证对用户进行身份验证?
对于服务托管型身份验证,您可以使用 SSH 密钥对 SFTP 用户进行身份验证。
每位 SFTP 用户可以上传多少 SSH 密钥? 支持哪些密钥类型?
每位用户可以上传最多 10 个 SSH 密钥。支持 RSA、ED25519 和 ECDSA 密钥。
服务托管型身份验证是否支持 SSH 密钥轮换?
符合。请参阅本文档,了解有关如何为 SFTP 用户设置密钥轮换的详细信息。
如何开始使用 Microsoft AD?
当您创建自己的服务器时,您需要在 AWS Managed 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 凭证来传输文件。
为什么应该使用自定义身份验证模式?
自定义模式(“BYO”身份验证)可让您充分利用现有的身份提供程序来管理所有协议类型(SFTP、FTPS 和 FTP)的终端用户,轻松实现用户无缝迁移。凭证可存储在企业目录或内部身份数据存储中,经过集成可用于终端用户身份验证目的。身份提供程序的示例包括 Okta、Microsoft AzureAD 或者您在对门户进行整体预置时可以使用的任何定制身份提供程序。
我可以使用哪些选项来集成我的身份提供程序与 AWS Transfer Family 服务器?
为了集成身份提供程序与 AWS Transfer Family 服务器,您可以使用 AWS Lambda 函数或 Amazon API Gateway 端点。如果您需要 RESTful API 来连接身份提供程序,或者由于地理位置屏蔽和速率限制功能的原因而需要使用 AWS WAF,则使用 Amazon API Gateway。请访问文档,以了解关于集成 AWS Cognito、Okta 和 AWS Secrets Manager 之类常见身份提供程序的详情。
我是否能应用基于客户端源 IP 的访问控制?
符合。当您使用 AWS Lambda 或 API Gateway 连接自定义身份提供程序时,客户端源 IP 传递到您的身份提供程序。这样,您可以根据客户端的 IP 地址允许、拒绝或限制访问,以确保只能从您指定为可信的 IP 地址访问您的数据。
当用户尝试连接我的 SFTP 服务器时,我能否要求使用多种身份验证方法?
符合。您可以强制使用多种身份验证方法,以便在用户通过 SFTP 访问您的数据时提供额外的安全保护。可以将您的 SFTP 服务器配置为同时需要密码和 SSH 密钥、密码或 SSH 密钥、只需要密码或只需要 SSH 密钥。有关如何使用客户身份提供商启用多种身份验证方法的详细信息,请参阅文档。
能否将服务托管型选项用于密码身份验证?
不能。当前不支持在服务中存储密码进行身份验证。如果您需要密码身份验证,请在 AWS Directory Service 中选择一个目录以使用 Active Directory,或者使用这篇博客文章中介绍的关于使用 Secrets Manager 启用密码身份验证的架构。
是否支持匿名用户?
不支持。目前不支持任何协议的匿名用户。
我能否为个别 AD 用户或者一个目录中的所有用户授予访问权限?
不能。我们只支持按 AD 组设置访问权限。
我能否使用 AD 对使用 SSH 密钥的用户进行身份验证?
不能。为 Microsoft AD 提供的 AWS Transfer Family 支持只能用于基于密码的身份验证。要使用多种身份验证模式的组合,请使用自定义授权方选项。
AS2 交易伙伴
AWS Transfer Family 对 AS2 的支持是否已获得 Drummond 认证?
符合。AWS Transfer Family 对 AS2 的支持已获得 Drummond Group AS2 官方云认证印章。AWS Transfer Family AS2 功能已经过全面审查,确保其安全性以及与其他十四个第三方 AS2 解决方案的消息交换兼容性。请访问我们的公告以了解更多信息。
如何唯一识别我的 AS2 交易伙伴?
您的交易合作伙伴具有唯一的 AS2 标识符(AS2 ID)。同样,您的交易伙伴使用您的 AS2 ID 来识别您的消息。
AWS Transfer Family 的哪些现有功能可用于 AS2? 哪些功能不可用?
您可以将 AWS Transfer Family 对 Amazon S3、网络功能(VPC 端点、安全组和弹性 IP)以及访问控制(AWS IAM)的现有支持用于 AS2,这与 SFTP、FTPS 和 FTP 的情况相同。AS2 不支持用户身份验证、逻辑目录、自定义横幅以及将 Amazon EFS 作为存储后端。
什么是不可否认性?为什么它很重要?
AS2 独有的不可否认性可验证消息在双方之间成功交换。AS2 中的不可否认性是通过消息处置通知(MDN)实现的。在事务中请求 MDN 时,它会确保发送者发送了消息,接收者成功接收到消息,并且发送者发送的消息与接收者收到的消息一致。
使用 AS2 协议传输消息的步骤有哪些?
消息传输涉及两方:发送者和接收者。一旦发送者确定要发送的消息,相关消息就会被签名(使用发送者的私钥)和加密(使用接收者的证书),并且其完整性会通过散列计算得出。此经过签名和加密的消息通过线路传输到接收者。接收者收到消息后,消息会得到解密(使用接收者的私钥)、验证(使用发送者的公钥)和处理,并将经过签名的消息处置通知(MDN)(在发送者请求时)发送给发送者以确认消息成功传递。请参阅有关 AS2 如何处理消息传输的文档。
有哪些选项可用于消息传输?
可能的选项组合由发送者决定。发送者可以选择仅加密或仅签署数据(或两者兼而有之),并选择请求消息处置通知(MDN)。如果发送者选择请求 MDN,则可以请求经签署或不经签署的 MDN。接收者应遵守这些选项。
请求消息处置通知(MDN)是可选的吗?
符合。发送者可以选择请求 MDN,选择请求经签署或不经签署的 MDN,以及选择用于签署 MDN 的签名算法。
是否支持同步(Sync)和异步(Async)MDN? 何时应使用何种选项?
目前我们支持同步和异步 MDN 响应。这使您能够在收到 AS2 消息后使用同步或异步 MDN 回复您的贸易伙伴。由于发送同步 MDN 与发送消息使用相同的连接通道,更为简单,因此是推荐的选项。如果您在发送 MDN 之前需要更多时间来处理消息,则首选异步 MDN。如果您在向贸易伙伴发送消息时需要请求和接收异步 MDN,请通过 AWS Support 或您的客户经理联系我们。
如何跟踪和搜索发送和接收的负载和 MDN?
AWS Transfer Family 从负载和交换的 MDN 中提取关键 AS2 信息,并以 JSON 文件的形式将这些信息存储在 Amazon S3 存储桶中。您可以使用 S3 Select 或 Amazon Athena 查询这些 JSON 文件,或使用 Amazon OpenSearch 或 Amazon DocumentDB 为文件编制索引以进行分析。
我可以存档收到的 MDN(作为请求它们的发送者)吗?
符合。一旦您从交易伙伴处收到 MDN,该服务就会使用您的证书验证 MDN 并将消息存储到您的 Amazon S3 存储桶中。您可以选择通过利用 S3 生命周期策略来存档这些消息。
当我准备好将消息传送给我的交易伙伴的端点时,我如何通知 AWS Transfer Family?
数据准备好交付后,您需要使用包含收件人的 AS2 服务器信息的 AS2 连接器调用 StartFileTransfer API。如此便能够通知服务将消息发送到您的交易伙伴的服务器。请参阅有关通过 AS2 向您的交易伙伴发送消息的连接器的文档。
我可否针对不同的交易伙伴使用不同的入站和出站位置来收发消息?
符合。当您设置交易伙伴的配置文件时,您可以针对不同交易伙伴使用不同的文件夹。
我可否将交易伙伴的现有密钥和证书用于我的 AWS Transfer Family AS2 端点?
符合。您可以导入合作伙伴的现有密钥和证书,并管理密钥和证书的更新及轮换。请参阅有关导入证书的文档。
我如何知道我的交易伙伴的证书何时到期?
您可以使用 AWS Transfer Family 控制台查看。控制台的控制面板会显示按到期日期排序的证书。此外,您可以选择在证书到期前接收提醒通知,从而能够有足够的时间轮换证书,以防止运营中断。
能否使用静态 IP 地址连接到我的贸易伙伴的 AS2 服务器?
符合。默认情况下,静态 IP 地址与您的连接器关联,可用于将您的贸易伙伴 AS2 服务器上的连接列入允许列表。您可以通过导航到 AWS Transfer Family 控制台中的连接器详细信息页面或使用 DescribeConnector API/CLI/CDK 命令来识别与连接器关联的静态 IP 地址。
我能否连接到要求我使用用户名和密码凭证进行身份验证的贸易伙伴的 AS2 主机?
符合。我们支持使用基本身份验证连接到您的贸易伙伴的 AS2 服务器。请参阅有关在 AS2 连接器上配置基本身份验证的文档。
我能否使用固定 IP 地址向贸易伙伴 AS2 服务器发送消息?
符合。AS2 连接器可在向远程 AS2 服务器发送消息和返回异步消息处置通知(MDN)响应时使用静态 IP 地址。要识别与连接器关联的静态 IP 地址,您可以导航到 AWS Transfer Family 管理控制台中的连接器或服务器详细信息页面,也可以使用 DescribeConnector 或 DescribeServer API/CLI/CDK 命令。
我能否通过启用固定 IP 的端点接收来自贸易伙伴的 AS2 消息?
符合。您的 AS2 服务器端点支持通过将安全组与面向互联网的 VPC 托管端点一起使用来配置 IP 允许列表控制。
我的 AS2 异步 MDN 响应会使用静态 IP 地址吗?
符合。您的 AS2 异步 MDN 响应将使用静态 IP 地址。您可以通过导航到 AWS Transfer Family 管理控制台中的服务器详细信息页面或使用 DescribeServer API/CLI/CDK 命令来识别用于发送异步 MDN 响应的静态 IP 地址。
如何协调处理从我的贸易伙伴收到的 AS2 消息?
收到的每条 AS2 消息都会将一个事件发布到您在 Amazon EventBridge 中的默认事件总线。您可以订阅这些事件,并使用其对使用 Amazon EventBridge 或任何其他工作流编排服务来编排对收到的消息进行事件驱动的处理。例如,您可以使用这些事件将传入的消息复制到 S3 中的其他位置,使用自定义 Lambda 对消息的内容进行恶意软件扫描,或者根据消息的内容标记消息,以使其可通过 Amazon CloudSearch 等服务编制索引和进行搜索。
我能否使用 AWS B2B Data Interchange 自动转换我的入站 AS2 消息的 EDI 内容?
符合。您可以使用 AWS B2B Data Interchange 自动将入站 AS2 消息的 X12 EDI 内容转换为 JSON 和 XML 等常见数据表示形式。为此,请创建与 AWS Transfer Family 的 AS2 有效负载接收已完成事件的事件模式相匹配的 Amazon EventBridge 规则,并将 AWS B2B Data Interchange 的 StartTransformerJob API 指定为该规则的通用目标。通过使用 AWS B2B Data Interchange 转换入站 AS2 消息的 X12 EDI 内容,您可以自动执行并加速将 EDI 数据集成到下游业务应用程序和系统中。
如何自动向我的贸易伙伴发送 AS2 消息?
您可以通过使用 Amazon EventBridge 调度器来调度 AS2 消息或使用 Amazon EventBridge 规则触发消息来自动发送 AS2 消息。要创建基于时间的自动化工作流来发送 AS2 消息,请使用 EventBridge 调度程序创建满足您业务需求的计划,并指定 AWS Transfer Family 的 StartFileTransfer API 作为计划的通用目标。要创建事件驱动的自动化工作流来发送 AS2 消息,请创建与发布到 EventBridge 的事件匹配的 Amazon EventBridge 规则,并将 AWS Transfer Family 的 StartFileTransfer API 指定为规则的通用目标。
我可以存档发送到我的交易的 AS2 消息或 MDN 响应吗?
符合。发送的每条 AS2 消息和 MDN 都会将一个事件发布到您在 Amazon EventBridge 中的默认事件总线。您可以订阅这些事件,然后使用其删除或存档成功发送给您的贸易伙伴的 AS2 消息和 MDN。
出站 AS2 消息发送失败或入站 AS2 消息无法处理时,能否通知我?
符合。AWS Transfer Family 会针对发送和接收的每条成功或失败的 AS2 消息或 MDN 向 Amazon EventBridge 发布事件。这些事件将发布到 Amazon EventBridge 中的默认事件总线,可用于使用 Amazon SNS 等服务触发向您或您的合作伙伴发送的电子邮件通知。
我能否使用 Transfer Family 的托管式工作流来处理通过 AS2 从我的贸易伙伴收到的消息?
不能。目前您的 AS2 端点不支持托管式工作流。我们建议使用在 Amazon EventBridge 中发布的 Transfer Family 事件通知来协调 AS2 消息的处理。有关更多详细信息,请参阅“文件处理自动化”一节。
是否支持 AS3 和 AS4?
否。AWS Transfer Family 目前不提供对 AS3 或 AS4 的支持。
文件处理自动化
我有哪些选项可以自动处理使用 AWS Transfer Family 传输的文件?
您有两种选择:1) AWS Transfer Family 在 Amazon EventBridge 中为通过 SFTP、AS2、FTPS 和 FTP 传输的文件发布文件传输事件通知,您可以使用这些事件来触发任何可以与 EventBridge 事件集成的服务对文件进行处理;以及 2) AWS Transfer Family 提供托管式工作流,使您能够更轻松地使用预构建的文件处理步骤自动对通过 SFTP、FTPS 和 FTP 服务器端点上传的文件执行上传后处理。将托管式工作流与服务器端点关联后,通过该端点上传的所有文件都将使用相同的工作流步骤进行处理。
哪些 Transfer Family 操作会在 Amazon EventBridge 中发布事件通知?
AWS Transfer Family 在完成服务器和连接器资源的每个文件传输操作成功或失败后,会在 Amazon EventBridge 中发布事件通知。有关发布到 Amazon EventBridge 的 Transfer Family 事件的更多信息,请参阅文档。
问:为什么要使用托管工作流?
如果您需要处理与业务合作伙伴交换的文件,则需要设置基础设施以运行自定义代码、持续监控运行时错误和异常,以及确保所有数据更改和转换都经过审计并记入日志。此外,您还需要考虑技术和业务方面的错误场景,同时确保正确触发故障保护模式。如果您对可追溯性有要求,则需要跟踪数据在沿系统的不同组件传递时的沿袭。维护单独的文件处理工作流组件会消耗时间,分散对业务有重要意义的工作。托管式的工作流消除了管理多个任务的复杂性,并且提供了可在整个组织复制推广的标准化文件处理解决方案,在每个步骤都内置了异常处理和文件可追溯性功能,可帮助满足业务和法律上的要求。
上载后处理的托管工作流是怎样的?
AWS Transfer Family 托管式工作流提供一个预构建的框架,供您创建、运行和监控线性步骤序列,以处理通过 SFTP、FTPS 和 FTP 服务器端点上传的文件。使用此功能,您可以通过预构建的步骤来执行常见的文件处理任务,例如复制、标记和解密文件,从而节省时间。您还可以使用 Lambda 函数自定义文件处理任务,例如扫描文件中的 PII、病毒/恶意软件或其他错误(例如不正确的文件格式或类型),使您能够快速检测异常并满足合规性要求。将托管式工作流与服务器端点关联后,通过该端点上传的所有文件都将使用相同的工作流步骤进行处理。
托管式工作流具有哪些好处?
借助托管式工作流,您可以在下游应用程序使用数据之前来轻松完成数据的预处理,方法是对上传到服务器端点的所有文件执行线性序列的文件处理任务,例如将上传的文件移动到用户特定的文件夹、使用 PGP 密钥解密文件、扫描恶意软件以及添加标签等。您可以使用基础设施即代码(IaC)来部署工作流,从而可以快速在组织中的多个业务部门之间复制常用的上传后文件处理任务,以及实现标准化。 通过将托管式工作流关联到仅对完全上传的文件触发的服务器端点,以及关联仅对部分上传的文件触发的单独托管式工作流以处理部分上传,您可以进行精细控制。工作流还提供内置的异常处理功能,允许您在工作流执行中出现错误或异常时快速响应文件处理结果,帮助您达到贵公司的业务和技术 SLA 要求。工作流中的每个文件处理步骤还会生成详细的日志,可以用于审计以追踪数据沿袭情况。
我应该何时使用 Amazon EventBridge 来协调传输文件的处理?何时使用 AWS Transfer Family 托管式工作流?
文件传输操作完成后,AWS Transfer Family 服务器端点和连接器会自动在 Amazon EventBridge 中发布事件通知,以及文件位置、发件人用户名、服务器 ID 或连接器 ID、传输状态等操作信息。当您需要精细控制来定义文件处理时(例如使用基于文件来源的条件逻辑),或者需要构建事件驱动架构以与其他 AWS 服务、第三方应用程序和自己的应用程序集成时,您可以使用这些事件。另一方面,AWS Transfer Family 托管式工作流提供一个预构建的框架,用于定义常见文件处理步骤的线性序列,这些步骤适用于通过 SFTP、FTPS 和 FTP 服务器端点上传的所有文件。所有上传的文件需要使用相同的常见文件处理步骤进行处理时,您可以将托管式工作流关联到您的端点,而无需应用任何精细或条件逻辑。
如何开始使用托管式工作流?
是否可以跨多个服务器使用相同的托管式工作流?
符合。可以将相同的工作流与多个服务器相关联,这样您可以更轻松地维护和标准化配置。
是否可以选择将在每个工作流步骤处理的具体文件?
符合。您可以配置工作流步骤来处理原始上传的文件,或来自上一工作流步骤的输出文件。从而可以轻松在将文件上传到 Amazon S3 后自动移动和重命名文件。例如,要将文件移动到不同的位置以进行文件归档或留存,您需要在工作流中配置两个步骤。第一步是将文件复制到不同的 Amazon S3 位置,第二步是删除原始上传的文件。有关为工作流步骤选择文件位置的详细信息,请参阅文档。
使用工作流可以对自己的文件执行哪些操作?
传输服务器从客户端接收文件后,可以使用以下常见操作:
使用 PGP 密钥解密文件。请参阅这篇关于使用 PGP 加密和解密文件的博客文章。
将数据从到达的位置移动或复制到需要使用的位置。
归档或复制到新位置后删除原始文件。
根据文件内容标记文件,以便下游服务对其进行索引和搜索(仅限 S3)
通过将自己的 Lambda 函数作为工作流的自定义步骤,从而设置任何自定义文件处理逻辑。例如,在将文件摄取到数据分析之前,检查文件类型的兼容性、扫描文件中的恶意软件、检测个人身份信息(PII)以及提取元数据。
能否使用工作流自动解密使用 PGP 的文件?
我必须使用哪些选项来选择在每个托管式工作流步骤中要处理的文件?
您可以配置工作流步骤来处理最初上传到服务器端点的文件,也可以处理工作流中上一步的输出文件。从而可以轻松在将文件上传到 Amazon S3 后自动移动和重命名文件。例如,要将文件移动到不同的位置以进行文件归档或留存,您需要在工作流中配置两个步骤。第一步是将文件复制到不同的 Amazon S3 位置,第二步是删除原始上传的文件。有关为工作流步骤选择文件位置的详细信息,请参阅文档。
是否可以保存原始上传的文件以满足记录留存的需要?
符合。使用托管式工作流时,您可以为原始文件创建多个副本,同时保存原始文件以满足记录留存的需要。
是否可以使用托管式工作流将文件动态路由到用户特定的 Amazon S3 文件夹?
符合。您可以将用户名作为工作流复制步骤中的变量使用,以便将文件动态路由到 Amazon S3 中的用户特定文件夹。这样就无需在复制文件时对目标文件夹位置进行硬编码,而且可以在 Amazon S3 中自动创建用户特定文件夹,以扩展您的文件自动化工作流。阅读文档以了解更多信息。
我正在使用 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)工作流为 PGP 解密等常见文件处理提供无代码和预构建选项;以及 4)客户可以在 CloudWatch 日志中获得对其文件传输和处理的端到端可见性。
如何监控托管式工作流活动?
有关用于记录托管式工作流活动的支持功能的详细信息,请参阅监控部分。
能否使用托管式工作流自定义文件传送通知?
符合。请参阅关于使用托管式工作流发送文件传送通知的此博客文章。
在部分上传时可以触发托管式工作流吗?
符合。您可以定义在完整文件上传和部分文件上传时触发的单独工作流。
我能否在用户下载时触发工作流操作吗?
不能。只能在文件到达时使用入站端点调用处理。
托管式工作流不支持哪些 Transfer Family 操作?
目前,只有通过您的 SFTP、FTPS 和 FTP 服务器端点上传的文件才能触发托管式工作流,并且每次执行只能处理一个文件。通过 AS2 交换的消息、通过服务器端点下载的文件以及使用 SFTP 连接器传输的文件不支持托管式工作流。
我可以在会话中让成批文件触发相同的工作流吗?
不可以。目前工作流一次执行只能处理一个文件。
我能否根据哪些用户上传了文件来精细触发托管式工作流?
不能。托管工作流不能基于每个用户进行精细调用。您可以使用 Amazon EventBridge 中发布的文件传输事件通知,根据上传文件的用户定义条件文件处理逻辑。
Amazon S3 访问
AWS Transfer Family 如何与 Amazon S3 通信?
AWS Transfer Family 服务器与 Amazon S3 之间的数据传输通过内部 AWS 网络发生,不经过公共互联网。因此,您不需要对从 AWS Transfer Family 服务器传输到 Amazon S3 的数据使用 AWS PrivateLink。Transfer Family 服务不要求 Amazon S3 的 AWS PrivateLink 终端节点阻止流量通过互联网,因此无法使用它们与存储服务通信。这完全假定 AWS 存储服务和 Transfer Family 服务器处在同一个区域中。
为什么需要提供 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 policy 和角色来控制最终用户访问的文档
我是否可以为我的最终用户提供多个 Amazon S3 存储桶的访问权限?
符合。您的用户可以访问的存储桶取决于 AWS IAM 角色以及您为该用户分配的可选范围限制策略。您只能使用单个存储桶作为用户的主目录。
我是否可以将 S3 接入点用于 AWS Transfer Family 以简化用户对共享数据集的访问?
符合。您可以将 S3 访问点别名用于 AWS Transfer Family,以实现对大数据集的精细访问,而无需管理单个存储桶策略。S3 接入点别名与 AWS Transfer Family 逻辑目录结合之后,您可以对不同的应用程序、团队和部门创建精细访问控制,同时降低管理存储桶策略的开销。如需了解详情并开始使用,请访问关于使用 AWS Transfer Family 和 Amazon S3 接入点增强数据访问控制的博客文章。
是否可以使用 AWS 账户 A 创建服务器并将我的用户映射到 AWS 账户 B 拥有的 Amazon S3 存储桶?
符合。您可以使用 CLI 和 API 在服务器和希望用于存储通过受支持协议传输的文件的存储桶之间设置跨帐户访问。控制台下拉列表仅列出帐户 A 中的存储桶。此外,您需要确保分配给用户的角色属于帐户 A。
能否在文件上载到 Amazon S3 后自动处理文件?
符合。AWS Transfer Family 在文件传输操作完成后在 Amazon EventBridge 中发布事件通知,您可以使用这些事件自动执行文件上传后处理。或者,所有上传的文件都需要使用相同的文件处理步骤进行处理而没有任何条件逻辑时,您可以使用 AWS Transfer Family 托管式工作流来定义常见文件处理步骤的线性序列,这些步骤自动调用用户通过 SFTP、FTPS 或 FTP 服务器端点上传的每个文件。
我可否根据上载文件的用户自定义处理规则?
符合。用户上传文件后,用户名和用于上传的服务器的服务器 ID 作为相关联 S3 对象元数据的一部分被存储。有关用于上传后处理工作的信息,请参阅文档。最终用户信息也可在 AWS Transfer Family 在 Amazon EventBridge 中发布的自动文件上传事件通知中找到。您可以使用此信息根据用户协调精细的文件上传后处理。
Amazon S3 事件通知与 Amazon EventBridge 中的 AWS Transfer Family 服务事件有何不同?我应该使用什么来触发文件的上传后处理?
Amazon S3 可以针对在您的桶中创建的任何新对象发布事件通知。另一方面,AWS Transfer Family 在完成每个文件传输操作成功或失败后,发布事件通知。该通知与 Amazon S3 事件通知的区别如下:1) 使用 Transfer Family 的事件通知时,您可以精细控制定义完整文件上传与部分文件上传的上传后处理;2) Transfer Family 事件针对 S3 和 EFS 中的文件上传发布;3) Transfer Family 生成的事件包含操作信息,例如发件人的用户名、服务器 ID、传输状态等,并允许您根据这些属性的条件逻辑,精细地定义文件处理。
目前,最终用户需要几分钟才能看到自己的 S3 目录。有加速方法吗?
符合。您可以优化 S3 目录列表,以便最终用户可以加速看到目录列表 – 从几分钟变为几秒钟。如果您在 2023 年 11 月 17 日之后通过控制台创建新服务器,而且您将 Amazon S3 用作存储空间,则默认情况下,您的服务器将启用经过优化的 S3 目录列表。您可以随时将其打开或关闭。关闭此功能后,您的 S3 目录列表会恢复到默认性能。如果您使用 CloudFormation、CLI 或 API 创建服务器,则默认情况下,经过优化的 S3 目录列表处于禁用状态,但可以随时启用。请参阅文档,了解如何启用经过优化的 S3 目录列表。
除逻辑目录外,我是否还需要单独的会话策略,才能确保最终用户可以安全地访问文件?
尽管这取决于您对会话策略的使用和其他内部要求,但您通常不需要同时使用会话策略和逻辑目录,即可确保用户仅访问您为他们指定的文件。逻辑目录映射仅允许用户访问指定的逻辑路径和子目录,并禁止那些遍历逻辑根的相对路径。我们使用可能包含相对元素的相对表示法验证每条路径,并在将这些路径传递给 S3 之前主动阻止解析这些路径,以防止您的用户超出其逻辑映射。
Amazon EFS 访问
如何设置 EFS 文件系统以与 AWS Transfer Family 一起使用?
在设置 AWS Transfer Family 以与 Amazon EFS 文件系统一起使用之前,您将需要使用计划分配给您的 AWS Transfer Family 用户的相同 POSIX 身份(用户 ID/组 ID)来设置文件和文件夹的所有权。此外,如果要访问其他账户中的文件系统,则还必须在文件系统上配置资源策略以启用跨账户访问。 请参阅此博客文章以获得关于结合使用 AWS Transfer Family 与 EFS 的分步说明。
AWS Transfer Family 如何与 Amazon EFS 通信?
AWS Transfer Family 服务器与 Amazon EFS 之间的数据传输通过内部 AWS 网络发生,不经过公共互联网。因此,您不需要对从 AWS Transfer Family 服务器传输到 Amazon EFS 的数据使用 AWS PrivateLink。Transfer Family 服务不要求 Amazon EFS 的 AWS PrivateLink 终端节点阻止流量通过互联网,因此无法使用它们与存储服务通信。这完全假定 AWS 存储服务和 Transfer Family 服务器处在同一个区域中。
如何为用户提供向文件系统上传文件/从文件系统下载文件的权限?
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 进行存储,Transfer Family 不支持访问点。
如何通过存储在我的 Amazon EFS 文件系统中的协议传输文件?
通过启用的协议传输的文件直接存储在您的 Amazon EFS 文件系统中,并且可以通过标准文件系统界面或可以访问 Amazon EFS 文件系统的 AWS 服务进行访问。
使用 Amazon S3 和 Amazon EFS 时,协议支持哪些文件操作?
支持创建、读取、更新和删除文件、目录和符号链接的 SFTP/FTPS/FTP 命令。有关 EFS 和 S3 的支持命令,请参阅下表。
CommandAmazon S3Amazon EFS cdSupportedSupported ls/dirSupportedSupported pwdSupportedSupported putSupportedSupported getSupportedSupported including resolving symlinks and hardlinks renameSupported1Supported chownNot supportedSupported2 chmodNot supportedSupported2 chgrpNot supportedSupported3 ln -s/symlinkNot supportedSupported mkdirSupportedSupported rm/deleteSupportedSupported rmdirSupported4Supported chmtimeNot supportedSupported1 仅支持文件重命名。不支持重命名目录和文件以覆盖现有文件。
2 只有根用户,即 uid=0 的用户才能更改文件和目录的所有权和权限。
3 支持根用户,即 uid=0 的用户或文件所有者,他们只能将文件组更改为其次要组之一。
4 仅支持非空文件夹。
如何控制用户可以访问哪些文件和文件夹以及允许和禁止执行哪些操作?
您为 AWS Transfer Family 用户提供的 IAM policy 确定他们是否对文件系统具有只读、读写和根访问权限。此外,作为文件系统管理员,您可以使用其用户 ID 和组 ID 设置所有权并授权访问文件系统中的文件和目录。这适用于用户,无论他们存储在服务中(服务托管)还是在身份管理系统中(“BYO 身份验证”)。
我可以限制每个用户访问文件系统中的不同目录,并且仅访问那些目录中的文件吗?
符合。在设置用户时,可以为每个用户指定不同的文件系统和目录。成功通过身份认证后,EFS 将为使用已启用协议提出的每个文件系统请求强制指定一个目录。
我可以隐藏文件系统的名称以免暴露给用户吗?
符合。使用 AWS Transfer Family 逻辑目录映射,您可以通过将绝对路径映射到最终用户可见的路径名来限制最终用户在文件系统中的目录视图。这还包括能够将用户“chroot”到其指定的主目录。
是否支持符号链接?
符合。如果您的用户可以访问的目录中存在符号链接,而您的用户尝试访问它们,则这些链接将被解析为其目标。当您使用逻辑目录映射来设置用户的访问权限时,不支持符号链接。
我可以为单个 SFTP/FTPS/FTP 用户提供对多个文件系统的访问权限吗?
符合。在设置 AWS Transfer Family 用户时,您可以在您提供的 IAM policy 中指定一个或多个文件系统,作为用户设置的一部分,以授予对多个文件系统的访问权限。
我可以使用哪些操作系统通过 AWS Transfer Family 访问我的 EFS 文件系统?
您可以使用为 Microsoft Windows、Linux、macOS 或任何支持 SFTP/FTPS/FTP 的操作系统而构建的客户端和应用程序上传和访问存储在 EFS 文件系统中的文件。只需配置对 EFS 文件系统具有适当权限的服务器和用户,即可跨所有操作系统访问文件系统。
如何在文件上传到 EFS 后自动处理文件?
您有两种选择:1) AWS Transfer Family 在文件传输操作完成后在 Amazon EventBridge 中发布事件通知,您可以使用这些事件自动执行文件上传后处理;以及 2) 所有上传的文件都需要使用相同的文件处理步骤进行处理而没有任何条件逻辑时,您可以使用 AWS Transfer Family 托管式工作流来定义常见文件处理步骤的线性序列,这些步骤适用于通过 SFTP、FTPS 或 FTP 服务器端点上传的每个文件。
我怎么知道哪位用户向 EFS 上传了文件?
对于新文件,与上传文件的用户相关联的 POSIX 用户 ID 将被设置为 EFS 文件系统中文件的所有者。此外,您还可以使用 Amazon CloudWatch 跟踪用户的活动,以进行文件创建、更新、删除和读取操作。访问文档,了解有关如何启用 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、FedRAMP 以及 SOC 1、2 和 3。该服务还符合 HIPAA。了解有关按合规性计划提供的范围内服务的更多信息。
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 校验和进行验证。
有哪些加密/解密传输中文件的选项?
文件上传到 AWS Transfer Family SFTP、FTPS 或 FTP 服务器端点时,您可以使用 AWS Transfer Family 托管式工作流,从而使用 PGP 密钥自动解密文件。有关更多信息,请参阅托管工作流文档。或者,您可以订阅 Amazon Eventbridge 中发布的 AWS Transfer Family 事件通知,使用自己的加密/解密逻辑来协调对传输文件进行精细和事件驱动的处理。
监控
如何监控最终用户及其文件传输活动?
您可以使用传送到 Amazon CloudWatch 的 JSON 格式日志来监控最终用户及其文件传输活动。在 CloudWatch 中,您可以使用 CloudWatch Log Insights 轻松解析和查询日志,从而自动发现采用 JSON 格式的字段。您还可以通过 CloudWatch Contributor Insights 跟踪热门用户、独立用户总数及其持续使用情况。我们还提供预先构建的 CloudWatch 指标和图表,这些指标和图表可在 AWS Transfer Family 管理控制台中访问。访问文档了解更多信息。
能否创建合并指标来跟踪多台服务器上的用户和文件传输活动?
符合。可以将来自多个 AWS Transfer Family 服务器的日志流合并到一个 CloudWatch 日志组中。此功能允许您创建合并的日志指标和可视化,可以将其添加到 CloudWatch 控制面板以跟踪服务器使用情况和性能。
如何监控我的工作流?
您可以使用 AWS CloudWatch 指标来监控工作流执行情况,例如工作流执行的总数、成功的执行数、失败的执行数。如果使用 AWS 管理控制台,您还可以搜索和查看正在进行的工作流执行的实时状态。使用 CloudWatch 日志可以获取有关工作流执行情况的详细日志记录。
AWS Transfer Family 日志采用什么格式?
AWS Transfer Family 以 JSON 格式跨所有资源(包括服务器、连接器和工作流)和所有协议(包括 SFTP、FTPS、FTP 和 AS2)提供日志。
如何接收使用 AWS Transfer Family 进行文件传输的通知?
您可以使用 Transfer Family 的托管式工作流接收有关通过 SFTP、FTPS 和 FTP 服务器端点上传的文件的通知。请参阅这篇博客文章。或者,您可以在 Amazon EventBridge 中订阅 AWS Transfer Family 事件,以使用 Amazon Simple Notification Service(SNS)接收通知。
如果工作流文件验证检查失败,能否发送通知?
符合。如果针对预配置的工作流验证步骤的文件验证检查失败,您可以使用异常处理程序调用您的监控系统,或者通过 Amazon SNS 主题提醒团队成员。
计费
使用此服务如何计费?
从您创建并配置服务器终端节点到删除终端节点,会按小时对您启用的每个协议收取费用。您还需要为通过 SFTP、FTPS 或 FTP 服务器上传和下载的数据量、通过 AS2 交换的消息数以及使用 Decrypt 工作流步骤处理的数据量付费。使用 SFTP 连接器时,您需要根据传输的数据量和连接器调用的次数付费。有关其他详细信息,请参阅定价页面。
如果为多个协议使用同一个服务器端点,或者为每个协议使用不同的端点,计费会有不同吗?
不会,将按小时对您启用的每个协议,根据每个协议传输的数据量收取费用,与是否为多个协议启用同一个端点或为每个协议使用不同的端点无关。
我已停止了我的服务器。我是否需要为服务器付费?
符合。使用控制台、运行“stop-server”CLI 命令或“StopServer”API 命令停止服务器时,不会影响计费。从您创建服务器端点并配置一个或多个协议的访问权限到删除端点,会按小时收取费用。
使用托管工作流如何计费?
您需要根据使用 PGP 密钥解密的数据量为 Decrypt 工作流步骤付费。使用托管工作流不会产生任何额外费用。根据您的工作流配置,您需要为使用 Amazon S3、Amazon EFS、AWS Secrets Manager 和 AWS Lambda 付费。
使用 SFTP 连接器是否按小时计费?
否。SFTP 连接器不按小时计费,有关 SFTP 连接器定价的更多信息,请参阅定价页面。