无法通过 CloudFormation 更新 IAM 策略 - 状态代码 500

问题描述 投票:0回答:1

我在 CloudFormation 上定义了一个

AWS::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

我现在想从 Cloudformation 堆栈中删除 Lambda2.Arn。所以我也在政策中删除了对它的引用。

当我尝试通过 CloudFormation 更新新的 RolePolicy 时,出现以下错误:

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)

后续更新回滚显示相同的错误,现在我陷入了损坏的堆栈。

知道导致此问题的原因吗?提前谢谢你:)

amazon-web-services aws-cloudformation amazon-iam
1个回答
0
投票

过了一段时间问题就自行解决了...看来 IAM 服务出现了问题。

对于有同样问题的人,请等待后尝试部署堆栈。如果这不起作用,也许可以尝试重命名资源,以便触发资源替换而不是资源更新。

© www.soinside.com 2019 - 2024. All rights reserved.