跳至內容

如何解決 AWS KMS 金鑰政策錯誤?

1 分的閱讀內容
0

我想要解決 AWS Key Management Service (KMS) 金鑰政策錯誤。

簡短說明

如果您未正確修改 AWS KMS 金鑰政策,則 PutKeyPolicy AWS KMS API 操作會失敗。接著,您可能會收到以下其中一則錯誤訊息:

「PutKeyPolicy request failed MalformedPolicyDocumentException - Policy contains a statement with one or more invalid principals.」

「Policy contains a statement with one or more invalid principals」

若要解決此問題,請完成以下一或多個解決方法。

解決方法

使用有效的 JSON 語法

確認您使用有效的 JSON 政策文件資源類型。若要疑難排解 JSON 語法錯誤,請將 JSON 政策文件貼到 JSON 格式化工具中。移除不必要的字元,然後補上遺漏的字元。請務必移除任何重複的 JSON 政策元素與安全識別 (SID) 值。

指定主體元素

JSON 政策中的主體元素,確認您已建立 AWS Identity and Access Management (IAM) 身分有效的 Amazon Resource Name (ARN)

金鑰政策只在包含 AWS KMS key 的 AWS 區域中生效。如果 AWS KMS 金鑰政策對另一個 AWS 帳戶或主體具有權限,則金鑰政策可能不會生效。請確認您的金鑰政策在正確的區域中包含 AWS KMS key。

您必須將主體元素指定為 IAM 身分。如果您將 AWS 服務指定為主體,請確認 AWS KMS 支援該服務。對於支援條件索引鍵的 AWS 服務且以轉送存取工作階段提出請求時,請使用 kms:ViaService AWS KMS 條件索引鍵。

直接呼叫 AWS KMS 的 AWS 服務,必須在主體元素中具有服務主體。請確認您使用的 AWS 服務會直接呼叫 AWS KMS。

選擇加入區域

與您共用 AWS KMS key 的帳戶,必須在接收者帳戶中選擇加入區域。請確認您已在接收者帳戶中啟動該區域。您也可以在 AWS 帳戶和收件者帳戶中,於已啟用的區域內共用另一個 AWS KMS key。