對工作流程問題進行故障診斷 - AWS Transfer Family

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

對工作流程問題進行故障診斷

本節說明受管工作流程問題的可能解決方案。

對受管工作流程問題進行故障診斷

本節說明下列工作流程問題的可能解決方案。

使用 Amazon CloudWatch 對工作流程相關錯誤進行故障診斷

Description

如果您的工作流程發生問題,您可以使用 Amazon CloudWatch 調查原因。

原因

可能有幾個原因。使用 Amazon CloudWatch Logs 進行調查。

解決方案

Transfer Family 會向 CloudWatch Logs 發出工作流程執行狀態。下列類型的工作流程錯誤可能會出現在 CloudWatch Logs 中:

  • "type": "StepErrored"

  • "type": "ExecutionErrored"

  • "type": "ExecutionThrottled"

  • "Service failure on starting workflow"

您可以使用不同的篩選條件和模式語法來篩選工作流程的執行日誌。例如,您可以在 CloudWatch 日誌中建立日誌篩選條件,以擷取包含 ExecutionErrored 訊息的工作流程執行日誌。如需詳細資訊,請參閱《Amazon CloudWatch Logs 使用者指南》中的使用訂閱和篩選條件和模式語法即時處理日誌資料https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html

StepErrored

2021-10-29T12:57:26.272-05:00 {"type":"StepErrored","details":{"errorType":"BAD_REQUEST","errorMessage":"Cannot tag Efs file","stepType":"TAG","stepName":"successful_tag_step"}, "workflowId":"w-abcdef01234567890","executionId":"1234abcd-56ef-78gh-90ij-1234klmno567", "transferDetails":{"serverId":"s-1234567890abcdef0","username":"lhr","sessionId":"1234567890abcdef0"}

在此, StepErrored 表示工作流程中的步驟已產生錯誤。在單一工作流程中,您可以設定多個步驟。此錯誤會通知您發生錯誤的步驟,並提供錯誤訊息。在此特定範例中,步驟設定為標記檔案;不過,不支援在 Amazon EFS 檔案系統中標記檔案,因此步驟會產生錯誤。

ExecutionErrored

2021-10-29T12:57:26.618-05:00 {"type":"ExecutionErrored","details":{},"workflowId":"w-w-abcdef01234567890", "executionId":"1234abcd-56ef-78gh-90ij-1234klmno567","transferDetails":{"serverId":"s-1234567890abcdef0", "username":"lhr","sessionId":"1234567890abcdef0"}}

當工作流程無法執行任何步驟時,會產生ExecutionErrored訊息。例如,如果您已在指定的工作流程中設定單一步驟,而且如果該步驟無法執行,則整體工作流程會失敗。

執行調節

如果工作流程的觸發速率超過系統可支援的速率,則執行會受到調節。此日誌訊息表示您必須降低工作流程的執行速率。如果您無法縮減工作流程執行速率,請聯絡 AWS 支援 聯絡 。 AWS

啟動工作流程時的服務失敗

每當您從伺服器移除工作流程並將其取代為新的工作流程,或更新伺服器組態 (這會影響工作流程的執行角色) 時,您必須等待大約 10 分鐘,才能執行新的工作流程。Transfer Family 伺服器快取工作流程詳細資訊,伺服器重新整理其快取需要 10 分鐘。

此外,您必須登出任何作用中的 SFTP 工作階段,然後在 10 分鐘的等待期間之後重新登入,以查看變更。

對工作流程複製錯誤進行故障診斷

Description

如果您執行的工作流程包含複製上傳檔案的步驟,您可能會遇到下列錯誤:

{ "type": "StepErrored", "details": { "errorType": "BAD_REQUEST", "errorMessage": "Bad Request (Service: Amazon S3; Status Code: 400; Error Code: 400 Bad Request; Request ID: request-ID; S3 Extended Request ID: request-ID Proxy: null)", "stepType": "COPY", "stepName": "copy-step-name" }, "workflowId": "workflow-ID", "executionId": "execution-ID", "transferDetails": { "serverId": "server-ID", "username": "user-name", "sessionId": "session-ID" } }

原因

來源檔案位於與目的地儲存貯體 AWS 區域 不同的 Amazon S3 儲存貯體中。

解決方案

如果您正在執行包含複製步驟的工作流程,請確定來源和目的地儲存貯體位於相同的 中 AWS 區域。

對工作流程解密問題進行故障診斷

本節說明下列加密工作流程問題的可能解決方案。

對匿名收件人加密問題進行故障診斷

Description

您的解密工作流程在處理特定加密檔案時失敗,但適用於其他檔案。

原因

檔案可能已加密,但未指定收件人 (匿名加密),讓工作流程難以判斷要用於解密的金鑰。

解決方案

一律使用 -r 參數加密具有非匿名收件人的檔案。例如:

gpg -e -r user@example.com --openpgp file.txt

若要檢查檔案是否以特定收件人或匿名方式加密,請使用 --list-packets命令:

gpg --list-packets file.txt.gpg

此命令會顯示 GPG 加密檔案的封包結構,而不解密其內容。尋找包含收件人資訊的輸出,例如:

:pubkey enc packet: version 3, algo 1, keyid 1A2B3C4D5E6F7G8H

如果您看到 keyid 資訊,檔案會針對特定收件人加密。如果缺少此資訊,檔案可能已匿名加密,這可能會導致 Transfer Family 工作流程中的解密失敗。

您也可以使用此命令來驗證:

  • 使用了哪些加密演算法

  • 壓縮方法 (如果有的話)

  • 建立時間戳記

若要檢視 GPG 安裝支援的加密演算法清單,請使用:

gpg --version

此資訊可協助您確保使用的加密演算法與 Transfer Family 工作流程相容,尤其是需要 FIPS 合規時。

已簽章加密檔案的故障診斷錯誤

Description

您的解密工作流程失敗,您會收到下列錯誤:

"Encrypted file with signed message unsupported"

原因

Transfer Family 目前不支援簽署加密的檔案。

解決方案

在 PGP 用戶端中,如果有簽署加密檔案的選項,請務必清除選取項目,因為 Transfer Family 目前不支援簽署加密檔案。

FIPS 演算法的故障診斷錯誤

Description

您的解密工作流程失敗,日誌訊息類似以下內容:

{ "type": "StepErrored", "details": { "errorType": "BAD_REQUEST", "errorMessage": "File encryption algorithm not supported with FIPS mode enabled.", "stepType": "DECRYPT", "stepName": "step-name" }, "workflowId": "workflow-ID", "executionId": "execution-ID", "transferDetails": { "serverId": "server-ID", "username": "user-name", "sessionId": "session-ID" } }

原因

您的 Transfer Family 伺服器已啟用 FIPS 模式和相關聯的解密工作流程步驟。在上傳至 Transfer Family 伺服器之前加密檔案時,加密用戶端可能會產生使用非 FIPS 核准對稱加密演算法的加密檔案。在這種情況下,工作流程無法解密檔案。在下列範例中,GnuPG 2.4.0 版使用 OCB (非 FIPS 區塊加密模式) 來加密檔案:這會導致工作流程失敗。

解決方案

您必須編輯用來加密檔案的 GPG 金鑰,然後重新加密它們。下列程序說明您必須採取的步驟。

編輯 PGP 金鑰
  1. 識別您必須透過執行 來編輯的金鑰 gpg ‐‐list-keys

    這會傳回金鑰清單。每個金鑰都有類似下列的詳細資訊:

    pub ed25519 2022-07-07 [SC] wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY uid [ultimate] Mary Major <marymajor@example.com> sub cv25519 2022-07-07 [E]
  2. 識別您要編輯的金鑰。在上一個步驟中顯示的範例中,ID 為 wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

  3. 執行 gpg ‐‐edit-key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

    系統會回應有關 GnuPG 程式和指定金鑰的詳細資訊。

  4. 出現gpg>提示時,輸入 showpref。會傳回下列詳細資訊:

    [ultimate] (1). Mary Major <marymajor@example.com> Cipher: AES256, AES192, AES, 3DES AEAD: OCB Digest: SHA512, SHA384, SHA256, SHA224, SHA1 Compression: ZLIB, BZIP2, ZIP, Uncompressed Features: MDC, AEAD, Keyserver no-modify

    請注意,會列出儲存在金鑰上的偏好演算法。

  5. 我們希望編輯金鑰以保留 OCB 以外的所有演算法。執行 setpref命令,指定要保留的所有演算法:

    gpg> setpref AES256, AES192,AES,3DES,SHA512, SHA384, SHA256, SHA224, SHA1,ZLIB, BZIP2, ZIP, Uncompressed

    這會傳回下列詳細資訊:

    Set preference list to: Cipher: AES256, AES192, AES, 3DES AEAD: Digest: SHA512, SHA384, SHA256, SHA224, SHA1 Compression: ZLIB, BZIP2, ZIP, Uncompressed Features: MDC, Keyserver no-modify Really update the preferences? (y/N)
  6. 輸入 y 進行更新,然後在出現確認變更的提示時輸入您的密碼。

  7. 儲存變更。

    gpg> save

重新執行解密工作流程之前,您必須使用編輯的金鑰重新加密檔案。