首页 > 解决方案 > 无服务器 - 如何通过无服务器创建独立的客户管理策略

问题描述

目前我的 serverless.yml 文件如下所示:

service: aaaaa

provider:
  name: aws
  runtime: go1.x
  stage: mydev

resources:
  Resources:
    MyManagedPolicy:
      Type: AWS::IAM::ManagedPolicy
      Properties: 
        Description: This is my custom managed policy
        PolicyDocument:
          Version: 2012-10-17
          Statement:
            - Effect: Allow
              Action: s3:GetObject
              Resource: '*'

当我运行“ sls deploy ”命令时,我收到以下错误:

错误:

发生错误:MyManagedPolicy - 策略中的语法错误。(服务:AmazonIdentityManagement;状态代码:400;错误代码:MalformedPolicyDocument;请求 ID:a20aa12c-fbaf-4301-bd20-b0148426f633)。

你能指出语法错误吗?我是无服务器的新手,所以无法理解。

如果可能,请建议工作的 serverless.yml

标签: amazon-web-servicesamazon-iamserverless-frameworkserverless

解决方案


MyManagedPolicy政策是正确的。它的语法、yaml 和PolicyDocument.

为了验证它,我使用您创建了自己的模板, MyManagedPolicy并且部署它没有任何问题。

但是,在使用无服务器进行测试时,我可以确认这与 OP 报告的问题不一样。

经过进一步调查,发现无服务器错误地指定Version: 2012-10-17为:

 "Version": "2012-10-17T00:00:00.000Z"

解决方案是在引号中使用日期:

Version: "2012-10-17"

推荐阅读