我尝试更新我的 Amazon S3 存储桶策略时收到了“Invalid principal in policy”(无效的策略委托人)错误,这是为什么?

上次更新日期:2020 年 11 月 4 日

我尝试使用控制台添加或编辑我的 Amazon Simple Storage Service (Amazon S3) 存储桶的存储桶策略。但是,我收到错误消息“错误:无效的策略委托人”。 如何解决此问题?

解决方法

如果存储桶策略中的委托人无效,则您会收到“Error: Invalid principal in policy”(错误:无效的策略委托人)消息。要解决此错误,请确认以下事项:

  • 您的存储桶策略使用 Principal(委托人)参数可支持的值。
  • Principal(委托人)值的格式正确。
  • 如果委托人是 AWS Identity and Access Management (IAM) 用户或角色,请确认该用户或角色未被删除。
  • 您的存储桶位于已启用的 AWS 区域中。

您的存储桶策略使用 Principal(委托人)参数可支持的值

检查您的存储桶策略中的 Principal(委托人)参数。检查这些参数是否使用下列支持的值:

警告:"Action:" "Allow" 一起使用时,"*" 委托人值可授予所有用户访问权限,包括已验证身份的用户和匿名用户。在您的存储桶策略中使用此组合之前,请确认您的内容支持此访问权限级别。

Principal(委托人)值的格式正确

请检查策略中的“委托人”参数,检查它们的格式是否正确。如果“委托人”是一个用户,则该参数必须为如下格式:

"Principal": {
    "AWS": "arn:aws:iam::111111111111:user/user-name1"
  }

如果“委托人”是多个用户,但不是所有用户,则该参数必须为如下格式:

"Principal": {
                "AWS": [
                  "arn:aws:iam::111111111111:user/user-name1",
                  "arn:aws:iam::111111111111:user/user-name2"
                ]
            }

如果“委托人”是所有用户,则该参数必须为如下格式:

{
  "Principal": "*"
}

IAM 用户或角色未被删除

如果您的存储桶策略使用 IAM 用户或角色作为委托人,请确认这些 IAM 身份未被删除。当您编辑并尝试保存 IAM ARN 已被删除的存储桶策略时,将会收到“Invalid principal in policy”(无效的策略委托人)错误。

您的存储桶位于已启用的 AWS 区域中

如果您的存储桶位于默认情况下禁用的 AWS 区域中,则启用区域。您必须启用该区域才能结合使用该 IAM 用户或角色与存储桶策略。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?