下面是我的 terraform 源代码
provider "google" {
project = var.preprod_id
region = var.reqion
}
provider "google" {
alias = "source"
project = var.prod_id
region = var.reqion
}
data "google_sql_database_instance" "source" {
provider = google.source
name = "plan-flow-db"
}
resource "google_sql_database_instance" "clone" {
provider = google
name = "cloned-plan-flow-db"
region = var.reqion
database_version = data.google_sql_database_instance.source.database_version
clone {
source_instance_name = data.google_sql_database_instance.source.name
}
}
我使用 IAM 并配置如下
预生产
产品
但是我陷入了这个错误
╷
│ Error: Error, failed to create instance cloned-plan-flow-db: googleapi: Error 403: The caller does not have permission, forbidden
│
│ with google_sql_database_instance.clone,
│ on main.tf line 16, in resource "google_sql_database_instance" "clone":
│ 16: resource "google_sql_database_instance" "clone" {
│
╵
有人解决过这个问题吗?
我建议仔细检查您的目标项目的权限。
roles/cloudsql.editor(或roles/cloudsql.admin):确认此角色已分配给目标项目中的服务帐户(preprod_id)。此角色对于创建新的 Cloud SQL 实例至关重要。
如果您确定此操作正确,请检查您是否具有 VPC 访问控制并在边界内授予必要的访问权限。
您可以查看项目的权限:
gcloud 项目 get-iam-policy $preprod_id --flatten="bindings[].members"
--format='table(绑定.角色:sort=1, 绑定.成员)'