

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

# 使用服務管理的輸出建立 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 Family 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 受管基礎設施。

------