本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
本主題說明如何建立SFTP連接器、與其相關聯的安全演算法、如何儲存秘密以保存憑證、有關格式化私有金鑰的詳細資訊,以及測試連接器的指示。
建立SFTP連接器
此程序說明如何使用 AWS Transfer Family 主控台或 建立SFTP連接器 AWS CLI。
若要建立SFTP連接器
-
在 開啟 AWS Transfer Family 主控台https://console.aws.amazon.com/transfer/
。 -
在左側導覽窗格中,選擇 連接器 ,然後選擇建立連接器 。
-
選擇SFTP連接器類型以建立SFTP連接器,然後選擇下一步。
-
在連接器組態區段中,提供下列資訊:
-
針對 URL,輸入URL遠端SFTP伺服器的 。這URL必須格式化為
sftp://
,例如partner-SFTP-server-url
sftp://AnyCompany.com
。注意
或者,您可以在 中提供連接埠號碼URL。格式是
sftp://
。預設連接埠號碼 (未指定連接埠時) 為連接埠 22。partner-SFTP-server-url
:port-number
-
針對存取角色 ,選擇要使用的 (ARN) 角色的 Amazon Resource Name AWS Identity and Access Management (IAM)。
-
請確定此角色提供對請求中使用的檔案位置之父目錄的讀取和寫入存取權。
StartFileTransfer
-
請確定此角色提供 存取秘密的許可。
secretsmanager:GetSecretValue
注意
在 政策中,您必須ARN為秘密指定 。ARN 包含秘密名稱,但以六個隨機英數字元附加名稱。機密ARN的 具有下列格式。
arn:aws:secretsmanager:
region
:account-id
:secret:aws/transfer/SecretName-6RandomCharacters
-
請確定此角色包含信任關係,允許連接器在為使用者的傳輸請求提供服務時存取您的資源。如需建立信任關係的詳細資訊,請參閱 建立信任關係。
下列範例授予必要許可,以存取
DOC-EXAMPLE-BUCKET
在 Amazon S3 中,以及存放在 Secrets Manager 中的指定秘密。{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::
DOC-EXAMPLE-BUCKET
" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET
/*" }, { "Sid": "GetConnectorSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:region
:account-id
: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": "SFTPConnectorPermissions", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/transfer/*" ] }] }
-
-
在SFTP組態區段中,提供下列資訊:
-
對於 Connector 憑證 ,從下拉式清單中選擇 中 AWS Secrets Manager 包含SFTP使用者私有金鑰或密碼的秘密名稱。您必須建立秘密,並以特定方式存放。如需詳細資訊,請參閱 儲存要與SFTP連接器搭配使用的秘密。
-
信任的主機金鑰 – 貼到用來識別外部伺服器的主機金鑰公有部分。您可以選擇新增受信任的主機金鑰來新增其他金鑰,以新增多個金鑰。您可以針對SFTP伺服器使用
ssh-keyscan
命令來擷取必要的金鑰。如需有關 Transfer Family 支援的受信任主機金鑰格式和類型的詳細資訊,請參閱 SFTPConnectorConfig.
-
-
(選用) 在標籤區段中,針對金鑰和值 ,輸入一或多個標籤作為鍵值對。
-
確認所有設定後,請選擇建立連接器以建立SFTP連接器。如果成功建立連接器,會出現一個畫面,其中包含指派的靜態 IP 地址清單和測試連線按鈕。使用 按鈕來測試新連接器的組態。
隨即出現 連接器頁面,並將新SFTP連接器的 ID 新增至清單。若要檢視連接器的詳細資訊,請參閱 檢視SFTP連接器詳細資訊。
SFTP 連接器演算法
當您建立SFTP連接器時,下列安全演算法會連接至連接器。
Type | 演算法 |
---|---|
SSH 密碼 |
aes256-gcm@openssh.com aes128-gcm@openssh.com aes256-ctr aes192-ctr |
SSH 金鑰交換方法 (KEX) |
curve25519-sha256 curve25519-sha256@libssh.org diffie-hellman-group16-sha512 diffie-hellman-group18-sha512 diffie-hellman-group-exchange-sha256 |
SSH MAC | hmac-sha2-512-etm@openssh.com hmac-sha2-256-etm@openssh.com hmac-sha2-512 hmac-sha2-256 |
SSH 主機金鑰 |
ecdsa-sha2-nistp256 ecdsa-sha2-nistp384 ecdsa-sha2-nistp521 rsa-sha2-512 rsa-sha2-256 |
儲存要與SFTP連接器搭配使用的秘密
您可以使用 Secrets Manager 來儲存SFTP連接器的使用者憑證。建立秘密時,您必須提供使用者名稱。此外,您可以提供密碼、私有金鑰或兩者。如需詳細資訊,請參閱 SFTP 連接器配額。
注意
當您將秘密存放在 Secrets Manager 時, AWS 帳戶 會產生費用。如需定價的資訊,請參閱 AWS Secrets Manager 定價
在 Secrets Manager 中存放SFTP連接器的使用者憑證
-
登入 AWS Management Console 並在 開啟 AWS Secrets Manager 主控台https://console.aws.amazon.com/secretsmanager/
。 -
在左側導覽窗格中,選擇秘密。
-
在秘密頁面上,選擇儲存新的秘密 。
-
在選擇秘密類型頁面上,針對秘密類型 ,選擇其他類型的秘密 。
-
在金鑰/值對區段中,選擇金鑰/值索引標籤。
-
金鑰 – 輸入
Username
。 -
值 – 輸入授權連線至合作夥伴伺服器之使用者名稱。
-
-
如果您想要提供密碼,請選擇新增列 ,然後在鍵/值對區段中選擇鍵/值索引標籤。
選擇新增列 ,然後在鍵/值對區段中,選擇鍵/值索引標籤。
-
金鑰 – 輸入
Password
。 -
值 – 輸入使用者的密碼。
-
-
如果您想要提供私有金鑰,請參閱 產生並格式化SFTP連接器私有金鑰,其中說明如何輸入私有金鑰資料。
注意
您輸入的私有金鑰資料必須與遠端SFTP伺服器中為此使用者儲存的公有金鑰相對應。
-
選擇 Next (下一步)。
-
在設定秘密頁面上,輸入秘密的名稱和描述。我們建議您使用 的字首
aws/transfer/
做為名稱。例如,您可以命名秘密aws/transfer/connector-1
。 -
選擇下一個 ,然後在設定輪換頁面上接受預設值。然後選擇下一步。
-
在檢閱頁面上,選擇儲存以建立和儲存秘密。
產生並格式化SFTP連接器私有金鑰
有關產生公有/私有金鑰對的完整詳細資訊,請參閱 。 在 macOS 、Linux 或 Unix 上建立SSH金鑰
例如,若要產生用於SFTP連接器的私有金鑰,下列範例命令會產生正確的金鑰類型 (取代 key_name
使用金鑰對的實際檔案名稱):
ssh-keygen -t rsa -b 4096 -m PEM -f
key_name
-N ""
注意
當您建立要與SFTP連接器搭配使用的金鑰對時,請勿使用密碼片語。SFTP 組態必須具有空密碼才能正常運作。
此命令會建立RSA金鑰對,金鑰大小為 4096 位元。金鑰會以舊版PEM格式產生,這是 Transfer Family 與SFTP連接器秘密搭配使用的必要項目。金鑰會儲存在目前目錄中的
(私有金鑰) 和 key_name
(公有金鑰) 中:即您執行key_name
.pubssh-keygen
命令的目錄。
注意
Transfer Family 不支援用於SFTP連接器之金鑰的 OpenSSH 格式 (-----BEGIN OPENSSH PRIVATE KEY-----
)。金鑰必須是舊版PEM格式 (-----BEGIN RSA PRIVATE KEY-----
或 -----BEGIN EC PRIVATE KEY-----
)。您可以在執行 命令時提供 -m PEM
選項,藉此使用 ssh-keygen工具來轉換金鑰。
產生金鑰後,您必須確定私有金鑰已格式化為內嵌的新行字元 ("\n") JSON 格式。
使用 命令將現有的私有金鑰轉換為正確的格式 —JSON 格式,其中包含內嵌的新行字元。此處提供 jq
和 Powershell 的範例。您可以使用任何工具或命令,將私有金鑰轉換為內嵌新行字元的JSON格式。
此範例使用 jq
命令,可從 Download jq
jq -sR .
path-to-private-key-file
例如,如果您的私有金鑰檔案位於 中~/.ssh/my_private_key
,則命令如下所示。
jq -sR . ~/.ssh/my_private_key
這會以正確的格式 (包含內嵌的新行字元) 將金鑰輸出至標準輸出。
將私有金鑰資料新增至秘密,以搭配SFTP連接器使用
-
在 Secrets Manager 主控台中,儲存其他類型的 Secret 時,選擇純文字索引標籤。文字應該是空的,只有開啟和關閉支架 {}。
-
使用下列格式貼入您的使用者名稱、私有金鑰資料和/或密碼。針對私有金鑰資料,請從您在步驟 1 中執行的命令貼上輸出。
{"Username":"
SFTP-USER
","Password":"SFTP-USER-PASSWORD
","PrivateKey":"PASTE-PRIVATE-KEY-DATA-HERE
"}如果您正確貼上私有金鑰資料,您應該會在選取金鑰/值索引標籤時看到以下內容。請注意,私有金鑰資料會顯示 line-by-line,而不是連續字串。
-
繼續儲存要與SFTP連接器搭配使用的秘密步驟 8 中的程序,並遵循該程序直至結束。
測試SFTP連接器
建立SFTP連接器後,建議您先測試連接器,然後再嘗試使用新連接器傳輸任何檔案。
測試SFTP連接器
-
在 開啟 AWS Transfer Family 主控台https://console.aws.amazon.com/transfer/
。 -
在左側導覽窗格中,選擇連接器 ,然後選擇連接器。
-
從動作功能表中,選擇測試連線 。
系統會傳回訊息,指出測試是否通過或失敗。如果測試失敗,系統會根據測試失敗的原因提供錯誤訊息。
注意
若要使用 API測試連接器,請參閱 TestConnection API 文件。