首页 > 解决方案 > CloudFormation 堆栈中的错误:策略中的语法错误。(服务:AmazonIdentityManagement;状态代码:400;

问题描述

这应该相当简单(我希望)。我正在通过无服务器框架使用 CloudFormation 堆栈,但遇到语法错误。该项目使用 Lambda 调用 QuickSight API 以实现自动数据摄取。

我得到的错误是:


  Serverless Error ---------------------------------------

  An error occurred: QuickSightPolicy - Syntax errors in policy. (Service: AmazonIdentityManagement; Status Code: 400; Error Code: MalformedPolicyDocument; Request ID: b2982ca2-7518-4e7d-8258-78240d3a465e; Proxy: null).

具有该策略的部分 Yaml 文件如下所示

    LambdaAssumeRole:
      Type: AWS::IAM::Role
      Properties:
        AssumeRolePolicyDocument:
          Statement:
          - Action: ['sts:AssumeRole']
            Effect: Allow
            Principal:
              Service:
              - lambda.amazonaws.com
    QuickSightPolicy:
      Type: 'AWS::IAM::Policy'
      Properties:
        PolicyDocument:
          Statement:
          - Action: ['quicksight:*']
            Effect: Allow
            Resorce: '*'
        PolicyName: QuickSightPolicy
        Roles: [!Ref 'LambdaAssumeRole']

我省略了 version 属性,但认为这不会成为它运行的问题。我不确定还有什么需要更改或导致错误的原因

标签: amazon-web-servicesyamlamazon-cloudformationamazon-iamserverless-framework

解决方案


Resorce是一个错字Resource。建议在VSCode中尝试CloudFormation Linter以在编写模板以及自动完成和文档链接时内联查看其中一些错误:

Visual Studio 代码扩展

[cfn-lint] E2507: IAM Policy statement missing Resource or NotResource
[cfn-lint] E2507: IAM Policy statement key Resorce isn't valid

推荐阅读