我创建或更新了 IAM 策略,但收到错误“Has prohibited field Principal”。我如何解决此问题?

上次更新日期:2022 年 2 月 15 日

如何解决 AWS Identity and Access Management(IAM)策略中的错误“Has prohibited field Principal”?

简短描述

Principal 元素可在基于资源的策略中用于控制允许访问资源的 IAM 用户或角色。例如,Amazon Simple Storage Service(Amazon S3)存储桶使用名为存储桶策略的基于资源的策略控制对存储桶的访问。存储桶策略使用 Principal 元素。直接附加到 IAM 身份(用户、组和角色)的 IAM 策略授予进行没有 Principal 元素的 API 调用权限。有关更多信息,请参阅基于身份的策略和基于资源的策略

IAM 角色具有基于资源的策略,用于控制允许哪些用户担任该角色和接收临时凭证。IAM 角色还具有基于身份的策略,用于控制允许临时安全凭证进行哪些 API 调用。

基于资源的策略不同于资源级权限。资源级权限可以在基于资源的策略和基于身份的策略中使用。资源级权限使用 Resource 元素来限制访问 AWS 资源的权限。

解决方法

确保使用 Principal 元素的策略通过与 AWS 资源关联的 AWS 服务进行创建,而不是在 IAM 中创建。检查使用 IAM 的 AWS 服务,以确认 AWS 服务是否使用基于资源的策略。例如,Amazon S3 存储桶策略在 S3 服务中进行配置,而不是在 IAM 中配置。有关说明,请参阅使用 Amazon S3 控制台添加存储桶策略

IAM 服务本身中唯一存在的基于资源的策略是 IAM 角色的信任策略。要向 IAM 角色添加信任策略,请确保您编辑的是信任策略而不是权限策略。有关说明,请参阅修改角色信任策略权限策略


这篇文章对您有帮助吗?


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