

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

# 故障診斷 AWS Secrets Manager
<a name="troubleshoot"></a>

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

如需有關輪換的問題，請參閱 [對 AWS Secrets Manager 輪換進行故障診斷](troubleshoot_rotation.md)。

**Topics**
+ [「拒絕存取」訊息](#troubleshoot_general_access-denied-service)
+ [暫時安全憑證的「存取遭拒」](#troubleshoot_general_access-denied-temp-creds)
+ [我所做的變更不一定都會立即顯示。](#troubleshoot_general_eventual-consistency)
+ [在建立秘密時收到「無法使用非對稱 KMS 金鑰產生資料金鑰」的訊息](#asymmetrical-key)
+ [AWS CLI 或 AWS SDK 操作無法從部分 ARN 找到我的秘密](#ARN_secretnamehyphen)
+ [此秘密由 AWS 服務管理，您必須使用該服務來更新它。](#troubleshoot-service-linked-secrets)
+ [使用 時，Python 模組匯入失敗 `Transform: AWS::SecretsManager-2024-09-16`](#troubleshoot-python-import)

## 「拒絕存取」訊息
<a name="troubleshoot_general_access-denied-service"></a>

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

如果您是手動簽署 API 請求，而沒有使用 [AWS 開發套件](https://aws.amazon.com/tools/)，請確認已正確[簽署請求](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)。

## 暫時安全憑證的「存取遭拒」
<a name="troubleshoot_general_access-denied-temp-creds"></a>

確認用來提出請求的 IAM 使用者或角色擁有正確許可。臨時安全登入資料的許可衍生自 IAM 使用者或角色。這表示能提供的許可僅限於授予 IAM 使用者或角色的許可。關於臨時安全登入資料許可的決定方式，詳細資訊請參閱 *IAM 使用者指南*中的[控管臨時安全登入資料的許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access.html)。

確認您的請求已正確簽署且請求的格式也正確。如需詳細資訊，請參閱所選 SDK [的工具組](https://aws.amazon.com/tools/)文件，或《*IAM 使用者指南*》中的[使用暫時安全登入資料請求存取 AWS 資源](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)。

確認您的臨時安全憑證並未過期。如需詳細資訊，請參閱 *IAM 使用者指南*中的[請求臨時安全憑證](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)。

如需有關 Secrets Manager 所需許可的詳細資訊，請參閱 [的身分驗證和存取控制 AWS Secrets Manager](auth-and-access.md)。

## 我所做的變更不一定都會立即顯示。
<a name="troubleshoot_general_eventual-consistency"></a>

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

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

如需其他一些 AWS 服務如何受到最終一致性影響的詳細資訊，請參閱：
+ *Amazon Redshift 資料庫開發人員指南*中的[管理資料一致性](https://docs.aws.amazon.com/redshift/latest/dg/managing-data-consistency.html)
+ *Amazon Simple Storage Service 使用者指南*中的 [Amazon S3 資料一致性模式](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Introduction.html#ConsistencyModel)
+  AWS 大數據部落格中的[在使用 Amazon S3 和適用於 ETL 工作流程的 Amazon EMR 時確保一致性](https://aws.amazon.com/blogs/big-data/ensuring-consistency-when-using-amazon-s3-and-amazon-elastic-mapreduce-for-etl-workflows/)
+ *Amazon EC2 API 參考*中的 [Amazon EC2 最終一致性](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/query-api-troubleshooting.html#eventual-consistency)

## 在建立秘密時收到「無法使用非對稱 KMS 金鑰產生資料金鑰」的訊息
<a name="asymmetrical-key"></a>

Secrets Manager 使用與秘密相關聯的[對稱加密 KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks)，來為每個秘密值產生資料金鑰。您無法使用非對稱 KMS 金鑰。請確認您使用的是對稱加密 KMS 金鑰，而不是非對稱 KMS 金鑰。如需說明，請參閱[標識非對稱 KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html)。

## AWS CLI 或 AWS SDK 操作無法從部分 ARN 找到我的秘密
<a name="ARN_secretnamehyphen"></a>

在許多情況下，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 服務管理，您必須使用該服務來更新它。
<a name="troubleshoot-service-linked-secrets"></a>

如果您在嘗試修改秘密時遇到此訊息，則只能使用訊息中列出的管理服務來更新秘密。如需詳細資訊，請參閱[AWS Secrets Manager 由其他 AWS 服務管理的秘密](service-linked-secrets.md)。

若要決定管理秘密的人員，您可以檢閱秘密名稱。由其他服務管理的秘密以該服務的 ID 為字首。或者，在 中 AWS CLI呼叫 [describe-secret](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/describe-secret.html)，然後檢閱 欄位 `OwningService`。

## 使用 時，Python 模組匯入失敗 `Transform: AWS::SecretsManager-2024-09-16`
<a name="troubleshoot-python-import"></a>

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