我想创建或添加 IAM 策略,然后收到错误“有禁止的字段 Principal”。我如何解决此问题?

上次更新日期:2021 年 2 月 9 日

如何在 AWS Identity and Access Management (IAM) 策略中解决“有禁止的字段 Principal”错误?

简短描述

Principal 元素可在基于资源的策略中用于控制允许访问资源的 IAM 用户或角色。例如,AWS 资源类型具有基于资源的策略,这些策略使用 Principal 元素来控制访问。直接附加到 IAM 身份 (用户、组和角色) 的 IAM 策略授予进行没有 Principal 字段的 API 调用权限。有关更多信息,请参阅基于身份的策略和基于资源的策略

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

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

解决方法

确保使用与 AWS 资源关联的 AWS 服务创建 IAM 策略,而不是在 IAM 中创建。例如,用于AWS 资源 (如 Amazon Simple Storage Service (Amazon S3) 存储桶) 的基于资源的策略是直接使用该服务创建的,而不是在 IAM 中创建。有关说明,请参阅如何添加 S3 存储桶策略?

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


这篇文章对您有帮助吗?


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