我想解决我在 AWS CloudFormation 中遇到的 AWS Identity and Access Management (IAM) 权限错误。
简短描述
当您创建或更新 CloudFormation 堆栈时,该操作会执行对所需服务的 API 调用来预调配资源。默认情况下,AWS CloudFormation 使用其根据用户凭证生成的临时会话进行堆栈操作。如果您指定服务角色,则 AWS CloudFormation 将使用该角色的凭证。如果使用的凭证没有所需的权限,则堆栈操作会导致失败。
解决方法
要对 IAM 权限错误进行故障排除,请按照此部分中给出的步骤进行操作。
错误: “ExampleRole”无权执行: <AWSService>:<APIcall>。”
**注意:**在开始之前,请确保您已登录 AWS 账户。
要移除错误,请按照以下步骤操作:
- 进入 IAM 控制台。
- 选择 Roles(角色)。
- 在搜索栏中,输入 ExampleRole。
- 选择 Permissions(权限)选项卡。
- 验证附加到角色的策略。
- 选择策略上的 + 号,然后选择 Edit(编辑)。
- 为角色策略添加缺失的权限(API 调用)。然后,选择 Next(下一步)。
- 选择 Save changes(保存更改)。
- 进入 AWS CloudFormation 控制台。
- 重新部署堆栈。
错误: 使用资源策略时出现“MalformedPolicyDocument”错误。”
当 CloudFormation 模板的策略部分存在语法错误时,就会出现上述错误。
要移除错误,请按照以下步骤操作:
- 进入 AWS CloudFormation 控制台。
- 选择出现错误的堆栈。
- 选择 Template(模板)选项卡。
- 从 Template(模板)复制失败的策略语法。
- 将策略由 YAML 转换为 JSON。
- 进入 IAM 控制台。
- 选择 Policies(策略)。
- 选择 Create policy(创建策略)。
- 在策略编辑器中,选择 JSON。
- 将之前复制的策略语法粘贴到策略编辑器中。
- 选择 Next(下一步)。策略编辑器在策略文档中显示错误行。
- 更正策略文档的语法。
- 选择 Next(下一步)。验证语法是否有效。
- 进入 AWS CloudFormation 控制台。
- 重新部署堆栈。
故障排除提示
- 当来自 CloudFormation 堆栈事件的错误消息不明确时,请在 AWS CloudTrail 中查找 API 调用以获取相关的时间戳。
- CloudTrail API 调用提供传递到堆栈的请求参数的详细日志。日志详细信息显示相关的错误消息。有关详细信息,请参阅使用 CloudTrail 事件历史记录。
相关信息
策略摘要示例
编辑 IAM 策略