使用 AWS Transfer Family 构建托管 SFTP 服务器 - S3 集成与用户管理
详解通过 Transfer Family 构建 SFTP/FTPS 服务器、与 S3 的集成以及自定义认证的配置。
Transfer Family 概述
Transfer Family 是一项支持 SFTP、FTPS、FTP、AS2 四种协议的托管服务器服务。当与合作伙伴的文件交换使用 SFTP 时,可以通过 Transfer Family 构建 SFTP 服务器并将传输目标设置为 S3。现有的 SFTP 客户端和脚本在更改连接的主机名后可继续使用。也可选择 EFS (Elastic File System) 作为后端存储,满足需要 POSIX 权限的工作负载。
认证与工作流
用户认证可从服务托管(在 Transfer Family 内管理)、自定义(Lambda 授权器)和 AWS Directory Service 三种方式中选择。自定义认证通过 Lambda 函数实现认证逻辑,可与现有的 LDAP 或 Active Directory 集成。Lambda 授权器的响应可动态决定每个用户的主目录、IAM 角色和 S3 存储桶前缀,支持多租户配置。托管工作流是文件上传后自动执行的处理链,可定义文件复制、标记、PGP 解密和自定义 Lambda 处理。
AS2 协议与自动化
AS2(Applicability Statement 2)协议用于 B2B 文件交换,提供消息加密、签名和接收确认(MDN)。通过 Transfer Family 的 AS2 连接器设置与合作伙伴的自动文件交换,使用 S3 作为存储。托管工作流在文件上传后执行自动处理(复制、标记、Lambda 调用),构建文件处理管道。通过 CloudWatch Logs 记录传输日志,审计文件的收发状况。
设计最佳实践与常见陷阱
端点类型是在设计初期决定的项目。公有端点不提供固定 IP 地址,在合作伙伴防火墙白名单中难以处理。VPC 端点可通过 Elastic IP 分配固定 IP,实现向合作伙伴通知 IP。VPC 内部端点将访问限制为通过 VPN/Direct Connect 连接,不接受来自互联网的连接。在协议启用期间,端点按小时计费。对于每天传输一次左右的小规模用途,将费用与 S3 预签名 URL 或 DataSync 按需传输进行比较。此外,S3 存储桶策略与用户 IAM 角色权限冲突时,有时会导致意外的访问拒绝。用户 IAM 角色仅授予对 S3 存储桶的最小权限,存储桶策略中明确允许来自 Transfer Family 服务角色的访问。
与其他服务和方案的比较
与 Transfer Family 比较的文件传输手段包括 S3 预签名 URL、DataSync 和 Storage Gateway。S3 预签名 URL 无需常驻服务器,但要求合作伙伴更改 SFTP 客户端(迁移到基于 URL 的传输),现有脚本无法直接沿用。DataSync 用于从本地的大量数据迁移,提供带宽控制和计划执行,但不支持来自合作伙伴的接收(push 型)。Storage Gateway(文件网关)在本地提供 NFS/SMB 挂载点,但不适合向外部合作伙伴公开。使用 Transfer Family,可以在保留现有 SFTP 工作流的情况下迁移到云端。FTP 不加密通信,新建时使用 SFTP 或 FTPS。
Transfer Family 的定价
Transfer Family 的定价由服务器端点上启用协议的时间以及上传和下载的数据量等决定。由于端点的持续运行成本是主要费用,传输频率较低时需事先评估成本效率。端点费用按协议收取,同一服务器启用 SFTP 和 FTPS 时,将产生 2 个协议的费用。S3 的存储费用另行计算。在托管工作流中,PGP 解密步骤处理的数据量会产生费用。AS2 除按协议启用的时间计费外,还按收发的消息数计费。
总结
Transfer Family 提供支持 SFTP、FTPS、FTP、AS2 协议的托管服务器,通过与 S3 的集成简化文件存储管理。使用自定义认证的 Lambda 授权器与现有身份提供商集成。VPC 端点提供固定 IP 满足合作伙伴防火墙需求。通过托管工作流执行文件上传后的自动处理,利用 AS2 连接器自动化 B2B 文件交换。端点在启用期间按时间计费,传输频率较低时将费用与 S3 预签名 URL 等替代方案进行比较。
参考资料(AWS 官方)
本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。
如本页内容与官方文档不一致,请以官方文档为准。