我目前正在尝试使用s3模板为云形成部署定义一个SAM存储桶。按照文档操作,我认为我正确地设置了PublicAccessBlockConfiguration:
(yaml)
    S3Bucket1:
        Type: AWS::S3::Bucket
        Properties:
          BucketName: abl-ar-report-container 
          BucketEncryption: 
            ServerSideEncryptionConfiguration: 
            - ServerSideEncryptionByDefault:
                SSEAlgorithm: AES256
          PublicAccessBlockConfiguration:
            BlockPublicAcls : true
            BlockPublicPolicy : true
            IgnorePublicAcls : true
            RestrictPublicBuckets : true但是,当我部署时,我收到以下消息:
id为S3Bucket1的资源无效。未为类型为AWS::S3::Bucket的资源定义属性PublicAccessBlockConfiguration
我确实在git上看到了一些模板变体的引用,我将AWS模板声明为:
AWSTemplateFormatVersion: 2010-09-09
Description: A template for a Node.js-based application 
Transform: AWS::Serverless-2016-10-31在深入研究之后,我认为我正在将CF模板语法和SAM语法混合在一起。谁能告诉我这些设置的正确文档或语法?
发布于 2019-01-25 22:51:31
我深入研究了一下,它目前是SAM中的一个bug。这是GitHub issue。有一个已经合并的patch,应该在v1.10.0中进行修复。
问题的根源是,SAM中的s3模型有一个硬编码的属性列表,而PublicAccessBlockConfiguration是相对较新的,还没有添加。
我希望这能帮到你。
发布于 2019-01-25 12:50:30
我建议使用默认设置创建s3bucket。默认情况下,S3对公共访问是阻止的。并简单地将IAM角色/策略与reads3对象相关联,以进行CFN部署
https://stackoverflow.com/questions/54356038
复制相似问题