【问题标题】:Serverless - How to create a standalone customer managed policy through serverless无服务器 - 如何通过无服务器创建独立的客户管理策略
【发布时间】:2020-10-19 05:36:48
【问题描述】:

目前我的 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-services amazon-iam serverless-framework serverless


    【解决方案1】:

    MyManagedPolicy 政策正确。它的语法、yaml 和PolicyDocument 都没有错。

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

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

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

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

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

    Version: "2012-10-17"
    

    【讨论】:

    • 您可以尝试使用无服务器吗?我正在运行“sls deploy”命令来创建这个托管策略。就我而言,它失败了。关于为什么我通过无服务器收到此错误的任何想法?
    • @Jatin 你是对的。我将用原因和解决方案更新答案。
    • 谢谢。使用引号作为版本后它正在工作。
    • @Jatin 没问题。想知道这是否是 serverless 错误?
    • 你能告诉我你在哪里注意到版本被转换为“版本”:“2012-10-17T00:00:00.000Z”???我无法找到我也可以看到相同错误的地方。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    相关资源
    最近更新 更多