上次更新日期: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(委托人)参数。检查这些参数是否使用下列支持的值:
IAM 用户或角色的 Amazon 资源名称 (ARN)注意:如要找到某个 IAM 用户的 ARN,请使用 get-user 命令。如要找到某个 IAM 角色的 ARN,请使用 get-role 命令。 AWS 账户 ID "*" 字符串代表所有用户
警告:与 "Action:" "Allow" 一起使用时,"*" 委托人值可授予所有用户访问权限,包括已验证身份的用户和匿名用户。在您的存储桶策略中使用此组合之前,请确认您的内容支持此访问权限级别。
Principal(委托人)值的格式正确请检查策略中的“委托人”参数,检查它们的格式是否正确。如果“委托人”是一个用户,则该参数必须为如下格式:
"Principal": {
"AWS": "arn:aws:iam::111111111111:user/user-name1"
}
如果“委托人”是多个用户,但不是所有用户,则该参数必须为如下格式:
"Principal": {
"AWS":
}
如果“委托人”是所有用户,则该参数必须为如下格式:
{
"Principal": "*"
}
IAM 用户或角色未被删除
如果您的存储桶策略使用 IAM 用户或角色作为委托人,请确认这些 IAM 身份未被删除。当您编辑并尝试保存 IAM ARN 已被删除的存储桶策略时,将会收到“Invalid principal in policy”(无效的策略委托人)错误。
如果您的存储桶位于默认情况下禁用的 AWS 区域中,则启用区域。您必须启用该区域才能结合使用该 IAM 用户或角色与存储桶策略。