使用 AWS Transfer for SFTP 将本地 SFTP 服务器迁移至 AWS - AWS Prescriptive Guidance

使用 AWS Transfer for SFTP 将本地 SFTP 服务器迁移至 AWS

Akash Kumar,Amazon Web Services

摘要

此模式描述了如何借助 AWS Transfer for SFTP 服务将使用 Secure Shell(SSH)File Transfer Protocol(SFTP)的本地文件传输解决方案迁移至 AWS 云。用户通常通过其域名或固定 IP 连接至 SFTP 服务器。此模式涵盖了两种情况。

AWS Transfer for SFTP 隶属于 AWS Transfer Family,是一种安全的传输服务,使您能够通过 SFTP 将文件传入和传出 AWS 存储服务。您可以将 AWS Transfer for SFTP 与 Amazon Simple Storage Service(Amazon S3)或 Amazon Elastic File System(Amazon EFS) 结合使用。此模式使用了 Amazon S3 存储。

先决条件和限制

先决条件

  • 一个活跃的 AWS 账户。

  • 现有 SFTP 域名或固定 SFTP IP。

限制

  • 当前,您可在一个请求中传输的最大对象为 5 GiB。对于大于 100 MiB 的文件,可以考虑使用 Amazon S3 分段上传

架构

源技术堆栈

  • 本地平面文件或数据库转储文件。

目标技术堆栈

  • AWS Transfer for SFTP

  • Amazon S3

  • Amazon Virtual Private Cloud(Amazon VPC)

  • AWS Identity and Access Management (IAM) 用户和策略

  • 弹性 IP 地址

  • 安全组

  • Amazon CloudWatch Logs(可选)

目标架构

使用适用于 SFTP 的 AWS Transfer 将本地 SFTP 服务器迁移至 AWS 云。

自动化和扩缩

若要自动执行此模式的目标架构,请使用随附的 CloudFormation 模板:

  • amazon-vpc-subnets.yml 预置具有两个公有子网和两个私有子网的虚拟私有云(VPC)。

  • amazon-sftp-server.yml 预置 SFTP 服务器。

  • amazon-sftp-customer.yml 添加用户。

工具

AWS 服务

操作说明

任务描述所需技能

创建带有子网的 VPC。

打开 Amazon VPC 控制台。创建具有两个公共子网的虚拟私有云(VPC)。(第二个子网具有高可用性。)

—或者—

您可以在 CloudFormation console 中部署随附的 CloudFormation 模板 amazon-vpc-subnets.yml,以按本操作自动执行此任务。

开发人员、系统管理员

添加互联网网关。

预置互联网网关,并将其连接至 VPC。

开发人员、系统管理员

迁移现有 IP。

将现有 IP 连接至弹性 IP 地址。您可从地址池创建弹性 IP 地址,并使用该地址。

开发人员、系统管理员
任务描述所需技能

创建 SFTP 服务器。

打开 AWS Transfer Family 管理控制台。按照 AWS Transfer Family 文档中的为服务器创建面向互联网的端点中的说明,创建带面向互联网端点的 SFTP 服务器。对于端点类型,请选择 VPC 托管。对于访问,请选择面向 Internet。对于 VPC,请选择您在上一操作中创建的 VPC。

—或者—

您可以在 CloudFormation console 中部署随附的 CloudFormation 模板 amazon-sftp-server.yml,以按本操作自动执行此任务。

开发人员、系统管理员

迁移域名。

将现有域名附加至自定义主机名。如果正在使用新域名,请使用 Amazon Route 53 DNS 别名。对于现有域名,请选择其他 DNS。有关更多信息,请参阅 AWS Transfer Family 文档中的使用自定义主机名

开发人员、系统管理员

添加 CloudWatch 日志记录角色。

(可选)如果您想启用 CloudWatch 日志记录,则使用 CloudWatch Logs API 操作 logs:CreateLogGrouplogs:CreateLogStream logs:DescribeLogStreamslogs:PutLogEvents 创建 Transfer 角色。有关更多信息,请参阅 AWS Transfer Family 文档中的使用 CloudWatch 记录活动

开发人员、系统管理员

保存并提交。

选择保存。对于操作,请选择启动,然后等待 SFTP 服务器的创建状态为联机

开发人员、系统管理员
任务描述所需技能

停止服务器,以便修改设置。

AWS Transfer Family 控制台上,选择服务器,然后选择您创建的 SFTP 服务器。对于操作,请选择停止。当服务器处于离线状态时,选择编辑以修改其设置。

开发人员、系统管理员

选择可用区和子网。

可用区部分中,为您的 VPC 选择可用区和子网。

开发人员、系统管理员

添加弹性 IP 地址。

对于 IPv4 地址,请为每个子网选择一个弹性 IP 地址,然后选择保存

开发人员、系统管理员
任务描述所需技能

为用户访问 S3 存储桶创建 IAM 角色。

Transfer 创建 IAM 角色,并添加将 S3 存储桶名称作为资源的  s3:ListBucket s3:GetBucketLocations3:PutObject。有关更多信息,请参阅 AWS Transfer Family 文档中的创建 IAM 角色和策略

—或者—

您可以在 CloudFormation console 中部署随附的 CloudFormation 模板 amazon-sftp-customer.yml,以按本操作自动执行此任务。

开发人员、系统管理员

创建 S3 存储桶。

为应用程序创建 S3 存储桶。

开发人员、系统管理员

创建可选文件夹。

(可选)如果您想将用户的文件单独存储在特定的 Amazon S3 文件夹中,则根据需要添加文件夹。

开发人员、系统管理员

创建 SSH 公有密钥。

若要创建 SSH 密钥对,请参阅 AWS Transfer Family 文档中的生成 SSH 密钥

开发人员、系统管理员

添加用户。

AWS Transfer Family 控制台上,选择服务器,选择您创建的 SFTP 服务器,然后选择添加用户。对于主目录,请选择您创建的 S3 存储桶。对于SSH 公有密钥,请输入 SSH 密钥对的 SSH 公有密钥部分。为 SFTP 服务器添加用户,然后选择添加

开发人员、系统管理员
任务描述所需技能

更新安全组。

在 SFTP 服务器的安全组部分中,添加测试计算机的 IP 以获得 SFTP 访问权限。

开发人员

使用 SFTP 客户端实用程序测试服务器。

使用任何 SFTP 客户端实用程序测试文件传输功能。有关客户端列表和说明,请参阅 AWS Transfer Family 文档中的使用客户端传输文件

开发人员

相关资源

附件

要访问与此文档相关联的其他内容,请解压以下文件:attachment.zip