我想要解決 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 政策元素與安全識別 (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。