View a markdown version of this page

故障診斷 AWS Secrets Manager - AWS Secrets Manager

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

故障診斷 AWS Secrets Manager

使用此處的資訊,來協助您針對在使用 Secrets Manager 時可能遇到的問題進行診斷與修復。

如需有關輪換的問題,請參閱 對AWS Secrets Manager輪換進行故障診斷

「拒絕存取」訊息

當您對 Secrets Manager 進行 GetSecretValue 或 CreateSecret 等 API 呼叫時,您必須擁有 IAM 許可才能進行該呼叫。當您使用 主控台時,主控台會代表您進行相同的 API 呼叫,因此您也必須擁有 IAM 許可。管理員可以透過將 IAM 政策連接至您的 IAM 使用者或您所屬的群組來授予許可。如果授予這些許可的政策內容中包含了任何條件,例如時刻或 IP 地址的限制,則當您傳送請求時,也必須滿足這些要求。關於檢視或修改 IAM 使用者、群組或角色的政策方面的相關資訊,請參閱 IAM 使用者指南中的政策的使用。如需有關 Secrets Manager 所需許可的詳細資訊,請參閱 的身分驗證和存取控制 AWS Secrets Manager

如果您是手動簽署 API 請求,而沒有使用 AWS 開發套件,請確認已正確簽署請求

暫時安全憑證的「存取遭拒」

確認用來提出請求的 IAM 使用者或角色擁有正確許可。臨時安全登入資料的許可衍生自 IAM 使用者或角色。這表示能提供的許可僅限於授予 IAM 使用者或角色的許可。關於臨時安全登入資料許可的決定方式,詳細資訊請參閱 IAM 使用者指南中的控管臨時安全登入資料的許可

確認您的請求已正確簽署且請求的格式也正確。如需詳細資訊,請參閱所選 SDK 的工具組文件,或《IAM 使用者指南》中的使用暫時安全登入資料請求存取 AWS 資源

確認您的臨時安全憑證並未過期。如需詳細資訊,請參閱 IAM 使用者指南中的請求臨時安全憑證

如需有關 Secrets Manager 所需許可的詳細資訊,請參閱 的身分驗證和存取控制 AWS Secrets Manager

我所做的變更不一定都會立即顯示。

Secrets Manager 使用稱為最終一致性的分散式運算模型。您在 Secrets Manager (或其他 AWS 服務) 中所做的任何變更,都需要一些時間才能從所有可能的端點中顯示。部分延遲是由在伺服器之間、複寫區域之間和全球不同地區之間傳送資料所花費的時間造成。Secrets Manager 也會使用快取以提升效能,但在某些情況下,這可能會增加時間。直到先前快取的資料逾時後,才能看到變更。

設計您的全球應用程式以說明這些潛在的延遲。此外,確保它們如預期般運作,即使在某個位置所做的變更也不會立即顯示在另一個位置。

如需其他一些 AWS 服務如何受到最終一致性影響的詳細資訊,請參閱:

「互連重設」錯誤

當您呼叫 Secrets Manager 時,偶爾可能會因為對等錯誤而收到連線重設。當伺服器關閉用戶端正在使用或嘗試使用的 TCP 連線時,就會發生這種情況。為了管理容量和維護可用性,包括 Secrets Manager 在內的 AWS 服務可以隨時關閉連線。

這最常影響應用程式重複使用的閒置持續連線,但也可能影響新建立的連線。偶爾重設是連線生命週期管理的正常部分。它們不會指出您的秘密或帳戶有問題。

根據預設, AWS SDKs 會管理連線集區,並在新連線上重試這些錯誤,因此您通常不需要採取任何動作。如果您遇到這些錯誤,請執行下列動作:

  • 確認您使用的是最新版本的 AWS SDK 或 AWS CLI。請確定您尚未關閉預設重試行為。如需詳細資訊,請參閱 AWS SDKs和工具參考指南中的重試行為

  • 如果您直接管理 HTTP 連線,而不是使用 AWS SDK,請在新連線上重試請求。等讀取操作GetSecretValue是等冪且安全的重試。

  • 快取用戶端上的秘密值,而不是在每次使用時呼叫 Secrets Manager。快取可減少應用程式開啟的連線數量,並改善暫時性網路錯誤的彈性。如需詳細資訊,請參閱使用快取來擷取秘密

如果這些錯誤持續一段時間,原因可能是例行連線循環以外的原因。若要識別原因,請檢查您 AWS 區域中 Secrets Manager 事件AWS 的運作狀態儀表板。同時驗證服務端點的網路路徑,包括任何 VPC 端點、代理、防火牆或 DNS 組態。如果問題持續發生,請聯絡 AWS Support

「建立秘密時無法使用非對稱 KMS 金鑰產生資料金鑰」

Secrets Manager 使用與秘密相關聯的對稱加密 KMS 金鑰,來為每個秘密值產生資料金鑰。您無法使用非對稱 KMS 金鑰。請確認您使用的是對稱加密 KMS 金鑰,而不是非對稱 KMS 金鑰。如需說明,請參閱標識非對稱 KMS 金鑰

AWS CLI 或 AWS SDK 操作無法從部分 ARN 找到我的秘密

在許多情況下,Secrets Manager 可以從 ARN 的一部分而非完整的 ARN 中找到您的秘密。但是,如果秘密名稱以連字號結尾,且後面接著六個字元,Secrets Manager 可能無法僅從部分 ARN 中找到秘密。建議您改為使用完整的 ARN 或機密名稱。

更多詳細資訊

Secrets Manager 會在秘密名稱末尾包含六個隨機字元,協助確保秘密 ARN 是唯一。如果刪除原始秘密,然後使用相同的名稱建立新秘密,則這兩個秘密會因為這些字元而具有不同的 ARN。具有舊秘密存取權的使用者不會自動取得新秘密的存取權,因為 ARN 不同。

Secrets Manager 會為秘密建構一個 ARN,它包含區域、帳戶、秘密名稱、一個連字符和六個字元,如下所示:

arn:aws:secretsmanager:us-east-2:111122223333:secret:SecretName-abcdef

如果您的秘密名稱以連字符和六個字元結尾,則只有部分 ARN 會出現在 Secrets Manager 中,就好像您指定了一個完整的 ARN 一樣。例如,您可能擁有 ARN 為 MySecret-abcdef 的秘密。

arn:aws:secretsmanager:us-east-2:111122223333:secret:MySecret-abcdef-nutBrk

如果您呼叫以下操作,它只使用秘密 ARN 的一部分,則 Secrets Manager 可能找不到秘密。

$ aws secretsmanager describe-secret --secret-id arn:aws:secretsmanager:us-east-2:111122223333:secret:MySecret-abcdef

此秘密由 AWS 服務管理,您必須使用該服務來更新它。

如果您在嘗試修改秘密時遇到此訊息,則只能使用訊息中列出的管理服務來更新秘密。如需詳細資訊,請參閱AWS Secrets Manager 由其他 AWS 服務管理的秘密

若要決定管理秘密的人員,您可以檢閱秘密名稱。由其他服務管理的秘密以該服務的 ID 為字首。或者,在 中 AWS CLI呼叫 describe-secret,然後檢閱 欄位 OwningService

使用 時,Python 模組匯入失敗 Transform: AWS::SecretsManager-2024-09-16

如果您使用的是 Transform:,AWS::SecretsManager-2024-09-16並在輪換 Lambda 函數執行時遇到 Python 模組匯入失敗,問題可能是由不相容Runtime的值造成。在此轉換版本中, 會為您 AWS CloudFormation 管理執行時間版本、程式碼和共用物件檔案。您不需要自行管理這些項目。