CloudFormation 不断为我的 S3 存储桶模板的部署抛出 InvalidBucketAclWithBlockPublicAccessError

2024-02-15

Goal

创建一个 S3 存储桶,我的服务将向其中写入图像,并且任何人都可以从中读取图像,因为我将在我的服务的网页上显示该图像。

Problem

因此,我有一个非常通用的(我认为)S3 存储桶模板,它应该允许任何人读取其中的对象:

 SomeS3Bucket:
    Type: "AWS::S3::Bucket"
    Properties:
      BucketName: "some-bucket-name"
      AccessControl: PublicRead
      OwnershipControls:
        Rules:
          - ObjectOwnership: BucketOwnerPreferred # without it it complains about ownership being set to BucketOwnerEnforced
      BucketEncryption:
        ServerSideEncryptionConfiguration:
          - ServerSideEncryptionByDefault:
              SSEAlgorithm: "AES256"
            BucketKeyEnabled: false
      CorsConfiguration:
        CorsRules:
          - AllowedHeaders:
              - "*"
            AllowedMethods:
              - "PUT"
              - "POST"
              - "DELETE"
              - "GET"
            AllowedOrigins:
              - "*"

尝试部署此模板总是会导致如下错误:Bucket cannot have public ACLs set with BlockPublicAccess enabled (Service: Amazon S3; Status Code: 400; Error Code: InvalidBucketAclWithBlockPublicAccessError)

尝试从 AWS 控制台创建堆栈并使用aws-cli/2.6.4 Python/3.9.11 Linux/5.10.16.3-microsoft-standard-WSL2 exe/x86_64.ubuntu.20 prompt/off.

非常感谢对此的任何帮助。

尝试添加:

PublicAccessBlockConfiguration:
        BlockPublicAcls: false
        BlockPublicPolicy: false
        IgnorePublicAcls: false
        RestrictPublicBuckets: false

但这也没有帮助。

也尝试过设置ObjectOwnership to ObjectWriter,检查了BlockPublicAccess我的 AWS 账户级别的配置。没有任何迹象表明我知道问题的根本原因。


亚马逊最近开始对新存储桶的创建方式进行更改,请参阅https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html

对于此更新后创建的新存储桶,将启用所有 S3 阻止公共访问设置,并禁用 S3 访问控制列表 (ACL)。这些默认值是保护 Amazon S3 中数据的推荐最佳实践。您可以在创建存储桶后调整这些设置。

您需要添加PublicAccessBlockConfiguration,以及设置ObjectOwnership to ObjectWriter- 你已经得到控制 - 同时确保你没有AccessControl初始设置。AccessControl只能修改after存储桶已创建。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CloudFormation 不断为我的 S3 存储桶模板的部署抛出 InvalidBucketAclWithBlockPublicAccessError 的相关文章

  • 将 EC2 实例注册到 ECS 集群,无需公网 IP

    我很难将在我的 VPC 和私有子网上 没有附加互联网网关 创建的实例添加到 ECS 集群 目前 我设法做到这一点的唯一方法是添加公共 IP 并配置 NAT 实例 网关 如何使用具有私有子网的 ECS 集群 我想我已经在 AWS 文档中找到了
  • 如何在 Lambda 中将对象上传到 S3?

    似乎无法将对象上传到 Lambda 中的 S3 本地一切正常 日志中没有错误可以显示出了什么问题 代码如下 console log Loading function var AWS require aws sdk var s3 new AW
  • 使用 Django 将文件异步上传到 Amazon S3

    我使用此文件存储引擎在上传文件时将文件存储到 Amazon S3 http code welldev org django storages wiki Home http code welldev org django storages w
  • S3 上上传文件的 MIME 类型

    如何更改 Amazon S3 上上传文件的 MIME 类型 我尝试过http docs amazonwebservices com AWSSDKforPHP latest m Amazon S3 更改内容类型 http docs amazo
  • 如何使用 AWS CodeCommit 作为 Spring Cloud Config 的存储库

    我正在尝试将 AWS CodeCommit 存储库与 Spring Cloud 配置结合使用 我已经设法让它与 SSH 一起工作 但我想使用 https 而不是 SSH AWS 建议使用凭证助手 有谁知道如何配置 spring config
  • 如何在 NextJS 中设置 AWS-SDK 凭证

    我需要从 NextJs 应用程序将一些文件上传到 S3 由于它是服务器端 我的印象是简单地设置环境变量应该可以工作 但事实并非如此 我知道还有其他选择 例如为 EC2 分配角色 但我想使用 accessKeyID 和 SecretKey 这
  • 从 Docker 容器中获取 AWS 实例元数据?

    是否有一种直接的方法可以从 Docker 容器内访问 AWS 实例元数据 例如 当尝试在 EC2 实例上获取 IAM 角色的凭证时 这将适用于实例本身 http 169 254 169 254 latest meta data iam se
  • 超时后无法部署到 AWS Elastic Beanstalk

    我是 AWS Elastic Beanstalk 的新手 这是我第一次遇到此问题 我尝试通过将我的应用程序 zip 上传到实例来部署新版本 更新完成后出现错误 已完成 但命令行超时 我增加了配置文件中的超时并重新部署 之后我收到了此消息 在
  • 在 AWS Glue 中覆盖动态框架中的镶木地板文件

    我使用动态框架在 S3 中写入镶木地板文件 但如果文件已存在 我的程序会附加一个新文件而不是替换它 我用的句子是这样的 glueContext write dynamic frame from options frame table con
  • 对于 aws s3,预检响应无效(重定向)

    我正在尝试将图像上传到我的 Amazon S3 存储桶 但即使我已经正确设置了 CORS 配置 我仍然收到此 CORS 错误 这是我的 CORS 配置
  • 从 RabbitMQ 迁移到 Amazon SQS [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们的初创公司目前正在使用RabbitMQ with Python Django 对于消息队列 现在我们计划转移到Amazon SQS其高可用性
  • 在 EB 上的 Docker 中运行的应用程序拒绝连接到自身

    我有一个 Play 2 Web 应用程序 我使用 Docker 将其部署到 Elastic Beanstalk 在此 Web 应用程序中 我启动了一个 Akka 集群 启动过程涉及将自动伸缩组中的所有节点添加为种子节点 包括其自身 第一次部
  • 在哪里可以找到 AWS Amplify Logger 日志

    我目前正在开发一个使用 AWS Amplify 创建的 Web 应用程序 我必须在其中实现日志记录 基于AWS 放大文档 https docs amplify aws lib utilities logger q platform js有一
  • AWS SAM - 无法创建变更集:Waiter ChangeSetCreateComplete 失败

    AWS SAM 使用 aws sam cli 将代码库部署到 AWS 云 但出现以下错误 Failed to create the changeset Waiter ChangeSetCreateComplete failed Waiter
  • CORS 击败 AWS LAMBDA :(

    我读了很多关于 CORS Lambda AWS API Gateway 配置的文章 包括 AWS 的设置帮助 http docs aws amazon com apigateway latest developerguide how to
  • /getaddrinfo 处出现 SocketError:未提供节点名或服务名,或未知 padrino

    我正在尝试使用 padrino 为我的亚马逊环境构建仪表板 但是当我在控制器中尝试以下代码时 get index map gt do AWS config access key id ACCESS KEY secret access key
  • Amazon S3 EPIPE 错误

    UPDATE 让它工作从命令行 http www timkay com aws 向该用户添加完全访问策略权限后 现在 当我使用 Node 执行此操作时 没有错误 但我在 s3 文件管理器中看不到这些文件 我在使用 Amazon 的 S3 服
  • S3 静态网站中的目录列表

    我已经设置了一个 S3 存储桶来托管静态文件 使用网站端点 http s3 website us east 1 amazonaws com 时 它迫使我设置一个索引文件 当找不到文件时 它会抛出错误而不是列出目录内容 使用 s3 端点 s3
  • S3 的 Rails 回形针默认图像

    我尝试在应用程序中使用default url 但我使用S3 存储图像 我不确定我需要在那里输入什么 URL 或者我是否必须创建一个假图像才能将所有内容放在那里 由于我的图像总是通过 S3 渲染 所以我不知道如果我只是在公共文件夹中放入一些默
  • 无法在 xcode 8 beta 6 上编译 AWS CustomIdentityProvider

    我在 iOS 应用程序中使用 Amazon Cognito 和 Facebook 登录 直到 beta 5 为止此代码从这个SO线程 https stackoverflow com questions 37597388 aws cognit

随机推荐