You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Terraform配置AWS S3 Bucket公开访问遇阻,求排查问题

问题分析与解决

你的S3桶无法实现公开访问的核心问题在于**aws_s3_bucket_public_access_block资源的默认配置会阻止所有公共访问**,这会直接覆盖你设置的public-read ACL规则。

具体原因

当你创建aws_s3_bucket_public_access_block但不指定任何参数时,Terraform会默认启用以下四项公共访问限制(参数值全为true):

  • block_public_acls:禁止设置公共ACL
  • ignore_public_acls:忽略已配置的公共ACL
  • block_public_policy:禁止设置公共桶策略
  • restrict_public_buckets:限制公共桶的访问权限

这些默认配置会完全抵消你设置的public-read ACL,导致桶无法被公开访问。

修复方案

若要让桶正常对外开放,需要显式将上述四项限制参数设置为false,修改后的完整代码如下:

resource "aws_s3_bucket" "My_bucket" {
  bucket = "my-test-bucket-for-vpc-endpoints"
  tags = {
    Name = "My bucket"
  }
}

resource "aws_s3_bucket_acl" "example_bucket_acl" {
  bucket = aws_s3_bucket.My_bucket.id
  acl    = "public-read"
}

resource "aws_s3_bucket_public_access_block" "example" {
  bucket = aws_s3_bucket.My_bucket.id

  block_public_acls       = false
  ignore_public_acls      = false
  block_public_policy     = false
  restrict_public_buckets = false
}

额外注意事项

  • 公开S3桶存在数据泄露风险,仅在确认桶内内容适合公开时再开启该配置。
  • 若后续需要通过桶策略细化访问控制,也要确保block_public_policy保持false,否则策略无法生效。

内容的提问来源于stack exchange,提问作者charles uneze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 15:22:36