

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立 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 地址
  + **集中式安全控制**：透過組織的中央輸入/輸出控制路由檔案傳輸

下列矩陣可協助您為使用案例選擇正確的連接器類型。


**SFTP 連接器輸出類型矩陣**  

| 功能 | 輸出類型 = 服務受管 | 輸出類型 = VPC Lattice | 
| --- | --- | --- | 
| 連線至公有託管 （網際網路可存取） SFTP 伺服器 | 支援 | 支援的1 | 
| 連線至私有託管 （內部部署） SFTP 伺服器 | 不支援 | 支援的 2 | 
| 連線至私有託管 (VPC 內） SFTP 伺服器 | 不支援 | 支援 | 
| 呈現給遠端 SFTP 伺服器的靜態 IP 地址 | 透過服務提供的靜態 IP 地址支援 | 透過客戶擁有的靜態 IP 地址支援 | 
| 可用的頻寬 | 每個帳戶 50 MBPS | 更高的頻寬，可從客戶擁有的 Resource Gateway 和 NAT Gateway 取得 | 
| 透過客戶擁有的 NAT Gateways 和 Network Firewalls 將流量路由至網際網路 | 不支援。NAT Gateways 由 Transfer Family 服務擁有和管理。 | 支援 | 

1 *在輸出類型 = VPC Lattice 的情況下，使用輸出 VPCs 中的輸出基礎設施 (NAT 閘道） 設定支援連線至公有託管伺服器。*

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)。

**注意**  
當您將秘密存放在 Secrets Manager 時， AWS 帳戶 會產生費用。如需關於定價的資訊，請參閱[AWS Secrets Manager 定價](https://aws.amazon.com/secrets-manager/pricing)。

**在 Secrets Manager 中存放 SFTP 連接器的使用者登入資料**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/) 開啟 AWS Secrets Manager 主控台。

1. 在左側導覽窗格中，選擇**秘密**。

1. 在**秘密**頁面上，選擇**儲存新的秘密**。

1. 在**選擇秘密類型**頁面上，針對**秘密類型**，選擇**其他類型的秘密**。

1. 提供秘密的金鑰/值資訊：您需要提供使用者名稱，以及私有金鑰或密碼。

   1. 在**鍵/值對**區段中，選擇**鍵/值**索引標籤。
      + **金鑰** – 輸入 **Username**。
      + **value** – 輸入授權連線至合作夥伴伺服器之使用者名稱。

   1. 如果您想要提供金鑰對，請選擇**新增資料列**，然後在**金鑰/值對**區段中，選擇**金鑰/值**索引標籤。
      + **金鑰** – 輸入 **PrivateKey**。
      + **value** – 貼到您的私有金鑰中。

      **秘訣**：您輸入的私有金鑰資料必須對應至遠端 SFTP 伺服器上為此使用者存放的公有金鑰。
**注意**  
無法使用受複雜密碼保護的私有金鑰搭配 AWS Transfer Family SFTP 連接器進行身分驗證。

      如需如何產生公有/私有金鑰對的詳細資訊，請參閱 [在 macOS、Linux 或 Unix 上建立 SSH 金鑰](macOS-linux-unix-ssh.md)。

   1. 如果您想要提供密碼，請選擇**新增資料列**，然後在**鍵/值對**區段中，選擇**鍵/值**索引標籤。
      + **金鑰** – 輸入 **Password**。
      + **value** – 輸入使用者的密碼。

1. 選擇**下一步**。

1. 在**設定秘密**頁面上，輸入秘密的名稱和描述。我們建議您使用 的字首**aws/transfer/**做為名稱。例如，您可以將秘密命名為 **aws/transfer/connector-1**。

1. 選擇**下一步**，然後在**設定輪**換頁面上接受預設值。然後選擇**下一步**。

1. 在**檢閱**頁面上，選擇**存放**以建立和存放秘密。

# 使用服務管理的輸出建立 SFTP 連接器
<a name="create-sftp-connector-procedure"></a>

此程序說明如何使用 AWS Transfer Family 主控台或 建立 SFTP 連接器 AWS CLI。

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

**建立 SFTP 連接器**

1. 在 https：//[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/) 開啟 AWS Transfer Family 主控台。

1. 在左側導覽窗格中，選擇 **SFTP 連接器**，然後選擇**建立 SFTP 連接器**。

1. 在**連接器組態**區段中，針對**輸出類型**，選擇**服務受管**。此選項使用 AWS Transfer Family 受管輸出基礎設施。Transfer Family 服務提供和管理每個 SFTP 連接器的靜態 IP 地址。

1. 在**連接器組態**區段中，提供下列資訊：  
![\[Transfer 系列 SFTP 連接器主控台，顯示 連接器組態設定。\]](http://docs.aws.amazon.com/zh_tw/transfer/latest/userguide/images/create-connector-example-config.png)
   + 針對 **URL**，輸入遠端 SFTP 伺服器的 URL。此 URL 必須格式化為 `sftp://partner-SFTP-server-url`，例如 `sftp://AnyCompany.com`。
**注意**  
或者，您可以在 URL 中提供連接埠號碼。格式是 `sftp://partner-SFTP-server-url:port-number`。預設連接埠號碼 （未指定連接埠時） 為連接埠 22。
   + 針對**存取角色**，選擇要使用的 (IAM) 角色的 Amazon Resource Name 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 系列 SFTP 連接器主控台，顯示 SFTP 組態設定。\]](http://docs.aws.amazon.com/zh_tw/transfer/latest/userguide/images/create-connector-example-sftp-config.png)
   + 對於 **Connector 憑證**，從下拉式清單中選擇 中 AWS Secrets Manager 包含 SFTP 使用者私有金鑰或密碼的秘密名稱。您必須建立秘密，並以特定方式存放。如需詳細資訊，請參閱[在 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)。
     + *建立連接器時，請將信任的主機金鑰 (Trusted Host Key) 文字方塊保留空白，稍後再使用此資訊更新您的連接器。*如果您在建立連接器時沒有主機金鑰資訊，現在可以將此參數保留空白，並繼續建立連接器。建立連接器後，請使用新連接器的 ID 在 中 AWS CLI 或從連接器的詳細資訊頁面執行`TestConnection`命令。如果成功， `TestConnection`將傳回必要的主機金鑰資訊。然後，您可以使用 主控台 （或執行 `UpdateConnector` AWS CLI 命令） 編輯連接器，並新增執行 時傳回的主機金鑰資訊`TestConnection`。
**重要**  
如果您透過執行 來擷取遠端伺服器的主機金鑰`TestConnection`，請務必對傳回的金鑰執行out-of-band驗證。  
您必須接受信任的新金鑰，或是使用先前已知的指紋來驗證所呈現的指紋，該指紋來自您要連線的遠端 SFTP 伺服器擁有者。
   + （選用） 對於**最大並行連線**數，從下拉式清單中選擇連接器建立到遠端伺服器的並行連線數。主控台的預設選擇為 **5**。

     此設定指定您的連接器可以與遠端伺服器同時建立的作用中連線數目。建立並行連線可以透過啟用平行操作來增強連接器效能。

1. 在**密碼編譯演算法選項**區段中，從**安全政策**欄位中的下拉式清單中選擇**安全政策**。安全政策可讓您選取連接器支援的密碼編譯演算法。如需可用安全政策和演算法的詳細資訊，請參閱 [AWS Transfer Family SFTP 連接器的安全政策](security-policies-connectors.md)。

1. （選用） 在**標籤**區段中，針對**索引鍵**和**值**，輸入一或多個標籤做為索引鍵/值對。

1. 確認所有設定後，請選擇**建立 SFTP 連接器**以建立 SFTP 連接器。如果成功建立連接器，則會出現一個畫面，其中包含指派的靜態 IP 地址清單和**測試連線**按鈕。使用 按鈕來測試新連接器的組態。  
![\[成功建立 SFTP 連接器時顯示的連接器建立畫面。它包含用於測試連線的按鈕，以及此連接器的服務受管靜態 IP 地址清單。\]](http://docs.aws.amazon.com/zh_tw/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。此 URL 必須格式化為 `sftp://partner-SFTP-server-url`，例如 `sftp://AnyCompany.com`。
+ 存取角色。選擇要使用的 (IAM) 角色的 Amazon Resource Name 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)。
+ （選用） 選擇要用於將事件推送至 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 組態資訊。
  + 中 AWS Secrets Manager 包含 SFTP 使用者私有金鑰或密碼之秘密的 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"
   }
}
```

請注意，VPC 輸出類型連接器為 `ServiceManagedEgressIpAddresses` null，因為流量會透過 VPC 路由，而非 AWS 受管基礎設施。

------

# 使用 VPC 型輸出建立 SFTP 連接器
<a name="create-vpc-sftp-connector-procedure"></a>

本主題提供step-by-step說明。啟用 VPC\$1LATTICE 的連接器使用 Amazon VPC Lattice 透過虛擬私有雲端路由流量，啟用與私有端點的安全連線，或使用您自己的 NAT 閘道進行網際網路存取。

**何時使用 VPC 連線**

在下列案例中，使用 SFTP 連接器的 VPC 連線能力：
+ **私有 SFTP 伺服器**：連線至只能從 VPC 存取的 SFTP 伺服器。
+ **內部部署連線**：透過 AWS Direct Connect 或 AWS Site-to-Site VPN 連線連線至內部部署 SFTP 伺服器。
+ **自訂 IP 地址**：使用您自己的 NAT 閘道和彈性 IP 地址，包括 BYOIP 案例。
+ **集中式安全控制**：透過組織的中央輸入/輸出控制路由檔案傳輸。

![\[架構圖顯示 SFTP 連接器的 VPC 型輸出，說明跨 VPC 資源存取如何透過虛擬私有雲端啟用安全連線。\]](http://docs.aws.amazon.com/zh_tw/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 Lattice `create-resource-configuration`命令建立代表目標 SFTP 伺服器的資源組態。您可以指定下列其中一項：
   + 私有端點的私有 IP 地址
   + 公有端點的公有 DNS 名稱 （公有端點不支援 IP 地址）

1. **身分驗證憑證**：將 SFTP 使用者憑證存放在 中 AWS Secrets Manager ，如中所述[在 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 Lattice FAQs](https://aws.amazon.com/vpc/lattice/faqs/#topic-0)。可用區域支援因區域而異，資源閘道至少需要兩個可用區域。

## 建立已啟用 VPC\$1LATTICE 的 SFTP 連接器
<a name="create-vpc-connector-procedure"></a>

完成先決條件後，您可以使用、 AWS 管理主控台或 SDK AWS CLI建立具有 VPC 連線能力的 SFTP 連接器。 AWS SDKs

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

**建立已啟用 VPC\$1LATTICE 的 SFTP 連接器**

1. 在 https：//[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/) 開啟 AWS Transfer Family 主控台。

1. 在左側導覽窗格中，選擇 **SFTP 連接器**，然後選擇**建立 SFTP 連接器**。

1. 在**連接器組態**區段中，針對**輸出類型**，選擇 **VPC Lattice**。

   此選項使用 Amazon VPC Lattice 透過 VPC 路由流量，以進行跨 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 Resource Name 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 組態**區段中，提供下列資訊：
   + 針對 **Connector 登入**資料，選擇 中包含 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 的連接器具有非同步設定程序。建立後，監控連接器狀態：
+ **待定**：正在佈建連接器。服務網路佈建正在進行中，通常需要幾分鐘的時間。
+ **ACTIVE**：連接器已準備就緒，可以傳輸檔案。
+ **ERRORED**：連接器無法佈建。檢查錯誤詳細資訊以取得故障診斷資訊。

使用 `describe-connector`命令檢查連接器狀態：

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

在 PENDING 狀態期間，`test-connection`API 將傳回「Connector not available」，直到佈建完成為止。

## 限制及考量
<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 之外，沒有額外的費用。不過，與共用 Amazon Virtual Private Cloud 資源相關的 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 Gateway 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 Gateway 流向公有 SFTP 伺服器。遠端伺服器會將 NAT Gateway 的彈性 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 的連接器時常見問題的解決方案：
+ **連接器卡在待定狀態**：檢查您的資源閘道是否為 ACTIVE，並在支援的可用區域中具有子網路。如果連接器仍然卡在 PENDING 狀態，`UpdateConnector`請使用您最初使用的相同組態參數來呼叫 。這會觸發可能解決問題的新狀態事件。
+ **連線逾時**：驗證安全群組規則是否允許連接埠 22 上的流量，以及您的 VPC 路由是否正確。
+ **DNS 解析問題**：對於公有端點，請確保您的 VPC 透過 NAT 閘道或網際網路閘道具有網際網路連線能力。
+ **跨帳戶存取遭拒**：確認資源共用已接受且資源組態 ARN 正確。如果在原始伺服器帳戶建立資源共用時，將適當的許可政策連接到資源組態，則需要這些許可：`vpc-lattice:AssociateViaAWSService`、`vpc-lattice:AssociateViaAWSService-EventsAndStates`、`vpc-lattice:CreateServiceNetworkResourceAssociation`、`vpc-lattice:GetResourceConfiguration`。

# 測試 SFTP 連接器
<a name="test-sftp-connector"></a>

建立 SFTP 連接器之後，建議您在嘗試使用新連接器傳輸任何檔案之前進行測試。

**測試 SFTP 連接器**

1. 在 https：//[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/) 開啟 AWS Transfer Family 主控台。

1. 在左側導覽窗格中，選擇 **SFTP 連接器**，然後選取連接器。

1. 從**動作**功能表中，選擇**測試連線**。  
![\[Transfer Family 主控台，顯示選取的 SFTP 連接器，並反白顯示測試連線測試連線動作。\]](http://docs.aws.amazon.com/zh_tw/transfer/latest/userguide/images/connector-test-choose.png)

系統會傳回訊息，指出測試通過或失敗。如果測試失敗，系統會根據測試失敗的原因提供錯誤訊息。

![\[SFTP 連接器測試連線面板，顯示成功的測試。\]](http://docs.aws.amazon.com/zh_tw/transfer/latest/userguide/images/connector-test-success.png)


![\[SFTP 連接器測試連線面板，顯示測試失敗：錯誤訊息指出連接器的存取角色不正確。\]](http://docs.aws.amazon.com/zh_tw/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 文件。