我想解决我的 AWS Key Management Service (AWS 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 策略的 principal 元素中,确认已创建 AWS Identity and Access Management (IAM) 身份且具有有效的 Amazon 资源名称 (ARN)。
密钥策略仅在包含 AWS KMS 密钥的 AWS 区域有效。如果 AWS KMS 密钥策略拥有其他 AWS 账户或主体的权限,则该密钥策略可能无效。确保密钥策略包含正确区域的 AWS KMS 密钥。
必须将 principal 元素指定为 IAM 身份。如果将 AWS 服务指定为主体,则确保 AWS KMS 支持该服务。对于支持条件键并使用转发访问会话发起请求的 AWS 服务,请使用 kms:ViaService AWS KMS 条件键。
直接调用 AWS KMS 的 AWS 服务必须在 Principal 元素中包含服务主体。检查使用的 AWS 服务是否直接调用 AWS KMS。
您与其共享 AWS KMS 密钥的账户必须在接收者账户中选择加入区域。确保在接收者账户中激活该区域。还可以在某个区域共享在 AWS 账户和接收者账户中激活的另一个 AWS KMS 密钥。
rePost Polyglot
已提问 3 年前
Tim
已发布 2 年前