

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

# AWS Transfer Family SFTP 连接器
<a name="creating-connectors"></a>

 AWS Transfer Family SFTP 连接器与远程 SFTP 服务器建立连接，以便使用 SFTP 协议在 Amazon 存储和远程服务器之间传输文件。您可以将文件从 Amazon S3 发送到合作伙伴拥有的外部 SFTP 服务器，将文件从合作伙伴的 SFTP 服务器检索到 Amazon S3，或者在远程服务器上列出、删除、重命名或移动文件。SFTP 连接器支持两种出口类型：服务托管（使用托 AWS 管基础设施）和 VPC（使用 Amazon VPC Lattice 通过您的 VPC 路由）。使用 SFTP 连接器，您可以在中构建自动化、事件驱动的文件传输工作流程。 AWS 

以下视频简要介绍了 Transfer Family SFTP 连接器。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/Gm-FMGrVpAg/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/Gm-FMGrVpAg)


**Topics**
+ [

# 创建 SFTP 连接器
](configure-sftp-connector.md)
+ [

# SFTP 连接器的 VPC 连接
](sftp-connectors-vpc-overview.md)
+ [

# 使用 SFTP 连接器
](transfer-sftp-connectors.md)
+ [

# 监控 SFTP 连接器
](track-connector-progress.md)
+ [

# 管理 SFTP 连接器
](manage-sftp-connectors.md)
+ [

# SFTP 连接器的扩展和配额
](scale-and-limits-sftp-connector.md)
+ [

# 使用 SFTP 连接器的参考架构
](reference-architectures.md)

# 创建 SFTP 连接器
<a name="configure-sftp-connector"></a>

本主题介绍如何创建 SFTP 连接器。每个连接器都提供与一台远程 SFTP 服务器连接的功能。您可以执行以下高级任务来配置 SFTP 连接器。

**注意**  
有关通过虚拟私有云路由流量的基于 VPC 的连接器，请参阅。[使用基于 VPC 的出口创建一个 SFTP 连接器](create-vpc-sftp-connector-procedure.md)

1. 将连接器的身份验证凭据存储在中 AWS Secrets Manager。

1. 通过指定密钥 ARN、远程服务器的 URL 或资源配置 ARN、包含连接器支持的算法的安全策略以及其他配置设置来创建连接器。

1. 创建连接器后，您可以对其进行测试以确保它可以与远程 SFTP 服务器建立连接。

## 选择 SFTP 连接器出口类型
<a name="choosing-egress-type"></a>

创建 SFTP 连接器时，可以在 “服务托管” 和 “VPC Lattice” 之间选择出口类型。
+ **服务托管**（默认）：连接器使用 NAT 网关和拥有的 IP 地址通过 AWS Transfer Family 公共互联网路由连接。该服务为您的连接器提供 3 个静态 IP 地址，这些地址需要在远程服务器上列入许可名单才能建立连接。
+ **VPC Lattice**：连接器使用 Amazon VPC Lattice 通过您的 VPC 环境路由流量。在以下情况下，对 SFTP 连接器使用 VPC 连接：
  + **私有 SFTP 服务器**：连接到只能从您的 VPC 访问的 SFTP 服务器
  + **本地连接**：通过 AWS Direct Connect 或 AWS Virtual Private Network 连接连接到本地 SFTP 服务器
  + **自定义 IP 地址**：向远程服务器提供您自己的 NAT 网关和弹性 IP 地址
  + **集中式安全控制**：通过组织的中央 ingress/egress 控制进行文件传输

以下矩阵可帮助您为用例选择正确的连接器类型。


**SFTP 连接器出口类型矩阵**  

| 能力 | 出口类型 = 服务托管 | 出口类型 = VPC 格子 | 
| --- | --- | --- | 
| 连接到公共托管（可访问互联网）的 SFTP 服务器 | 支持 | 支持 1 | 
| 连接到私有托管（本地）SFTP 服务器 | 不支持 | 支持 2 | 
| 连接到私有托管（vpC 内）SFTP 服务器 | 不支持 | 支持 | 
| 提供给远程 SFTP 服务器的静态 IP 地址 | 通过服务提供的静态 IP 地址提供支持 | 通过客户拥有的静态 IP 地址提供支持 | 
| 可用带宽 | 每个账户 50 MBPS | 客户拥有的资源网关和 NAT 网关提供更高的带宽 | 
| 通过客户自有的 NAT 网关和网络防火墙将流量路由到互联网 | 不支持。NAT 网关由 Transfer Family 服务拥有和管理。 | 支持 | 

1 如果*出口类型 = VPC Lattice，则使用出口中的出口基础设施（NAT 网关）设置支持与公共托管服务器的连接*。 VPCs

2 如果*出口类型 = VPC Lattice，则使用您的 VPC 中的现有网络（例如 AWS Direct Connect 或 VPN）支持与私有托管服务器的连接*。

**Topics**
+ [

## 选择 SFTP 连接器出口类型
](#choosing-egress-type)
+ [

# 在 Secrets Manager 中存储 SFTP 连接器的身份验证凭证
](sftp-connector-secret-procedure.md)
+ [

# 使用服务管理的出口创建一个 SFTP 连接器
](create-sftp-connector-procedure.md)
+ [

# 使用基于 VPC 的出口创建一个 SFTP 连接器
](create-vpc-sftp-connector-procedure.md)
+ [

# 测试 SFTP 连接器
](test-sftp-connector.md)

# 在 Secrets Manager 中存储 SFTP 连接器的身份验证凭证
<a name="sftp-connector-secret-procedure"></a>

您可以使用 Secrets Manager 来存储 SFTP 连接器的用户凭证。创建密钥时，必须提供用户名。此外，您可以提供密码、私钥或两者兼而有之。有关更多信息，请参阅 [SFTP 连接器配额](scale-and-limits-sftp-connector.md#limits-sftp-connector)。

**注意**  
当你在 Secret AWS 账户 s Manager 中存储密钥时，会产生费用。有关定价的信息，请参阅[AWS Secrets Manager 定价](https://aws.amazon.com/secrets-manager/pricing)。

**若要在 Secrets Manager 中存储 SFTP 连接器的用户凭证**

1. 登录 AWS 管理控制台 并打开 AWS Secrets Manager 控制台，网址为[https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)。

1. 在左侧导航窗格中，选择**密钥**。

1. 在**密钥**页面，选择**存储新密钥**。

1. 在**选择密钥类型**页面上，对于**密钥类型**，选择**其他类型密钥**。

1. 提供您的密钥 key/value 信息：您需要提供用户名以及私钥或密码。

   1. 在**键/值对**部分，选择**键/值**选项卡。
      + **键** — 输入**Username**。
      + **valu** e-输入有权连接到合作伙伴服务器的用户名。

   1. **如果要提供密钥对，请选择**添加行**，然后在**键/值对部分，选择键/值**选项卡。**
      + **键** — 输入 **PrivateKey**。
      + **值** — 粘贴您的私钥。

      **提示**：您输入的私钥数据必须与在远程 SFTP 服务器上为该用户存储的公钥相对应。
**注意**  
无法使用受密码保护的私钥通过 SFTP 连接器进行身份验证。 AWS Transfer Family 

      有关如何生成 public/private 密钥对的详细信息，请参阅[在 macOS、Linux 或 Unix 系统创建 SSH 密钥](macOS-linux-unix-ssh.md)。

   1. **如果要提供密码，请选择**添加行**，然后在**键/值对**部分中，选择键/值**选项卡。
      + **键** — 输入 **Password**。
      + **值** — 输入用户的密码。

1. 选择**下一步**。

1. 在**配置密钥**页面，输入密钥的名称和描述。建议对名称使用前缀 **aws/transfer/**。例如，您可以将密钥命名为 **aws/transfer/connector-1**。

1. 选择**下一步**，接受**配置轮换**页面的默认设置。然后选择**下一步**。

1. 在**审核**页面，选择**存储**以创建和存储密钥。

# 使用服务管理的出口创建一个 SFTP 连接器
<a name="create-sftp-connector-procedure"></a>

此过程说明如何使用 AWS Transfer Family 控制台或 AWS CLI创建 SFTP 连接器。

------
#### [ Console ]<a name="create-sftp-connector"></a>

**若要创建 SFTP 连接器**

1. 打开 AWS Transfer Family 控制台，网址为[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/)。

1. 在左侧导航窗格中，选择 **SFTP 连接器**，然后选择**创建 SFTP** 连接器。

1. 在 “**连接器配置**” 部分中，对于 “**出站类型**”，选择 “**服务管理**”。此选项使用 AWS Transfer Family 托管出口基础架构。Transfer Family 服务为每个 SFTP 连接器提供和管理静态 IP 地址。

1. 在**连接器配置**部分中，提供以下信息：  
![\[Transfer Family SFTP 连接器控制台，显示连接器配置设置。\]](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/create-connector-example-config.png)
   + 在 **URL** 中，输入远程 SFTP 服务器的 URL。例如 `sftp://AnyCompany.com`，此 URL 的格式必须为 `sftp://partner-SFTP-server-url`。
**注意**  
（可选）您可以在 URL 中提供端口号。格式为 `sftp://partner-SFTP-server-url:port-number`。默认端口号（未指定端口时）为端口 22。
   + 对于**访问角色**，请选择要使用的 (IAM) 角色的 Amazon 资源名称 AWS Identity and Access Management (ARN)。
     + **确保此角色提供对 `StartFileTransfer` 请求中所使用文件位置父目录提供读取和写入权限**。
     + **请确保此角色为 `secretsmanager:GetSecretValue` 提供访问密钥的权限**。
**注意**  
在策略中，您必须为密钥指定 ARN。ARN 包含机密名称，但在名称后面附加了六个随机的字母数字字符。密钥的 ARN 格式如下。  

       ```
       arn:aws:secretsmanager:region:account-id:secret:aws/transfer/SecretName-6RandomCharacters
       ```
     + **此角色还应包含一个信任关系**，从而允许服务器在为用户的传输请求提供服务时访问您的资源。有关建立信任关系的详细信息，请参阅 [建立信任关系](requirements-roles.md#establish-trust-transfer)。  
****  

     ```
     {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
             "Sid": "AllowListingOfUserFolder",
             "Action": [
                 "s3:ListBucket",
                 "s3:GetBucketLocation"
             ],
             "Effect": "Allow",
             "Resource": [
                 "arn:aws:s3:::amzn-s3-demo-bucket"
             ]
         },
         {
             "Sid": "HomeDirObjectAccess",
             "Effect": "Allow",
             "Action": [
                 "s3:PutObject",
                 "s3:GetObject",
                 "s3:DeleteObject",
                 "s3:DeleteObjectVersion",
                 "s3:GetObjectVersion",
                 "s3:GetObjectACL",
                 "s3:PutObjectACL"
             ],
             "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
         },
         {
             "Sid": "GetConnectorSecretValue",
             "Effect": "Allow",
             "Action": [
                 "secretsmanager:GetSecretValue"
             ],
             "Resource": "arn:aws:secretsmanager:us-west-2:111122223333:secret:aws/transfer/SecretName-6RandomCharacters"
         }
       ]
     }
     ```
**注意**  
对于访问角色，该示例授予对单个密钥的访问权限。但是，您可以使用通配符，如果您想为多个用户和密钥重复使用相同的 IAM 角色，这样可以节省工作量。例如，以下资源语句为名称以 `aws/transfer` 开头的所有密钥授予权限。  

     ```
     "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/*"
     ```
您也可以将包含您的 SFTP 凭据的密钥存储在另一个 AWS 账户中。有关启用跨账户秘密访问的详细信息，请参阅[其他账户中用户的 AWS Secrets Manager 密钥权限](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples_cross.html)。

1. 完成连接器配置：
   + （可选）对于**日志记录角色**，选择连接器用于将事件推送到 CloudWatch 日志的 IAM 角色。以下示例策略列出了记录 SFTP 连接器事件的必要权限。  
****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "VisualEditor0",
                 "Effect": "Allow",
                 "Action": [
                     "logs:CreateLogStream",
                     "logs:DescribeLogStreams",
                     "logs:CreateLogGroup",
                     "logs:PutLogEvents"
                 ],
                 "Resource": "arn:aws:logs:*:*:log-group:/aws/transfer/*"
             }
         ]
     }
     ```

1. 在 **SFTP 配置**面板中提供以下信息：  
![\[Transfer Family SFTP 连接器控制台，显示了 SFTP 配置设置。\]](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/create-connector-example-sftp-config.png)
   + 对于 **Connector 凭据**，从下拉列表中选择包含 SFTP 用户私钥或密码的密钥的名称。 AWS Secrets Manager 您必须创建密钥并以特定方式存储它。有关更多信息，请参阅 [在 Secrets Manager 中存储 SFTP 连接器的身份验证凭证](sftp-connector-secret-procedure.md)。
   + （可选）您可以选择创建连接器，同时将`TrustedHostKeys`参数留空。但是，除非您在连接器的配置中提供此参数，否则您的连接器将无法使用远程服务器传输文件。您可以在创建连接器时输入可信主机密钥，也可以稍后使用`TestConnection`控制台操作或 API 命令返回的主机密钥信息更新您的连接器。也就是说，对于受**信任的主机密钥**文本框，您可以执行以下任一操作：
     + **在创建连接器时提供可信主机密钥。**粘贴用于标识外部服务器的主机密钥的公共部分。您可以添加多个密钥，方法是选择“**添加可信主机密钥**”来添加其他密钥。您可以对 SFTP 服务器使用 `ssh-keyscan` 命令以检索必要的密钥。有关 Transfer Family 支持的受信任主机密钥的格式和类型的详细信息，请参阅 [https://docs.aws.amazon.com//transfer/latest/APIReference/API_SftpConnectorConfig.html](https://docs.aws.amazon.com//transfer/latest/APIReference/API_SftpConnectorConfig.html)。
     + *创建连接器时，请将可信主机密钥文本框留空，稍后再使用此信息更新您的连接器。*如果您在创建连接器时没有主机密钥信息，则可以暂时将此参数留空，然后继续创建连接器。创建连接器后，使用新连接器的 ID 在连接器的详细信息页面中 AWS CLI 或从连接器的详细信息页面运行`TestConnection`命令。如果成功，`TestConnection`将返回必要的主机密钥信息。然后，您可以使用控制台（或通过运行`UpdateConnector` AWS CLI 命令）编辑连接器，并添加运行时返回的主机密钥信息`TestConnection`。
**重要**  
如果您通过运行`TestConnection`来检索远程服务器的主机密钥，请确保对返回的密钥执行 out-of-band验证。  
您必须接受新密钥为可信密钥，或者使用以前从正在连接的远程 SFTP 服务器的所有者那里收到的已知指纹来验证所提供的指纹。
   + （可选）在 “**最大并发连接**数” 中，从下拉列表中选择您的连接器创建到远程服务器的并发连接数。控制台上的默认选择为 **5**。

     此设置指定您的连接器可以同时与远程服务器建立的活动连接的数量。创建并行连接可以通过启用 parallel 操作来提高连接器性能。

1. 在 “**加密算法选项**” 部分，从 “**安全策略**” 字段的下拉列表中选择一个**安全策略**。安全策略允许您选择连接器支持的加密算法。有关可用安全策略和算法的详细信息，请参阅[AWS Transfer Family SFTP 连接器的安全策略](security-policies-connectors.md)。

1. （可选）对于**标签**部分的**键**和**值**，以键/值对格式输入一个或多个标签。

1. 确认所有设置后，选择**创建 SFTP 连接器以创建 SFTP 连接器**。如果成功创建了连接器，则会出现一个屏幕，其中包含分配的静态 IP 地址列表和 “**测试连接**” 按钮。使用按钮测试新连接器的配置。  
![\[成功创建 SFTP 连接器后出现的连接器创建屏幕。它包含一个用于测试连接的按钮以及此连接器的服务管理静态 IP 地址列表。\]](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/connector-success-ip.png)

“**连接器**”页面会出现，其中新 SFTP 连接器的 ID 已添加到列表中。要查看连接器的详细信息，请参阅 [查看 SFTP 连接器详细信息](manage-sftp-connectors.md#sftp-connectors-view-info)。

------
#### [ CLI ]

可使用 [https://docs.aws.amazon.com/transfer/latest/APIReference/API_CreateConnector.html](https://docs.aws.amazon.com/transfer/latest/APIReference/API_CreateConnector.html) 命令创建连接器。要使用此命令创建 SFTP 连接器，必须提供以下信息。
+ 远程 SFTP 服务器的 URL。例如 `sftp://AnyCompany.com`，此 URL 的格式必须为 `sftp://partner-SFTP-server-url`。
+ 访问角色。选择 AWS Identity and Access Management IAM 角色的 Amazon 资源名称 (ARN)。
  + **确保此角色提供对 `StartFileTransfer` 请求中所使用文件位置父目录提供读取和写入权限**。
  + **请确保此角色为 `secretsmanager:GetSecretValue` 提供访问密钥的权限**。
**注意**  
在策略中，您必须为密钥指定 ARN。ARN 包含机密名称，但在名称后面附加了六个随机的字母数字字符。密钥的 ARN 格式如下。  

    ```
    arn:aws:secretsmanager:region:account-id:secret:aws/transfer/SecretName-6RandomCharacters
    ```
  + **此角色还应包含一个信任关系**，从而允许服务器在为用户的传输请求提供服务时访问您的资源。有关建立信任关系的详细信息，请参阅 [建立信任关系](requirements-roles.md#establish-trust-transfer)。  
****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
          "Sid": "AllowListingOfUserFolder",
          "Action": [
              "s3:ListBucket",
              "s3:GetBucketLocation"
          ],
          "Effect": "Allow",
          "Resource": [
              "arn:aws:s3:::amzn-s3-demo-bucket"
          ]
      },
      {
          "Sid": "HomeDirObjectAccess",
          "Effect": "Allow",
          "Action": [
              "s3:PutObject",
              "s3:GetObject",
              "s3:DeleteObject",
              "s3:DeleteObjectVersion",
              "s3:GetObjectVersion",
              "s3:GetObjectACL",
              "s3:PutObjectACL"
          ],
          "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
      },
      {
          "Sid": "GetConnectorSecretValue",
          "Effect": "Allow",
          "Action": [
              "secretsmanager:GetSecretValue"
          ],
          "Resource": "arn:aws:secretsmanager:us-west-2:111122223333:secret:aws/transfer/SecretName-6RandomCharacters"
      }
    ]
  }
  ```
**注意**  
对于访问角色，该示例授予对单个密钥的访问权限。但是，您可以使用通配符，如果您想为多个用户和密钥重复使用相同的 IAM 角色，这样可以节省工作量。例如，以下资源语句为名称以 `aws/transfer` 开头的所有密钥授予权限。  

  ```
  "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/*"
  ```
您也可以将包含您的 SFTP 凭据的密钥存储在另一个 AWS 账户中。有关启用跨账户秘密访问的详细信息，请参阅[其他账户中用户的 AWS Secrets Manager 密钥权限](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples_cross.html)。
+ （可选）为连接器选择用于将事件推送到 CloudWatch 日志的 IAM 角色。以下示例策略列出了记录 SFTP 连接器事件的必要权限。  
****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "VisualEditor0",
              "Effect": "Allow",
              "Action": [
                  "logs:CreateLogStream",
                  "logs:DescribeLogStreams",
                  "logs:CreateLogGroup",
                  "logs:PutLogEvents"
              ],
              "Resource": "arn:aws:logs:*:*:log-group:/aws/transfer/*"
          }
      ]
  }
  ```
+ 提供以下 SFTP 配置信息。
  + 中包含 SFTP 用户的私钥或密码 AWS Secrets Manager 的密钥的 ARN。
  + 用于识别外部服务器的主机密钥的公共部分。如果您愿意，可以提供多个可信的主机密钥。

  提供 SFTP 信息的最简单方法是将其保存到文件中。例如，将以下示例文本复制到名为 `testSFTPConfig.json` 的文件中。

  ```
  // Listing for testSFTPConfig.json
  {   
     "UserSecretId": "arn:aws::secretsmanager:us-east-2:123456789012:secret:aws/transfer/example-username-key",
     "TrustedHostKeys": [
        "sftp.example.com ssh-rsa AAAAbbbb...EEEE="
     ]
  }
  ```
+ 为连接器指定安全策略，输入安全策略名称。

**注意**  
`SecretId`可以是整个 ARN，也可以是密钥的名称（*example-username-key*在前面的列表中）。

然后运行以下命令来创建连接器：

```
aws transfer create-connector --url "sftp://partner-SFTP-server-url" \
--access-role your-IAM-role-for-bucket-access \
--logging-role arn:aws:iam::your-account-id:role/service-role/AWSTransferLoggingAccess \
--sftp-config file:///path/to/testSFTPConfig.json \
--security-policy-name security-policy-name \
--maximum-concurrent-connections integer-from-1-to-5
```

当您描述 VPC 出口类型连接器时，响应将包含新字段：

```
{
   "Connector": { 
      "AccessRole": "arn:aws:iam::123456789012:role/connector-role",
      "Arn": "arn:aws:transfer:us-east-1:123456789012:connector/c-1234567890abcdef0",
      "ConnectorId": "c-1234567890abcdef0",
      "Status": "ACTIVE",
      "EgressConfig": {
        "VpcLattice": {
          "ResourceConfigurationArn": "arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-12345678",
          "PortNumber": 22
        }
      },
      "EgressType": "VPC",
      "ServiceManagedEgressIpAddresses": null,
      "SftpConfig": { 
         "TrustedHostKeys": [ "ssh-rsa AAAAB3NzaC..." ],
         "UserSecretId": "aws/transfer/connector-secret"
      },
      "Url": "sftp://my.sftp.server.com:22"
   }
}
```

请注意，`ServiceManagedEgressIpAddresses`对于 VPC 出口类型连接器，该值为空，因为流量通过您的 VPC 而不是 AWS 托管基础设施路由。

------

# 使用基于 VPC 的出口创建一个 SFTP 连接器
<a name="create-vpc-sftp-connector-procedure"></a>

本主题提供创建具有 VPC 连接的 SFTP 连接器的 step-by-step说明。支持 vpc\$1Lattice 的连接器使用 Amazon VPC Lattice 通过您的虚拟私有云路由流量，从而实现与私有终端节点的安全连接或使用您自己的 NAT 网关访问互联网。

**何时使用 VPC 连接**

在以下情况下，对 SFTP 连接器使用 VPC 连接：
+ **私有 SFTP 服务器**：连接到只能从您的 VPC 访问的 SFTP 服务器。
+ **本地连接**：通过 Di AWS rect Connect 或 AWS Site-to-Site VPN 连接连接到本地 SFTP 服务器。
+ **自定义 IP 地址**：使用您自己的 NAT 网关和弹性 IP 地址，包括 BYOIP 场景。
+ **集中式安全控制**：通过组织的中央 ingress/egress 控制进行文件传输。

![\[架构图显示了 SFTP 连接器基于 VPC 的出口，说明了跨VPC资源访问如何通过您的虚拟私有云实现安全连接。\]](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/vpc-egress-diagram.png)


## 支持 vpc\$1lattice 的 SFTP 连接器的先决条件
<a name="vpc-connector-prerequisites"></a>

在创建支持 vpc\$1lattice 的 SFTP 连接器之前，必须满足以下先决条件：

**基于 VPC 的连接的工作原理**

VPC Lattice 使您能够安全地与其他 AWS 服务共享 VPC 资源。 AWS Transfer Family 使用服务网络来简化资源共享过程。关键组件包括：
+ **资源网关**：用作您的 VPC 的访问点。你可以在你的 VPC 中创建它，至少有两个可用区。
+ **资源配置**：包含要连接的 SFTP 服务器的私有 IP 地址或公有 DNS 名称。

创建支持 vpc\$1Lattice 的连接器时， AWS Transfer Family 使用正向访问会话 (FAS) 临时获取您的凭证，并将您的资源配置与我们的服务网络相关联。

**必需的设置步骤**

1. **VPC 基础设施**：确保您的 VPC 配置正确，其中包含满足您的 SFTP 服务器连接要求所需的子网、路由表和安全组。

1. **资源网关**：使用 VPC Lattice `create-resource-gateway` 命令在您的 VPC 中创建资源网关。资源网关必须与至少两个可用区中的子网关联。有关更多信息，请参阅 *Amazon VPC Lattice 用户指南*中的[资源网关](https://docs.aws.amazon.com/vpc-lattice/latest/ug/resource-gateway.html)。

1. **资源配置**：使用 VPC Lattic `create-resource-configuration` e 命令创建代表目标 SFTP 服务器的资源配置。您可以指定下列之一：
   + 私有端点的私有 IP 地址
   + 公共终端节点的公有 DNS 名称（公共终端节点不支持 IP 地址）

1. **身份验证凭证**： AWS Secrets Manager 如中所述，将 SFTP 用户凭据存储在中。[在 Secrets Manager 中存储 SFTP 连接器的身份验证凭证](sftp-connector-secret-procedure.md)

**重要**  
资源网关和资源配置必须在同一个 AWS 账户中创建。创建资源配置时，必须先设置资源网关。

有关 VPC 资源配置的更多信息，请参阅 *Amazon VPC Lattice 用户指南*中的[资源配置](https://docs.aws.amazon.com/vpc-lattice/latest/ug/resource-configuration.html)。

**注意**  
在 Amazon VPC Lattice 资源可用 AWS 区域 的地方，可以使用 SFTP 连接器的 VPC 连接。有关更多信息，请参阅 [VPC 莱迪思。 FAQs](https://aws.amazon.com/vpc/lattice/faqs/#topic-0)可用区支持因地区而异，资源网关至少需要两个可用区。

## 创建支持 vpc\$1lattice 的 SFTP 连接器
<a name="create-vpc-connector-procedure"></a>

完成先决条件后，您可以使用 AWS 管理控制台或 AWS SDKs创建具有 VPC 连接的 AWS CLI SFTP 连接器。

------
#### [ Console ]<a name="create-vpc-sftp-connector"></a>

**创建支持 vpc\$1lattice 的 SFTP 连接器**

1. 打开 AWS Transfer Family 控制台，网址为[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/)。

1. 在左侧导航窗格中，选择 **SFTP 连接器**，然后选择**创建 SFTP** 连接器。

1. 在**连接器配置**部分中，对于**出口类型，选择 **VPC Lat** t** ice。

   此选项使用 Amazon VPC Lattice 通过您的 VPC 路由流量，实现跨虚拟私有云资源访问。您可以使用此选项连接到私有托管的服务器终端节点，通过 VPC 的安全控制来路由流量，或者使用自己的 NAT 网关和弹性 IP 地址。远程 SFTP 服务器的地址以您的 VPC 中的资源配置表示。有关资源配置的更多信息，请参阅 Amazon [VPC Lattice 用户指南中的 VPC 资源的资源配置](https://docs.aws.amazon.com/vpc-lattice/latest/ug/resource-configuration.html)。

1. 完成连接器配置：
   + 对于**访问角色**，请选择要使用的 (IAM) 角色的 Amazon 资源名称 AWS Identity and Access Management (ARN)。
     + **确保此角色提供对 `StartFileTransfer` 请求中所使用文件位置父目录提供读取和写入权限**。
     + **请确保此角色为 `secretsmanager:GetSecretValue` 提供访问密钥的权限**。
**注意**  
在策略中，您必须为密钥指定 ARN。ARN 包含机密名称，但在名称后面附加了六个随机的字母数字字符。密钥的 ARN 格式如下。  

       ```
       arn:aws:secretsmanager:region:account-id:secret:aws/transfer/SecretName-6RandomCharacters
       ```
     + **此角色还应包含一个信任关系**，从而允许服务器在为用户的传输请求提供服务时访问您的资源。有关建立信任关系的详细信息，请参阅 [建立信任关系](requirements-roles.md#establish-trust-transfer)。  
****  

     ```
     {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
             "Sid": "AllowListingOfUserFolder",
             "Action": [
                 "s3:ListBucket",
                 "s3:GetBucketLocation"
             ],
             "Effect": "Allow",
             "Resource": [
                 "arn:aws:s3:::amzn-s3-demo-bucket"
             ]
         },
         {
             "Sid": "HomeDirObjectAccess",
             "Effect": "Allow",
             "Action": [
                 "s3:PutObject",
                 "s3:GetObject",
                 "s3:DeleteObject",
                 "s3:DeleteObjectVersion",
                 "s3:GetObjectVersion",
                 "s3:GetObjectACL",
                 "s3:PutObjectACL"
             ],
             "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
         },
         {
             "Sid": "GetConnectorSecretValue",
             "Effect": "Allow",
             "Action": [
                 "secretsmanager:GetSecretValue"
             ],
             "Resource": "arn:aws:secretsmanager:us-west-2:111122223333:secret:aws/transfer/SecretName-6RandomCharacters"
         }
       ]
     }
     ```
**注意**  
对于访问角色，该示例授予对单个密钥的访问权限。但是，您可以使用通配符，如果您想为多个用户和密钥重复使用相同的 IAM 角色，这样可以节省工作量。例如，以下资源语句为名称以 `aws/transfer` 开头的所有密钥授予权限。  

     ```
     "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/*"
     ```
您也可以将包含您的 SFTP 凭据的密钥存储在另一个 AWS 账户中。有关启用跨账户秘密访问的详细信息，请参阅[其他账户中用户的 AWS Secrets Manager 密钥权限](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples_cross.html)。
   + 对于**资源配置 ARN**，请输入指向您的 SFTP 服务器的 VPC Lattice 资源配置的 ARN：

     ```
     arn:aws:vpc-lattice:region:account-id:resourceconfiguration/rcfg-12345678
     ```
   + （可选）对于**日志记录角色**，选择连接器用于将事件推送到 CloudWatch 日志的 IAM 角色。  
****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "VisualEditor0",
                 "Effect": "Allow",
                 "Action": [
                     "logs:CreateLogStream",
                     "logs:DescribeLogStreams",
                     "logs:CreateLogGroup",
                     "logs:PutLogEvents"
                 ],
                 "Resource": "arn:aws:logs:*:*:log-group:/aws/transfer/*"
             }
         ]
     }
     ```

1. 在 **SFTP 配置**面板中提供以下信息：
   + 对于**连接器凭据**，请选择中 AWS Secrets Manager 包含 SFTP 用户私钥或密码的密钥的名称。
   + 对于**受信任的主机密钥**，请粘贴用于标识外部服务器的主机密钥的公共部分，或者将其留空，以便以后使用`TestConnection`命令进行配置。

     由于此主机密钥用于 VPC\$1LATTICE 连接器，因此请删除密钥中的主机名
   + （可选）在 “**最大并发连接**数” 中，选择您的连接器创建到远程服务器的并发连接数（默认为 5）。

1. 在**加密算法选项**部分，从下拉列表中选择一个**安全策略**。

1. （可选）在 “**标签**” 部分中，将标签添加为键值对。

1. 选择**创建 SFTP 连接器**以创建支持 vpc\$1Lattice 的 SFTP 连接器。

在配置资源关联`PENDING`时，连接器的创建状态将为，这通常需要几分钟。状态更改为后`ACTIVE`，连接器就可以使用了。

------
#### [ CLI ]

使用以下命令创建支持 vpc\$1lattice 的 SFTP 连接器：

```
aws transfer create-connector \
    --url "sftp://my.sftp.server.com:22" \
    --access-role arn:aws:iam::123456789012:role/TransferConnectorRole \
    --sftp-config UserSecretId=my-secret-id,TrustedHostKeys="ssh-rsa AAAAB3NzaC..." \
    --egress-config VpcLattice={ResourceConfigurationArn=arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-1234567890abcdef0} \
    --security-policy-name TransferSecurityPolicy-2024-01
```

VPC 连接的关键参数是`--egress-config`，它指定了定义您的 SFTP 服务器目标的资源配置 ARN。

------

## 监控 VPC 连接器状态
<a name="vpc-connector-status-monitoring"></a>

支持 vpc\$1Lattice 的连接器具有异步设置过程。创建后，监视连接器状态：
+ **待处理**：连接器正在配置中。服务网络配置正在进行中，通常需要几分钟。
+ **激活**：连接器已准备就绪，可以传输文件。
+ **错误**：连接器配置失败。查看错误详细信息以获取疑难解答信息。

使用`describe-connector`以下命令检查连接器状态：

```
aws transfer describe-connector --connector-id c-1234567890abcdef0
```

在 PENDING 状态下，`test-connection`API 将返回 “连接器不可用”，直到配置完成。

## 限制和注意事项
<a name="vpc-connectivity-limitations"></a>
+ **公共终端节点**：通过 VPC 连接到公共终端节点时，必须在资源配置中提供 DNS 名称。不支持公有 IP 地址。
+ **区域可用**性：VPC 连接仅在部分区域提供 AWS 区域。不支持跨区域资源共享。
+ **可用区要求**：资源网关必须与至少两个可用区中的子网关联。并非所有可用区在每个区域都支持 VPC Lattice。
+ **连接限制**：每个资源最多 350 个连接，TCP 连接的空闲超时时间为 350 秒。

## 成本注意事项
<a name="vpc-connectivity-costs"></a>

 AWS Transfer Family 除常规服务费外，不收取任何额外费用。但是，如果客户使用自己的 NAT 网关访问互联网，则可能需要向 Amazon VPC Lattice 收取与共享其亚马逊虚拟私有云资源相关的额外费用；如果客户使用自己的 NAT 网关访问互联网，则可能需要支付 NAT 网关费用。

要了解完整的 AWS Transfer Family 定价信息，请参阅定[AWS Transfer Family 价页面](https://aws.amazon.com/aws-transfer-family/pricing/)。

## SFTP 连接器的 VPC 连接示例
<a name="sftp-connectors-vpc-examples"></a>

本节提供了在各种场景中创建具有 VPC 连接的 SFTP 连接器的示例。在使用这些示例之前，请确保您已按照 VPC 连接文档中所述完成了 VPC 基础设施设置。

### 示例：私有端点连接
<a name="vpc-connector-private-endpoint-example"></a>

此示例说明如何创建 SFTP 连接器，该连接器可连接到只能从您的 VPC 访问的私有 SFTP 服务器。

**先决条件**

1. 在您的 VPC 中创建资源网关：

   ```
   aws vpc-lattice create-resource-gateway \
       --name my-private-server-gateway \
       --vpc-identifier vpc-1234567890abcdef0 \
       --subnet-ids subnet-1234567890abcdef0 subnet-0987654321fedcba0
   ```

1. 为您的私有 SFTP 服务器创建资源配置：

   ```
   aws vpc-lattice create-resource-configuration \
       --name my-private-server-config \
       --resource-gateway-identifier rgw-1234567890abcdef0 \
       --resource-configuration-definition ipResource={ipAddress="10.0.1.100"} \
       --port-ranges 22
   ```

**创建支持 vpc\$1lattice 的连接器**

1. 创建具有 VPC 连接的 SFTP 连接器：

   ```
   aws transfer create-connector \    
       --access-role arn:aws:iam::123456789012:role/TransferConnectorRole \
       --sftp-config UserSecretId=my-private-server-credentials,TrustedHostKeys="ssh-rsa AAAAB3NzaC..." \
       --egress-config VpcLattice={ResourceConfigurationArn=arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-1234567890abcdef0,PortNumber=22}
   ```

1. 监视连接器状态，直到它变成`ACTIVE`：

   ```
   aws transfer describe-connector --connector-id c-1234567890abcdef0
   ```

远程 SFTP 服务器将看到来自您的 VPC CIDR 范围内的资源网关 IP 地址的连接。

### 示例：通过 VPC 的公共终端节点
<a name="vpc-connector-public-endpoint-example"></a>

此示例说明如何通过您的 VPC 将连接路由到公有 SFTP 服务器，以利用集中式安全控制并使用您自己的 NAT 网关 IP 地址。

**先决条件**

1. 在您的 VPC 中创建资源网关（与私有终端节点示例相同）。

1. 使用公共 SFTP 服务器的 DNS 名称为其创建资源配置：

   ```
   aws vpc-lattice create-resource-configuration \
       --name my-public-server-config \
       --resource-gateway-identifier rgw-1234567890abcdef0 \
       --resource-configuration-definition dnsResource={domainName="sftp.example.com"} \
       --port-ranges 22
   ```
**注意**  
对于公共终端节点，必须使用 DNS 名称，而不是 IP 地址。

**创建连接器**
+ 创建 SFTP 连接器：

  ```
  aws transfer create-connector \
      --access-role arn:aws:iam::123456789012:role/TransferConnectorRole \
      --sftp-config UserSecretId=my-public-server-credentials,TrustedHostKeys="ssh-rsa AAAAB3NzaC..." \
      --egress-config VpcLattice={ResourceConfigurationArn=arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-0987654321fedcba0,PortNumber=22}
  ```

流量将从连接器流向您的资源网关，然后通过您的 NAT 网关到达公共 SFTP 服务器。远程服务器会将您的 NAT 网关的弹性 IP 地址视为来源。

### 示例：跨账户私有终端节点
<a name="vpc-connector-cross-account-example"></a>

此示例说明如何使用资源共享以不同的 AWS 账户连接到私有 SFTP 服务器。

**注意**  
如果您已经通过其他机制（例如）启用了跨VPC资源共享 AWS Transit Gateway，则无需配置此处所述的资源共享。SFTP 连接器会自动使用现有的路由机制，例如 Transit Gateway 路由表。您只需要在创建 SFTP 连接器的同一个帐户中创建资源配置即可。

**账户 A（资源提供者）-共享资源配置**

1. 在账户 A 中创建资源网关和资源配置（与前面的示例相同）。

1. 使用 Resource Access Manager 与账户 B 共享 AWS 资源配置：

   ```
   aws ram create-resource-share \
       --name cross-account-sftp-share \
       --resource-arns arn:aws:vpc-lattice:us-east-1:111111111111:resourceconfiguration/rcfg-1234567890abcdef0 \
       --principals 222222222222
   ```

**账户 B（资源使用者）-接受并使用共享**

1. 接受资源共享邀请：

   ```
   aws ram accept-resource-share-invitation \
       --resource-share-invitation-arn arn:aws:ram:us-east-1:111111111111:resource-share-invitation/invitation-id
   ```

1. 在账户 B 中创建 SFTP 连接器：

   ```
   aws transfer create-connector \
       --access-role arn:aws:iam::222222222222:role/TransferConnectorRole \
       --sftp-config UserSecretId=cross-account-server-credentials,TrustedHostKeys="ssh-rsa AAAAB3NzaC..." \
       --egress-config VpcLattice={ResourceConfigurationArn=arn:aws:vpc-lattice:us-east-1:111111111111:resourceconfiguration/rcfg-1234567890abcdef0,PortNumber=22}
   ```

账户 B 中的连接器现在可以通过共享资源配置访问账户 A 中的专用 SFTP 服务器。

### 常见故障排除场景
<a name="vpc-connector-troubleshooting-examples"></a>

以下是创建启用 vpc\$1Lattice 的连接器时常见问题的解决方案：
+ **连接器停留在 PENDING 状态**：检查您的资源网关是否处于活动状态，并且子网位于支持的可用区。如果连接器仍处于 PENDING 状态，请`UpdateConnector`使用最初使用的相同配置参数进行调用。这会触发一个可能解决问题的新状态事件。
+ **连接超时**：验证安全组规则允许端口 22 上的流量以及您的 VPC 路由是否正确。
+ **DNS 解析问题**：对于公共终端节点，请确保您的 VPC 通过 NAT 网关或 Internet Gateway 实现互联网连接。
+ **跨账户访问被拒绝**：验证资源共享是否被接受以及资源配置 ARN 是否正确。如果在原始账户创建资源共享时将适当的权限策略附加到资源配置中，则需要以下权限：`vpc-lattice:AssociateViaAWSService`、`vpc-lattice:AssociateViaAWSService-EventsAndStates`、`vpc-lattice:CreateServiceNetworkResourceAssociation`、`vpc-lattice:GetResourceConfiguration`。

# 测试 SFTP 连接器
<a name="test-sftp-connector"></a>

创建 SFTP 连接器后，我们建议您在尝试使用新连接器传输任何文件之前对其进行测试。

**若要测试 SFTP 连接器**

1. 打开 AWS Transfer Family 控制台，网址为[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/)。

1. 在左侧导航窗格中，选择 **SFTP 连接器**，然后选择一个连接器。

1. 从**操作**菜单中选择**测试连接**。  
![\[Transfer Family 控制台显示了选定的 SFTP 连接器，并突出显示了“测试连接”操作。\]](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/connector-test-choose.png)

系统会返回一条消息，指示测试是通过还是失败。如果测试失败，系统会根据测试失败的原因提供错误消息。

![\[SFTP 连接器测试连接面板，显示测试成功。\]](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/connector-test-success.png)


![\[SFTP 连接器测试连接面板显示测试失败：错误消息表明连接器的访问角色不正确。\]](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/connector-test-fail-role.png)


**注意**  
要使用 API 测试您的连接器，请参阅 [https://docs.aws.amazon.com/transfer/latest/APIReference/API_TestConnection](https://docs.aws.amazon.com/transfer/latest/APIReference/API_TestConnection) API 文档。

# SFTP 连接器的 VPC 连接
<a name="sftp-connectors-vpc-overview"></a>

AWS Transfer Family SFTP 连接器支持使用 Amazon VPC Lattice 通过您的 VPC 环境连接到远程 SFTP 服务器。这使您能够连接私有托管的 SFTP 服务器或通过 VPC 的安全控制来路由互联网流量，并使用自己的 NAT 网关和弹性 IP 地址。

**出口类型**

SFTP 连接器可以使用以下两种出口类型之一：
+ **服务托管**（默认）：连接器使用 NAT 网关和拥有的 IP 地址通过 AWS Transfer Family 公共互联网路由连接。
+ **VPC\$1LATTICE：连接**器使用跨虚拟私有网络资源访问通过您的 VPC 环境路由流量。

**何时使用 VPC 连接**

在以下情况下，对 SFTP 连接器使用 VPC 连接：
+ **私有 SFTP 服务器**：连接到只能从您的 VPC 访问的 SFTP 服务器。
+ **本地连接**：通过 Di AWS rect Connect 或 AWS Site-to-Site VPN 连接连接到本地 SFTP 服务器。
+ **自定义 IP 地址**：使用您自己的 NAT 网关和弹性 IP 地址，包括 BYOIP 场景。
+ **集中式安全控制**：通过组织的中央 ingress/egress 控制进行文件传输。

**要求**

在创建支持 vpc\$1lattice 的 SFTP 连接器之前，您需要：
+ VPC 和相关基础设施（子网、路由表、安全组）
+ 您的 VPC 中的资源网关（至少两个可用区）
+ 指定目标 SFTP 服务器的资源配置

有关详细的设置说明，请参阅[创建支持 vpc\$1lattice 的 SFTP 连接器](create-vpc-sftp-connector-procedure.md#create-vpc-connector-procedure)。而且，有关示例，请参阅[SFTP 连接器的 VPC 连接示例](create-vpc-sftp-connector-procedure.md#sftp-connectors-vpc-examples)。

# 使用 SFTP 连接器
<a name="transfer-sftp-connectors"></a>

本主题介绍如何使用 SFTP 连接器执行支持的文件操作。您还可以在 AWS Transfer Family 控制台上选择连接器的详细信息，找到用于执行这些操作的示例命令[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/)。

创建 SFTP 连接器后，您可以使用它在与之关联的远程 SFTP 服务器上执行以下文件操作。
+ 将文件从 Amazon S3 发送到远程 SFTP 服务器。
+ 将文件从远程 SFTP 服务器检索到 Amazon S3。
+ 列出远程 SFTP 服务器上某个目录中的文件和子文件夹。
+ 删除、重命名或移动远程 SFTP 服务器上的文件和目录。

有关创建连接器的详细信息，请参阅 [创建 SFTP 连接器](configure-sftp-connector.md)。

**Topics**
+ [

# 传输文件
](transfer-files-and-track.md)
+ [

# 列出远程目录的内容
](sftp-connector-list-dir.md)
+ [

# 移动、重命名或删除远程服务器上的文件或目录
](move-delete-remote-files.md)

# 传输文件
<a name="transfer-files-and-track"></a>

**Topics**
+ [

## 使用 SFTP 连接器发送和检索文件
](#send-retrieve-connector-details)

## 使用 SFTP 连接器发送和检索文件
<a name="send-retrieve-connector-details"></a>

要使用 SFTP 连接器发送和检索文件，您可以使用 [https://docs.aws.amazon.com/transfer/latest/APIReference/API_StartFileTransfer.html](https://docs.aws.amazon.com/transfer/latest/APIReference/API_StartFileTransfer.html)API 操作并指定以下参数，具体取决于您是*发送文件*（出站传输）还是*接收文件*（入站传输）。请注意，每个`StartFileTransfer`请求可以包含 10 个不同的路径。

**注意**  
 默认情况下，SFTP 连接器一次处理一个文件，按顺序传输文件。您可以选择让连接器与支持来自同一用户的并发会话的远程服务器创建并行会话，并行处理最多 5 个文件，从而提高传输性能。  
 要为任何连接器启用并发连接，可以在创建或更新**连接器时编辑 “最大并发连接数**” 设置。有关更多信息，请参阅 [使用服务管理的出口创建一个 SFTP 连接器](create-sftp-connector-procedure.md)。
+ **出站传输** 
  + `send-file-paths` 包含一到十个源文件路径，用于将文件传输到合作伙伴的 SFTP 服务器。
  + `remote-directory-path` 是客户的 SFTP 服务器上向其发送文件的远程路径。
+ **入站传输** 
  + `retrieve-file-paths` 包含一到十条远程路径。每个路径都指定了将文件从合作伙伴的 SFTP 服务器传输到您的 Transfer Family 服务器的位置。
  + `local-directory-path` 是存储文件的 Amazon S3 位置（存储桶和可选前缀）。

要发送文件，请指定 `send-file-paths` 和 `remote-directory-path` 参数。您最多可以为 `send-file-paths` 参数指定 10 个文件。以下示例命令将位于 Amazon S3 存储空间中的名为 `/amzn-s3-demo-source-bucket/file1.txt` 和 `/amzn-s3-demo-source-bucket/file2.txt` 的文件发送到合作伙伴的 SFTP 服务器上的 `/tmp` 目录。要使用此示例命令，请将 `amzn-s3-demo-source-bucket` 替换为您自己的存储桶。

```
aws transfer start-file-transfer --send-file-paths /amzn-s3-demo-source-bucket/file1.txt /amzn-s3-demo-source-bucket/file2.txt \
    --remote-directory-path /tmp --connector-id c-1111AAAA2222BBBB3 --region us-east-2
```

要检索文件，请指定`retrieve-file-paths`和`local-directory-path`参数。以下示例检索合作伙伴的 SFTP 服务器`/my/remote/file2.txt`上的文件`/my/remote/file1.txt`，并将其放置在 Amazon S3 位置 /amzn-s3-demo-bucket/ 中。*prefix*要使用此示例命令，请将 `user input placeholders` 替换为您自己的信息。

```
aws transfer start-file-transfer --retrieve-file-paths /my/remote/file1.txt  /my/remote/file2.txt \
   --local-directory-path /amzn-s3-demo-bucket/prefix --connector-id c-2222BBBB3333CCCC4 --region us-east-2
```

前面的示例指定了 SFTP 服务器上的绝对路径。您也可以使用相对路径：即相对于 SFTP 用户主目录的路径。例如，如果 SFTP 用户是 `marymajor`，而他们在 SFTP 服务器上的主目录是 `/users/marymajor/`，则以下命令会将 `/amzn-s3-demo-source-bucket/file1.txt` 发送到 `/users/marymajor/test-connectors/file1.txt`

```
aws transfer start-file-transfer --send-file-paths /amzn-s3-demo-source-bucket/file1.txt \
   --remote-directory-path test-connectors --connector-id c-2222BBBB3333CCCC4 --region us-east-2
```

# 列出远程目录的内容
<a name="sftp-connector-list-dir"></a>

在从远程 SFTP 服务器检索文件之前，可以检索远程 SFTP 服务器上目录的内容。为此，你可以使用 [https://docs.aws.amazon.com/transfer/latest/APIReference/API_StartDirectoryListing.html](https://docs.aws.amazon.com/transfer/latest/APIReference/API_StartDirectoryListing.html)API 操作。

以下示例列出了远程 SFTP 服务器上该`home`文件夹的内容，该内容是在连接器的配置中指定的。结果将放入 Amazon S3 位置`/amzn-s3-demo-bucket/connector-files`和名为的文件中`c-AAAA1111BBBB2222C-6666abcd-11aa-22bb-cc33-0000aaaa3333.json`。

```
aws transfer start-directory-listing  \
   --connector-id c-AAAA1111BBBB2222C  \ 
   --output-directory-path /amzn-s3-demo-bucket/example/connector-files  \
   --remote-directory-path /home
```

此 AWS CLI 命令返回列表 ID 和包含结果的文件的名称。

```
{
    "ListingId": "6666abcd-11aa-22bb-cc33-0000aaaa3333",
    "OutputFileName": "c-AAAA1111BBBB2222C-6666abcd-11aa-22bb-cc33-0000aaaa3333.json"
}
```

**注意**  
输出文件的命名约定为`connector-ID-listing-ID.json`。

JSON 文件包含以下信息：
+ `filePath`：远程文件的完整路径，相对于远程服务器上 SFTP 连接器的列出请求目录。
+ `modifiedTimestamp`：上次修改文件的时间，以秒为单位，采用协调世界时 (UTC) 格式。该字段是可选的。如果远程文件属性不包含时间戳，则文件列表中将省略该时间戳。
+ `size`: 文件的大小，以字节为单位。该字段是可选的。如果远程文件属性不包含文件大小，则会将其从文件列表中省略。
+ `path`：远程目录的完整路径，相对于远程服务器上的 SFTP 连接器的列出请求目录。
+ `truncated`: 一个标志，指示列表输出是否包含远程目录中包含的所有项目。如果您的`truncated`输出值为 true，则可以增加可选`max-items`输入属性中提供的值，以便能够列出更多项目（允许的最大列表大小为 10,000 个）。

以下是输出文件 (`c-AAAA1111BBBB2222C-6666abcd-11aa-22bb-cc33-0000aaaa3333.json`) 内容的示例，其中远程目录包含两个文件和两个子目录（路径）。

```
{
    "files": [
        {
            "filePath": "/home/what.txt",
            "modifiedTimestamp": "2024-01-30T20:34:54Z",
            "size" : 2323
        },
        {
            "filePath": "/home/how.pgp",
            "modifiedTimestamp": "2024-01-30T20:34:54Z",
            "size" : 4691
        }
    ],
    "paths": [
        {
            "path": "/home/magic"
        },
        {
            "path": "/home/aws"
        },
    ],
    "truncated": "false"
}
```

# 移动、重命名或删除远程服务器上的文件或目录
<a name="move-delete-remote-files"></a>

**Topics**
+ [

## 移动或重命名远程 SFTP 服务器上的文件或目录
](#move-remote-file)
+ [

## 删除远程 SFTP 服务器上的文件或目录
](#delete-remote-file)

## 移动或重命名远程 SFTP 服务器上的文件或目录
<a name="move-remote-file"></a>

您可以使用 SFTP 连接器移动或重命名远程 SFTP 服务器上的文件和目录。请注意，远程服务器需要支持这些操作才能成功使用连接器进行处理。

一些常见的用例如下。
+ 远程服务器每小时生成或接收一个新文件，文件名相同，但时间戳不同。要使主文件夹保持最新状态（使其仅包含最新文件），您可以使用连接器将较旧的文件移至已存档文件夹。
+ 您可以使用连接器列出远程目录中的所有文件，然后将所有文件传输到本地存储。然后，您可以使用连接器将文件移动到远程服务器上的已存档文件夹。

您必须对要处理的每个文件或目录使用`StartRemoteMove`调用，因为该命令将单个源文件和目标文件或目录作为参数。但是，您可以通过让连接器创建与远程服务器的并发会话来提高性能，这些会话支持来自同一用户的并行会话以及 move/rename 最多 5 个并行文件。

以下示例将远程 SFTP 服务器上的文件从移动`/source/folder/sourceFile`到`/destination/targetFile`，并返回该操作的唯一标识符。

```
aws transfer --connector-id c-AAAA1111BBBB2222C start-remote-move \
   --source-path /source/folder/sourceFile --target-path /destination/targetFile
```

**注意**  
对于这些 move/rename 操作，Transfer Family 使用标准`SFTP SSH_FXP_RENAME`命令来执行 move/rename 操作。

## 删除远程 SFTP 服务器上的文件或目录
<a name="delete-remote-file"></a>

您可以使用 SFTP 连接器删除远程 SFTP 服务器上的文件或目录。请注意，远程服务器需要支持这些操作才能成功使用连接器进行处理。

**注意**  
只有空目录才支持远程目录的删除操作。

一些常见的用例如下。
+ 您可以使用连接器从远程 SFTP 服务器检索文件，将其存储在 Amazon S3 存储桶中，然后对其进行加密。最后，您可以使用连接器删除远程服务器上未加密的文件。
+ 您可以使用连接器列出远程目录中的所有文件，然后将所有文件传输到本地存储。然后，您可以使用连接器删除您传输的所有文件。如果您愿意，也可以删除远程目录。

您必须对要删除的每个文件或目录使用`StartRemoteDelete`调用，因为该命令将单个文件或目录作为参数。但是，您可以让连接器与支持来自同一用户的并发会话的远程服务器创建并行会话，并行删除最多 5 个 files/directories 会话，从而提高性能。

以下示例删除远程 SFTP 服务器上路径中的一个文件`/delete/folder/deleteFile`，并返回该操作的唯一标识符。

```
aws transfer start-remote-delete --connector-id c-AAAA1111BBBB2222C \
   --delete-path /delete/folder/deleteFile
```

**注意**  
对于删除操作，Transfer Family 使用标准`SSH_FXP_REMOVE`命令删除文件和`SSH_FXP_RMDIR`删除目录。

# 监控 SFTP 连接器
<a name="track-connector-progress"></a>

您可以使用以下任何一种方法来监控连接器操作的状态。选择满足您需求的方法。

## 使用连接器 API 查询文件传输请求的状态
<a name="sftp-connector-api-query"></a>

要跟踪文件传输操作的进度，您可以使用 [https://docs.aws.amazon.com//transfer/latest/APIReference/API_ListFileTransferResults.html](https://docs.aws.amazon.com//transfer/latest/APIReference/API_ListFileTransferResults.html)API 操作，该操作会返回有关在特定文件传输操作中传输的每个文件状态的实时更新和详细信息。您可以通过提供其连接器 ID 和传输 ID 来指定文件传输。以下示例返回连接器 ID `a-11112222333344444` 和传输 `aa1b2c3d4-5678-90ab-cdef-EXAMPLE11111` ID 的文件列表。

```
aws transfer list-file-transfer-results --connector-id a-11112222333344444 --transfer-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
```

**注意**  
文件传输结果将在您调用 `ListFileTransferResults` API 操作后 7 天内公布。

您还可以查看使用 SFTP 连接器的文件传输请求的日志和事件。中描述了 Transfer Family 的亚马逊 EventBridge 活动[SFTP 连接器事件](events-detail-reference.md#event-detail-sftp-connector-events)。有关如何查看 Transfer Famil CloudWatch y 日志条目，请参阅[查看 Transfer Family 日志流](view-log-entries.md)。

## 在亚马逊上查看 SFTP 连接器事件 EventBridge
<a name="track-connector-progress-eventbridge"></a>

对于 SFTP 连接器执行的每项操作，Transfer Family 都会自动生成事件并将其发送到您的亚马逊 EventBridge 账户中的默认事件总线。这些事件包含有关操作的详细元数据，包括操作状态。您可以在中订阅这些事件 EventBridge，根据操作状态等特定事件条件应用过滤器，并根据状态自动触发下游操作。有关 SFTP 连接器操作生成的事件的详细信息，请参阅[SFTP 连接器事件](events-detail-reference.md#event-detail-sftp-connector-events)。

## 在亚马逊上查看 SFTP 连接器日志 CloudWatch
<a name="track-connector-cloudwatch"></a>

所有 SFTP 连接器操作都会生成详细的日志。 CloudWatch有关 SFTP 连接器生成的日志条目的示例，请参阅[SFTP 连接器的日志条目示例](cw-example-logs.md#example-sftp-connector-logs)。

## 监控 VPC 出口类型连接器
<a name="vpc-connector-monitoring"></a>

除了标准服务托管连接器之外，VPC 出口类型连接器还提供其他监控功能和注意事项：

### 连接器状态监控
<a name="vpc-connector-status-monitoring"></a>

VPC\$1LATTICE 连接器包含其他信息，可帮助您监控配置和运行状态：
+ **EgressType 字段**：显示 `VPC` VPC\$1LATTICE 出口类型连接器
+ **EgressConfig 字段**：包含资源配置 ARN 和端口信息

使用 `describe-connector` API 监控连接器状态：

```
aws transfer describe-connector --connector-id c-1234567890abcdef0
```

### VPC 莱迪思成本监控
<a name="vpc-lattice-cost-monitoring"></a>

VPC 出口类型连接器会产生额外的 VPC 莱迪思费用，您应监控这些费用：
+ **资源提供商费用**：作为资源提供者，您需要支付0.006/GB的数据处理费用（由VPC Lattice直接计费）
+ **资源使用者费用**：Trans AWS fer Family 吸收了 0.01 美元/GB 的资源消耗成本（前 1 PB）
+ **NAT 网关费用**：对于通过 VPC 访问的公共终端节点，可能会收取额外的 NAT 网关和数据传输费用
+ T@@ **ransfer Family 费用**：仍然收取 0.40 美元/GB 的标准数据处理费

通过成本和账单控制台，通过VPC Lattice服务进行筛选，监控VPC Lattice的使用情况和 AWS 成本。

### VPC 连接器的网络监控
<a name="vpc-network-monitoring"></a>

监控 VPC 出口类型连接器的网络活动和性能：
+ **VPC 流日志**：启用 VPC 流日志以监控资源网关和 SFTP 服务器之间的网络流量模式
+ **VPC Lattice 访问日志**：VPC Lattice 提供显示 source/destination IP 地址、连接时间和数据传输量的访问日志
+ **安全组监控**：监控安全组规则和流量模式，确保适当的网络访问控制
+ **DNS 解析监控**：监控服务网络端点的 DNS 解析时间和故障

VPC 莱迪思访问日志条目示例：

```
{
  "eventTimestamp": "2025-01-16T20:59:08.531Z",
  "serviceNetworkArn": "arn:aws:vpc-lattice:us-east-1:123456789012:servicenetwork/sn-1234567890abcdef0",
  "sourceVpcArn": "arn:aws:ec2:us-east-1:123456789012:vpc/vpc-12345678",
  "resourceConfigurationArn": "arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-12345678",
  "protocol": "tcp",
  "sourceIpPort": "10.0.1.100:33760",
  "destinationIpPort": "10.0.2.200:22",
  "gatewayIpPort": "10.0.1.150:1769",
  "resourceIpPort": "10.0.2.200:22"
}
```

### 通过监控进行故障排除
<a name="vpc-connector-troubleshooting-monitoring"></a>

使用监控数据对常见的 VPC 连接器问题进行故障排除：
+ **待处理状态**：监控 DNS 解析进度，等待激活状态后再尝试传输
+ **连接超时**：查看 VPC 流日志和安全组规则中是否存在端口 22 上被封锁的流量
+ **传输失败**：查看 CloudWatch 日志以获取详细的错误消息，查看VPC Lattice访问日志以了解网络级别的问题
+ **性能问题**：监控 VPC Lattice 访问日志，了解连接时间和吞吐量指标

# 管理 SFTP 连接器
<a name="manage-sftp-connectors"></a>

本主题介绍如何查看和更新 SFTP 连接器。

**注意**  
系统会自动为每个连接器分配静态 IP 地址，这些地址在连接器的生命周期内保持不变。这允许您连接仅接受来自已知 IP 地址的入站连接的远程 SFTP 服务器。您的连接器会分配一组静态 IP 地址，这些地址由您 AWS 账户中使用相同协议（SFTP 或 AS2）的所有连接器共享。  
对于启用 vpc\$1lattice 的连接器，远程 SFTP 服务器将看到来自您的 VPC CIDR 范围的 IP 地址，而不是服务管理的 IP 地址。 AWS Transfer Family 

## 更新 SFTP 连接器
<a name="update-sftp-connector"></a>

要更改连接器的现有参数值，可以运行 `update-connector` 命令。以下命令将区域 `region-id` 中连接器 `connector-id` 的密钥更新为 `secret-ARN`。要使用此示例命令，请将 `user input placeholders` 替换为您自己的信息。

```
aws transfer update-connector --sftp-config '{"UserSecretId":"secret-ARN"}' \
   --connector-id connector-id --region region-id
```

### 更新 VPC 连接设置
<a name="update-vpc-connector"></a>

您可以更新现有连接器的 VPC 连接设置，包括在服务管理和 VPC 出口类型之间切换或更改资源配置 ARN。

要将连接器从服务托管切换到 VPC 出口，请执行以下操作：

```
aws transfer update-connector \
   --connector-id connector-id \
   --egress-type VPC \
   --egress-config ResourceConfigurationArn=resource-configuration-arn
```

要更新启用 vpc\$1lattice 的连接器的资源配置 ARN，请执行以下操作：

```
aws transfer update-connector \
   --connector-id connector-id \
   --egress-config ResourceConfigurationArn=new-resource-configuration-arn
```

**注意**  
更新 VPC 连接设置时，在重新配置`PENDING`过程中，连接器状态将更改为。使用`describe-connector`命令监控连接器状态。

## 查看 SFTP 连接器详细信息
<a name="sftp-connectors-view-info"></a>

您可以在 AWS Transfer Family 控制台中找到 SFTP 连接器的详细信息和属性列表。

**要查看连接器详细信息**

1. 打开 AWS Transfer Family 控制台，网址为[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/)。

1. 在左侧导航窗格中，选择**连接器**。

1. 在“**连接器 ID**”列中选择标识符以查看所选连接器的详细信息页面。

您可以通过在连接器详细信息页面上选择**编辑**来更改 SFTP 连接器的属性。

### 监控 VPC 连接器状态
<a name="vpc-connector-status-monitoring"></a>

启用 vpc\$1Lattice 的连接器包括其他状态信息，可帮助您监控配置过程：
+ **状态**：节目`PENDING``ACTIVE`、或 `ERRORED`
+ **EgressType**: 节目`VPC`或 `SERVICE_MANAGED`
+ **EgressConfig**: 包含 VPC 连接器的资源配置 ARN
+ **错误**：如果连接器`ERRORED`处于状态，则提供详细的错误信息

对于 VPC 连接器，该`ServiceManagedEgressIpAddresses`字段将为空，因为流量会改用您的 VPC IP 地址。

**注意**  
你可以通过运行以下 AWS Command Line Interface (AWS CLI) 命令来获取其中的大部分信息，尽管格式不同。要使用此示例命令，请将 `user input placeholders` 替换为您自己的信息。  

```
aws transfer describe-connector --connector-id your-connector-id
```
有关更多信息，请参阅《 API 参考》中的 [https://docs.aws.amazon.com/transfer/latest/APIReference/API_DescribeConnector.html](https://docs.aws.amazon.com/transfer/latest/APIReference/API_DescribeConnector.html)。

# SFTP 连接器的扩展和配额
<a name="scale-and-limits-sftp-connector"></a>

**Topics**
+ [

## SFTP 连接器配额
](#limits-sftp-connector)
+ [

## 扩展您的 SFTP 连接器
](#scaling-sftp-connector)

## SFTP 连接器配额
<a name="limits-sftp-connector"></a>

SFTP 连接器有以下配额。

**注意**  
SFTP 连接器的更多服务配额列在[AWS Transfer Family 终端节点和配额](https://docs.aws.amazon.com//general/latest/gr/transfer-service.html)中。*Amazon Web Services 一般参考*


**SFTP 连接器配额**  

| Name | 默认值 | 可调整 | 
| --- | --- | --- | 
| 每秒最大测试连接事务数 (TPS) | 每账户每秒 1 个请求 | 否 | 
| 待处理文件传输的最大队列大小 | 1000 | 否 | 
| 最大文件大小 | 150 千兆字节 (GiB) | 否 | 
| 每个文件的最大传输时间 | 12 小时 | 否 | 
| 每个文件的最大请求等待时间 | 12 小时 | 否 | 
| 每个账户的连接器的最大带宽（SFTP 和 AS2连接器均构成此值） | 50 MBps | 不可以 | 
| 目录列出操作的最大项目数 | 10000 | 否 | 

**注意**  
 默认情况下，SFTP 连接器一次处理一个文件，按顺序传输文件。您可以选择让连接器与支持来自同一用户的并发会话的远程服务器创建并行会话，并行处理最多 5 个文件，从而提高传输性能。  
 要为任何连接器启用并发连接，可以在创建或更新**连接器时编辑 “最大并发连接数**” 设置。有关更多信息，请参阅 [使用服务管理的出口创建一个 SFTP 连接器](create-sftp-connector-procedure.md)。

为了存储 SFTP 连接器的凭证，每个 Secrets Manager 密钥都有与之关联的配额。如果您出于多种目的使用同一个密钥来存储多种类型的密钥，则可能会遇到这些配额。
+ 单个密钥的总长度：12,000 个字符
+ **Password**字符串的最大长度：1024 个字符
+ **PrivateKey**字符串的最大长度：8192 个字符
+ **Username**字符串的最大长度：100 个字符

## 扩展您的 SFTP 连接器
<a name="scaling-sftp-connector"></a>

本节介绍如何扩展 AWS Transfer Family SFTP 连接器工作负载的注意事项。当你想使用 SFTP 连接器扩展工作负载时，你需要考虑以下三个配额。
+ **最大队列大小。**这是指连接器队列中已请求的最大待处理操作数。待处理操作是指之前提交的任何尚未完成的转移请求，无论成功还是失败。

  待处理请求的最大队列深度目前设置为每个连接器 1,000（如[AWS Transfer Family 服务配额](https://docs.aws.amazon.com//general/latest/gr/transfer-service.html)中所定义）。当您在短时间内请求数千次传输操作时，您的工作负载可能会超过此服务限制，并且您将收到一条`ThrottlingException`消息，消息显示已超出最大待处理请求数。如果您的工作负载受此配额限制，请通过联系Transfer Family服务团队 AWS 支持 或您的客户团队，讨论您的可扩展性要求。

  您也可以采取以下任一或两项操作。
  + 将您的文件卷分发到多个连接器上。
  +  让您的连接器与远程服务器创建并行会话，以并行处理来自队列的多个请求。
+ **并发会话数。**默认情况下，SFTP 连接器一次传输一个文件，按顺序从其队列中传输文件。

  您可以选择让连接器并行传输多个文件，从而提高传输性能。您可以与支持来自同一用户的并发会话的远程服务器创建并行会话，并行处理最多 5 个文件。创建 SFTP 连接器时，请在创建或更新连接器时为 “**最大并发连接数**” 设置选择一个不超过 5 的值。有关更多信息，请参阅 [使用服务管理的出口创建一个 SFTP 连接器](create-sftp-connector-procedure.md)。
+ **`StartFileTransfer`请求的速率。**每个 SFTP 连接器最多可以请求每秒 100 个文件路径进行传输。请求的文件路径将添加到您的连接器队列中进行处理。无论单个`StartFileTransfer`命令中提供的文件数量如何，您都可以递归地使用该`StartFileTransfer`命令为每个连接器请求每秒 100 个文件路径。

# 使用 SFTP 连接器的参考架构
<a name="reference-architectures"></a>

本节列出了可用于使用 SFTP 连接器配置自动文件传输工作流程的参考资料。您可以使用 Amazon 中的 SFTP 连接器事件设计自己的事件驱动架构 EventBridge，在文件传输操作与中的预处理和后处理操作之间进行协调。 AWS

## 博客文章
<a name="connector-blogs"></a>

以下博客文章提供了使用 SFTP 连接器构建 MFT 工作流程的参考架构，包括在使用 SFTP 连接器将文件发送到远程 SFTP 服务器之前使用 PGP 加密文件：使用 SFTP 连接器和 PGP [加密架构安全且合规的托管文件传输](https://aws.amazon.com/blogs//storage/architecting-secure-and-compliant-managed-file-transfers-with-aws-transfer-family-sftp-connectors-and-pgp-encryption/)。 AWS Transfer Family 

## 研讨会
<a name="connector-workshops"></a>
+ 以下研讨会提供了配置 SFTP 连接器以及使用连接器从远程 SFTP 服务器发送或检索文件的动手实验：Transfer F [amily-S](https://catalog.workshops.aws/transfer-family-sftp/en-US) FTP 研讨会。
+ [以下研讨会提供动手实验来构建全自动和事件驱动的工作流程，包括将文件传输到外部 SFTP 服务器或从外部 SFTP 服务器传输到 Amazon S3，以及这些文件的常见预处理和后处理：事件驱动的 MFT 研讨会。](https://catalog.us-east-1.prod.workshops.aws/workshops/e55c90e0-bbb0-47e1-be83-6bafa3a59a8a/en-US)

  该视频提供了本次研讨会的详细介绍。  
[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/oojopisG4lA/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/oojopisG4lA)

## Solutions
<a name="connector-patterns"></a>

AWS Transfer Family 提供了以下解决方案：
+ [文件传输同步解决方案](https://github.com/aws-samples/file-transfer-sync-solution)提供了一个参考架构，可以自动使用 SFTP 连接器将远程 SFTP 目录（包括整个文件夹结构）与本地 Amazon S3 存储桶同步。它协调列出远程目录、检测更改以及传输新文件或修改文件的过程。
+ S@@ [erverlessland-远程 SFTP 服务器和 S3 之间的选择性文件传输；使用 AWS Transfer Family](https://serverlessland.com/patterns/awstransfer-s3-sam?ref=search)提供了列出存储在远程 SFTP 位置的文件以及将选择性文件传输到 Amazon S3 的示例模式。

## VPC 参考架构
<a name="vpc-reference-architectures"></a>

以下参考架构显示了部署启用 vpc\$1Lattice 的 SFTP 连接器的常见模式。这些示例可帮助您了解在整体 AWS 架构中需要在何处创建 VPC Lattice 资源。

### 具有共享出口基础设施的单一账户
<a name="vpc-arch-single-account"></a>

在此架构中，出口基础设施（NAT 网关、VPN 隧道或 Direct Connect）是在与您的 SFTP 连接器相同的账户内的 VPC 中配置的。所有连接器都可以共享同一个资源网关和 NAT 网关。

![\[架构图显示了在单个账户中启用了 vpc_lattice 的 SFTP 连接器，其共享的出口基础设施包括 NAT 网关、资源网关和 VPC Lattice 组件。\]](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/vpc-customer-architecture-1.png)


在以下情况下，此模式最为理想：
+ 所有 SFTP 连接器都在一个连接器中进行管理 AWS 账户
+ 出口基础设施是在 VPC 中设置的，账户与 SFTP 连接器相同

### 具有集中式出口基础设施的跨账户
<a name="vpc-arch-cross-account"></a>

在此架构中，出口基础设施（NAT 网关、VPN 隧道、Direct Connect 或 B2B 防火墙）是在网络团队管理的中央出口账户中配置的。SFTP 连接器是在 MFT 管理员团队管理的 MFT 应用程序帐户中创建的。跨账户联网是使用 Transit Gateway 建立的，以遵守现有的联网规则。

![\[架构图显示了跨账户设置中支持 vpc_Lattice 的 SFTP 连接器，集中式出口基础设施由单独的网络团队帐户管理。\]](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/vpc-customer-architecture-2.png)


在以下情况下，此模式最为理想：
+ 网络基础设施由一个单独的团队通过一个专门的账户进行管理
+ 在创建 SFTP 连接器的账户和设置 Egress 基础设施的账户之间，您已有路由（例如 AWS Transit Gateway ）。SFTP 连接器将能够利用连接这两个账户的现有路由。
+ 需要集中式安全控制和 B2B 防火墙
+ 您需要保持网络和应用团队之间的职责分离