You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过CloudFormation更新IAM策略,返回状态码500求助

CloudFormation更新IAM RolePolicy触发500错误的原因分析

原始的IAM RolePolicy定义

AllowSchedulerToExecuteCodePolicy:
  Type: AWS::IAM::RolePolicy
  Properties:
    PolicyDocument:
      {
         "Version": "2012-10-17",
         "Statement": [
            {
               "Sid": "ExecuteLambdaFunctions",
               "Effect": "Allow",
               "Action": [
                 "lambda:InvokeFunction"
               ],
               "Resource": [
                 "Fn::GetAtt": "Lambda1.Arn",
                 "Fn::GetAtt": "Lambda2.Arn"
               ]
            },
            {
               "Sid": "ExecuteECSTask",
               "Effect": "Allow",
               "Action": [
                 "ecs:StartTask",
                 "ecs:StopTask",
               ],
               "Resource": [
                 "Fn::GetAtt": "ECSCluster1.Arn"
               ]
           }
         ]
      }
    PolicyName: !Sub Invoke-Code-${Environment}
    RoleName: !Ref EventBridgeSchedulerExecutionRole

问题情况

删掉策略里Lambda2.Arn的引用后,更新CloudFormation栈时碰到了这个错误:

Resource handler returned message: "null (Service: Iam, Status Code: 500, Request ID: d2b80ce2-5289-4509-8967-3a65409f8282)" (RequestToken: 06927047-00b6-378d-78c9-65105e880242, HandlerErrorCode: GeneralServiceException)

之后尝试回滚也报同样的错,栈现在处于异常状态。

大概率的原因

  • JSON语法有问题:原始策略里ecs:StopTask后面多了个逗号,属于无效JSON。有些时候CloudFormation创建时解析比较宽松能过,但更新时校验变严格,直接触发了IAM服务端的500错误。
  • IAM服务临时故障:500状态码基本是AWS内部服务的问题,可能是IAM当时刚好有临时故障,没法处理你的策略更新请求。
  • 资源引用冲突:如果Lambda2已经被删掉,或者它的ARN在当前环境里不存在了,更新时处理这个引用就可能引发服务端错误。
  • 角色本身异常:EventBridgeSchedulerExecutionRole这个角色如果被其他资源锁定,或者本身权限配置有冲突,也可能导致更新时出问题。

排查步骤

  • 先把PolicyDocument里的语法错误修好,删掉ecs:StopTask后面的多余逗号,确保JSON完全合法。
  • 等十几分钟再重试更新或回滚,排除IAM临时故障的可能。
  • 检查EventBridgeSchedulerExecutionRole的状态,确认它没被删除、也没被其他进程占用。
  • 试试手动在IAM控制台直接更新这个策略,如果能成功,那问题大概率出在CloudFormation的处理逻辑上;如果也失败,那就是IAM服务本身的问题或者策略还有其他隐藏问题。

内容的提问来源于stack exchange,提问作者Roland

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 14:31:20