首页 > 解决方案 > AWS 无服务器框架:创建 IAM 角色和策略时出现 MalformedPolicyDocument 错误

问题描述

我正在尝试通过无服务器模板创建 IAM 角色和策略。

当我尝试部署它时,我收到一个错误 -

发生错误:SQSConnectPolicy - 策略中的语法错误。(服务:AmazonIdentityManagement;状态代码:400;错误代码:MalformedPolicyDocument

这是我的 serverless.yml 文件的片段

SQSConnectRole:
      Type: 'AWS::IAM::Role'
      Properties:
        RoleName: SqSConnectRole
        AssumeRolePolicyDocument:
          Version: '2012-10-17'
          Statement:
            - Action:
              - 'sts:AssumeRole'
              Effect: Allow
              Principal:
                Service:
                  - iot.amazonaws.com
        Path: /service-role/

    SQSConnectPolicy:
      Type: 'AWS::IAM::Policy'
      Properties:
        PolicyName: SqSConnectPolicy
        Roles:
          - !Ref SQSConnectRole
        PolicyDocument:
          Version: 2012-10-17
          Statement:
            - Effect: Allow
              Action: 'sqs:SendMessage'
              Resources:
                - arn:aws:sqs:${self:provider.region}:#{AWS::AccountId}:connectDeviceSQSDemo

在同一个 Serverless.yml 文件中创建策略和角色是否有效?

我需要添加依赖项吗?上述问题的任何输入?

标签: amazon-web-servicesamazon-cloudformationserverless-framework

解决方案


您的 IAM 政策中有错字。该词Resources应改为Resource


推荐阅读