AWS无服务器框架:创建IAM角色和策略时出现MalformedPolicyDocument错误

时间:2019-11-21 13:25:55

标签: amazon-web-services amazon-cloudformation serverless-framework

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

当我尝试部署它时,出现错误-

  

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

这是我的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文件中创建策略和角色是否有效?

我需要添加依赖项吗?对上述问题有任何投入吗?

1 个答案:

答案 0 :(得分:2)

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