使用服務管理的輸出建立 SFTP 連接器 - AWS Transfer Family

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

使用服務管理的輸出建立 SFTP 連接器

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

Console
建立 SFTP 連接器
  1. 在 https://https://console.aws.amazon.com/transfer/ 開啟 AWS Transfer Family 主控台。

  2. 在左側導覽窗格中,選擇 SFTP 連接器,然後選擇建立 SFTP 連接器

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

  4. 連接器組態區段中,提供下列資訊:

    Transfer Family SFTP 連接器主控台,顯示 連接器組態設定。
    • 針對 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
      • 請確定此角色包含信任關係,允許連接器在服務使用者的傳輸請求時存取您的資源。如需建立信任關係的詳細資訊,請參閱 建立信任關係

      { "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 秘密許可

  5. 完成連接器組態:

    • (選用) 針對記錄角色,選擇連接器用來將事件推送至 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/*" } ] }
  6. SFTP 組態區段中,提供下列資訊:

    Transfer 系列 SFTP 連接器主控台,顯示 SFTP 組態設定。
    • 對於 Connector 登入資料,從下拉式清單中選擇 中 AWS Secrets Manager 包含 SFTP 使用者私有金鑰或密碼的秘密名稱。您必須建立秘密,並以特定方式存放。如需詳細資訊,請參閱在 Secrets Manager 中存放 SFTP 連接器的身分驗證憑證

    • (選用) 您可以選擇在將TrustedHostKeys參數保留空白時建立連接器。不過,除非您在連接器的組態中提供此參數,否則連接器將無法透過遠端伺服器傳輸檔案。您可以在建立連接器時輸入信任的主機金鑰 (信任的主機金鑰),或稍後使用TestConnection主控台動作或 API 命令傳回的主機金鑰資訊來更新連接器。也就是說,對於信任的主機金鑰文字方塊,您可以執行下列其中一項操作:

      • 在建立連接器時提供信任的主機金鑰 (信任的主機金鑰)。貼上用來識別外部伺服器的主機金鑰公有部分。您可以選擇新增信任的主機金鑰來新增額外的金鑰,以新增多個金鑰。您可以對 SFTP 伺服器使用 ssh-keyscan命令來擷取必要的金鑰。如需 Transfer Family 支援的受信任主機金鑰格式和類型的詳細資訊,請參閱 SFTPConnectorConfig

      • 建立連接器時,請將信任的主機金鑰 (Trusted Host Key) 文字方塊保留空白,稍後再使用此資訊更新您的連接器。如果您在建立連接器時沒有主機金鑰資訊,現在可以將此參數保留空白並繼續建立連接器。建立連接器後,請使用新連接器的 ID 在 AWS CLI 中或從連接器的詳細資訊頁面執行TestConnection命令。如果成功, TestConnection將傳回必要的主機金鑰資訊。然後,您可以使用 主控台 (或執行 UpdateConnector AWS CLI 命令) 編輯連接器,並新增執行 時傳回的主機金鑰資訊TestConnection

      重要

      如果您透過執行 來擷取遠端伺服器的主機金鑰TestConnection,請務必對傳回的金鑰執行out-of-band驗證。

      您必須接受新金鑰做為信任,或驗證所呈現的指紋,以及您從連線之遠端 SFTP 伺服器擁有者收到的先前已知指紋。

    • (選用) 對於最大並行連線,從下拉式清單中選擇連接器建立到遠端伺服器的並行連線數目。主控台上的預設選擇為 5

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

  7. 密碼編譯演算法選項區段中,從安全政策欄位中的下拉式清單中選擇安全政策。安全政策可讓您選取連接器支援的密碼編譯演算法。如需可用安全政策和演算法的詳細資訊,請參閱 AWS Transfer Family SFTP 連接器的安全政策

  8. (選用) 在標籤區段中,針對索引鍵,輸入一或多個標籤做為索引鍵/值對。

  9. 確認所有設定後,請選擇建立 SFTP 連接器以建立 SFTP 連接器。如果成功建立連接器,則會出現一個畫面,其中包含指派的靜態 IP 地址清單和測試連線按鈕。使用 按鈕來測試新連接器的組態。

    成功建立 SFTP 連接器時出現的連接器建立畫面。它包含用於測試連線的按鈕,以及此連接器的服務受管靜態 IP 地址清單。

連接器頁面隨即出現,並將新 SFTP 連接器的 ID 新增至清單。若要檢視連接器的詳細資訊,請參閱 檢視 SFTP 連接器詳細資訊

CLI

您可以使用 create-connector命令來建立連接器。若要使用此命令來建立 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
    • 請確定此角色包含信任關係,允許連接器在為使用者的傳輸請求提供服務時存取您的資源。如需建立信任關係的詳細資訊,請參閱 建立信任關係

    { "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 秘密許可

  • (選用) 選擇要用於將事件推送至 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 受管基礎設施。