

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 配置 SFTP、FTPS 或 FTP 服务器端点
<a name="sftp-for-transfer-family"></a>

本主题提供有关创建和使用一个或多个 SFTP、FTPS 和 FTP 协议的 AWS Transfer Family 服务器端点的详细信息。

**Topics**
+ [身份提供商选项](#identity-provider-details)
+ [AWS Transfer Family 端点类型矩阵](#endpoint-matrix)
+ [配置 SFTP、FTPS 或 FTP 服务器端点](tf-server-endpoint.md)
+ [FTP 和 FTPS 网络负载均衡器注意事项](#ftp-ftps-nlb-considerations)
+ [使用客户端通过服务器端点传输文件](transfer-file.md)
+ [管理服务器端点的用户](create-user.md)
+ [使用逻辑目录简化您的 Transfer Family 目录结构](logical-dir-mappings.md)
+ [使用 Transfer Family 访问适用于 NetApp ONTAP 文件系统的 FSx](fsx-s3-access-points.md)

## 身份提供商选项
<a name="identity-provider-details"></a>

AWS Transfer Family 提供了几种对用户进行身份验证和管理的方法。下表比较了您可以与 Transfer Family 一起使用的可用身份提供商。


| 处理建议 | AWS Transfer Family 服务托管 | AWS Managed Microsoft AD | Amazon API Gateway | AWS Lambda | 
| --- | --- | --- | --- | --- | 
| 受支持的协议 | SFTP | SFTP、FTPS、FTP | SFTP、FTPS、FTP | SFTP、FTPS、FTP | 
| Key-based authentication | 是 | 否 | 是 | 是 | 
| 密码验证 | 否 | 是 | 是 | 是 | 
| AWS Identity and Access Management (IAM) 和 POSIX | 支持 | 是 | 是 | 是 | 
| 逻辑主目录 | 支持 | 是 | 是 | 是 | 
| 参数化访问权限（基于用户名） | 支持 | 是 | 是 | 是 | 
| 临时访问结构 | 是 | 否 | 是 | 是 | 
| AWS WAF | 否 | 否 | 是 | 否 | 

备注：
+ IAM 用于控制 Amazon S3 后备存储的访问权限，Amazon EFS 使用 POSIX。
+ *Ad hoc* 是指在运行时发送用户配置文件的能力。例如，您可以通过将用户名作为变量传递来将用户置于他们的主目录中。
+ 有关的详细信息 AWS WAF，请参阅[添加 Web 应用程序防火墙](web-application-firewall.md)。
+ 有一篇博客文章描述了使用与微软 Entra ID（前身为 Azure AD）集成的 Lambda 函数作为 Transfer Family 身份提供商。有关详细信息，请参阅[使用 Azure 活动目录 AWS Transfer Family 进行身份验证和。 AWS Lambda](https://aws.amazon.com/blogs/storage/authenticating-to-aws-transfer-family-with-azure-active-directory-and-aws-lambda/)
+ 我们提供了多个 CloudFormation 模板来帮助您快速部署使用自定义身份提供程序的 Transfer Family 服务器。有关更多信息，请参阅 [Lambda 函数模板](custom-lambda-idp.md#lambda-idp-templates)。

在以下过程中，您可以创建 SFTP-enabled 服务器、 FTPS-enabled服务器、 FTP-enabled 服务器或 AS2-enabled 服务器。

**下一步**
+ [创建 SFTP-enabled 服务器](create-server-sftp.md)
+ [创建 FTPS-enabled 服务器](create-server-ftps.md)
+ [创建 FTP-enabled 服务器](create-server-ftp.md)
+ [配置 AS2](create-b2b-server.md)

## AWS Transfer Family 端点类型矩阵
<a name="endpoint-matrix"></a>

创建 Transfer Family 服务器时，您需要选择要使用的端点类型。下表介绍了每种端点类型的特性。


**端点类型矩阵**  

| 特征 | Public | VPC - 互联网 | VPC - 内部 | VPC\_Endpoint（已弃用） | 
| --- | --- | --- | --- | --- | 
| 受支持的协议 | SFTP | SFTP, FTPS, AS2 | SFTP, FTP, FTPS, AS2 | SFTP | 
| 访问 | 来自互联网。此端点类型不需要在您的 VPC 中进行任何特殊配置。 | 通过互联网以及 VPC 和 VPC-connected 环境内部，例如本地数据中心 Direct Connect 或 VPN。 | 在 VPC 和 VPC-connected 环境中，例如本地数据中心 Direct Connect 或 VPN。 | 在 VPC 和 VPC-connected 环境中，例如本地数据中心 Direct Connect 或 VPN。 | 
| 静态 IP 地址 | 您无法附加静态 IP 地址。 AWS 提供随时可能更改的 IP 地址。 | 您可以将弹性 IP 地址附加到端点。这些地址可以是 AWS自有的 IP 地址或您自己的 IP 地址（[自带 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html)）。附加到端点的弹性 IP 地址不会更改。<br />附加到服务器的私有 IP 地址也不会更改。 | 附加到端点的私有 IP 地址不会更改。 | 附加到端点的私有 IP 地址不会更改。 | 
| 源 IP 允许列表 | 此端点类型不支持按源 IP 地址列出的允许列表。<br />端点可公开访问并侦听端口 22 上的流量。 对于 VPC-hosted 端点，SFTP Transfer Family 服务器可以通过端口 22（默认）、2222、2223 或 22000 运行。  | 要允许通过源 IP 地址进行访问，您可以使用附加到服务器端点的安全组以及附加到端点所在子网的网络 ACL。 | 要允许通过源 IP 地址进行访问，您可以使用附加到服务器端点的安全组以及附加到端点所在子网的网络访问控制列表。 | 要允许通过源 IP 地址进行访问，您可以使用附加到服务器端点的安全组以及附加到端点所在子网的网络 ACL。 | 
| 客户端防火墙允许列表 | 您必须允许服务器的 DNS 名称。<br />由于 IP 地址可能会发生更改，因此请避免将 IP 地址用于您的客户端防火墙允许列表。 | 您可以允许服务器的 DNS 名称或附加到服务器的弹性 IP 地址。 | 您可以允许端点的私有 IP 地址或 DNS 名称。 | 您可以允许端点的私有 IP 地址或 DNS 名称。 | 
| IP 地址类型 | IPv4（默认）或双堆栈（IPv4 和 IPv6） | 仅限 IPv4（不支持双堆栈） | IPv4（默认）或双堆栈（IPv4 和 IPv6） | 仅限 IPv4（不支持双堆栈） | 

**注意**  
`VPC_ENDPOINT` 端点类型现已弃用，无法用于创建新的服务器。不使用`EndpointType=VPC_ENDPOINT`，而是使用 VPC 终端节点类型 (`EndpointType=VPC`)，您可以将其用作**内部**终端节点或**面向 Internet**，如上表所述。  
有关弃用的详细信息，请参阅[停止使用 VPC\_ENDPOINT您可以使用 Transfer Family 控制台、API AWS CLI、软件开发工具包或 CloudFormation更改服务器的终端节点类型。要更改服务器的端点类型，请参阅 [将 AWS Transfer Family 服务器终端节点类型从 VPC\_ENDPOINT 更新到 VPC](update-endpoint-type-vpc.md)。](create-server-in-vpc.md#deprecate-vpc-endpoint)。
有关管理 VPC 终端节点权限的信息，请参阅[限制 Transfer Family 服务器的 VPC 终端节点访问权限](create-server-in-vpc.md#limit-vpc-endpoint-access)。

考虑以下选项来提高 AWS Transfer Family 服务器的安全状况：
+ 使用具有内部访问权限的 VPC 终端节点，这样，只有您的 VPC 或 VPC-connected 环境（例如本地数据中心 Direct Connect 或 VPN）内的客户端才能访问服务器。
+ 要允许客户端通过互联网访问端点并保护您的服务器，请使用具有面向互联网访问权限的 VPC 端点。然后，修改 VPC 的安全组，使其仅允许来自托管用户客户端的某些 IP 地址的流量。
+ 如果您需要基于密码的身份验证，并且在服务器上使用自定义身份提供商，则最佳做法是，您的密码策略可以防止用户创建弱密码并限制失败的登录尝试次数。
+ AWS Transfer Family 是一项托管服务，因此它不提供 shell 访问权限。您无法直接访问底层 SFTP 服务器以在 Transfer Family 服务器上运行 OS 本机命令。
+ 在具有内部访问权限的 VPC 端点前使用网络负载均衡器。将负载均衡器上的侦听器端口从端口 22 更改为其他端口。这可以降低但不能消除端口扫描器和机器人探测服务器的风险，因为端口 22 最常用于扫描。有关详细信息，请参阅博客文章[网络负载均衡器现在支持安全组](https://aws.amazon.com/blogs/containers/network-load-balancers-now-support-security-groups/)。
**注意**  
如果您使用 Network Load Balancer，则 AWS Transfer Family CloudWatch 日志会显示 NLB 的 IP 地址，而不是实际的客户端 IP 地址。

## FTP 和 FTPS 网络负载均衡器注意事项
<a name="ftp-ftps-nlb-considerations"></a>

尽管我们建议避免在 AWS Transfer Family 服务器前面使用网络负载均衡器，但如果您的 FTP 或 FTPS 实施需要在客户端的通信路由中使用 NLB 或 NAT，请遵循以下建议：
+ 对于 NLB，请使用端口 21 而不是端口 8192-8200 进行运行状况检查。
+ 对于 AWS Transfer Family 服务器，通过设置启用 TLS 会话恢复`TlsSessionResumptionMode = ENFORCED`。
**注意**  
这是推荐的模式，因为它提供了增强的安全性：  
要求客户端在后续连接中使用 TLS 会话恢复。
通过确保一致的加密参数来提供更强的安全保障。
有助于防止潜在的降级攻击。
在优化性能的同时保持对安全标准的合规性。
+ 如果可能，请停止使用 NLB，以充分利用 AWS Transfer Family 性能和连接限制。

有关 NLB 替代方案的更多指导，请通过 AWS Support 联系 AWS Transfer Family 产品管理团队。有关改善安全状况的更多信息，请参阅博客文章《[提高 AWS Transfer Family 服务器安全性的六个技巧》](https://aws.amazon.com/blogs/security/six-tips-to-improve-the-security-of-your-aws-transfer-family-server/)。

 中提供了针对 NLB 的安全指导。[避免将 NLB 和 NAT 放在前面 AWS Transfer Family 服务器](infrastructure-security.md#nlb-considerations)