使用 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 记录传输日志,审计文件的收发状况。 关于 Transfer Family 的详细解说,Amazon 上的相关书籍也可供参考。
设计最佳实践与常见陷阱
端点类型选择是第一个关键设计决策。公有端点配置最简单,但不提供固定 IP 地址,无法满足合作伙伴防火墙白名单要求。VPC 端点可通过 Elastic IP 分配固定 IP,实现向合作伙伴通知 IP。VPC 内部端点将访问限制为仅通过 VPN/Direct Connect 连接,完全阻断互联网访问。常见陷阱是忽视端点的持续运行成本(月费约 216 美元)。对于每天仅传输一次的小规模用途,成本效率较差,应与 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 工作流即可迁移到云端」。当要求合作伙伴 IT 部门进行更改的政治成本较高时,Transfer Family 的端点维护成本可被视为避免迁移摩擦的费用。FTP(无加密)不满足安全要求,新建时应避免使用,选择 SFTP 或 FTPS。
Transfer Family 的定价
Transfer Family 的定价由协议端点时间(约 0.30 美元/小时,月费约 216 美元)和数据传输量(上传约 0.04 美元/GB,下载约 0.04 美元/GB)构成。由于端点的持续运行成本是主要费用,传输频率较低时需事先评估成本效率。同一服务器提供多种协议(SFTP + FTPS)时,仅收取一个服务器的端点费用。S3 的存储费用另行计算。托管工作流步骤执行产生额外费用,处理大量文件时应最小化步骤数。AS2 连接器按连接器时间另行计费,需根据合作伙伴交换频率估算成本。
总结
Transfer Family 提供支持 SFTP、FTPS、FTP、AS2 协议的托管服务器,通过与 S3 的集成简化文件存储管理。使用自定义认证的 Lambda 授权器与现有身份提供商集成。VPC 端点提供固定 IP 满足合作伙伴防火墙需求。通过托管工作流执行文件上传后的自动处理,利用 AS2 连接器自动化 B2B 文件交换。端点持续成本约为月费 216 美元,传输频率较低时应与 S3 预签名 URL 等替代方案进行比较。