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

Terraform创建Cloud SQL实例前如何获取其服务账号并配置GCS权限?

解决Cloud SQL实例创建前获取服务账号并配置GCS权限的问题

核心思路

Terraform可通过引用google_sql_database_instance资源的service_account_email属性自动处理依赖逻辑——先完成Cloud SQL实例创建,待服务账号邮箱属性可用后,再为其绑定GCS存储桶的storage.objects.get权限。

具体实现代码

# 创建Cloud SQL实例
resource "google_sql_database_instance" "sql_instance" {
  name             = "your-sql-instance-name"
  database_version = "MYSQL_8_0"
  region           = "us-central1"

  settings {
    tier = "db-f1-micro"
  }

  replica_configuration {
    dump_file_path = var.database_dump_gs_url
  }
}

# 为Cloud SQL实例服务账号绑定GCS存储桶读取权限
resource "google_storage_bucket_iam_member" "sql_gcs_access" {
  bucket = "your-gcs-bucket-name"
  role   = "roles/storage.objectViewer" # 该角色包含storage.objects.get权限
  member = "serviceAccount:${google_sql_database_instance.sql_instance.service_account_email}"
}

补充说明

  • Terraform会自动识别资源依赖顺序,必须等google_sql_database_instance.sql_instance创建完成、service_account_email属性生成后,才会执行google_storage_bucket_iam_member的创建操作。
  • 若需要更精细化的权限控制,可自定义IAM角色,仅包含storage.objects.get权限替换上述roles/storage.objectViewer角色。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 21:40:32