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

如何用Terraform创建启用uniform_bucket_level_access的公开GCS存储桶?

问题解答

是的,必须用google_storage_bucket_iam系列资源来实现需求,原因很明确:

当你开启uniform_bucket_level_access = true后,Google Cloud Storage会彻底禁用传统的ACL权限机制,所有权限配置都必须通过IAM完成——这是GCS统一桶级访问的核心限制,所以你用对应ACL API的google_storage_bucket_access_control资源才会触发400错误。

给你改好的可用代码:

resource "google_storage_bucket" "a_bucket" {
  name                        = "<name>"
  location                    = "<region>"
  project                     = var.project_id
  storage_class               = "STANDARD"
  uniform_bucket_level_access = true
  versioning {
    enabled = false
  }
}

# 用IAM绑定实现公开访问
resource "google_storage_bucket_iam_binding" "public_access" {
  bucket = google_storage_bucket.a_bucket.name
  role   = "roles/storage.objectViewer"
  members = [
    "allUsers",
  ]
}

这里用roles/storage.objectViewer角色是为了让所有人能读取桶内的对象;如果还需要让用户能列出桶内对象,可额外添加roles/storage.legacyBucketReader角色,不过通常公开存储桶只需要前者就足够。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 21:45:49