首页 > 解决方案 > 如何在 cloudformation 中创建托管策略,允许 lambda 访问 aws 环境中的所有 s3 容器

问题描述

我正在尝试为 lambda 创建一个托管策略,允许它访问我环境中的所有 s3 存储桶。这个 lambda 基本上扫描每个存储桶的内容,如果超过 30 天,则使用前缀 archive/ 键入任何对象。我正在尝试在 cloudformation 中创建策略,但在打包时我一直收到错误消息,预计流或文档分隔符的结尾。我知道这是一个 yaml 错误,但不确定如何纠正它。


 LambdaArchiveAccessPolicy:
    Type: AWS::IAM::ManagedPolicy
    Properties:
      ManagedPolicyName: LambdaArchiveAccessPolicy
      Description: Policy for allowing lambda to access s3 containers
      PolicyDocument:
        Version: 2012-10-17
        Statement:
          Effect: Allow
          Action: 's3:*'
          Resource: !Sub 'arn:aws:s3:::*'

我怀疑我如何定义资源是错误的。我将不胜感激任何指导或建议

标签: amazon-web-servicesyamlamazon-cloudformation

解决方案


根据此处的 YAML 规范,间距在 YAML 文件中很重要,更具体地说:

所有兄弟节点必须使用完全相同的缩进级别。

在您的 YAML 中,您的第一行缩进了三个空格,但随后的缩进只有 2 个空格。将间距纠正一,您将解决您的问题。


推荐阅读