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

Terraform使用google-beta provider创建负载均衡预留子网报403权限错误

问题背景

我正尝试为区域负载均衡创建预留子网,这是我首次使用google-beta provider,使用如下脚本创建子网:

resource "google_compute_subnetwork" "proxy-subnet" {
  provider      = google-beta
  project       = "proyecto-pegachucho"
  name          = "website-net-proxy"
  ip_cidr_range = "10.10.50.0/24"
  region        = "us-central1"
  network       = google_compute_network.HSBC_project_network.self_link
  purpose       = "INTERNAL_HTTPS_LOAD_BALANCER"
  role          = "ACTIVE"
}
报错信息

执行后出现如下报错:

Error: Error creating Subnetwork: googleapi: Error 403: Required 'compute.subnetworks.create' permission for 'projects/proyecto-pegachucho/regions/us-central1/subnetworks/website-net-proxy'
More details:
Reason: forbidden, Message: Required 'compute.subnetworks.create' permission for 'projects/proyecto-pegachucho/regions/us-central1/subnetworks/website-net-proxy'
Reason: forbidden, Message: Required 'compute.networks.updatePolicy' permission for 'projects/proyecto-pegachucho/global/networks/hsbc-vpc-project'


  on .terraform\modules\networking\networking.tf line 18, in resource "google_compute_subnetwork" "proxy-subnet":
  18: resource "google_compute_subnetwork" "proxy-subnet" {
问题说明

该报错不符合预期,我使用的服务账号拥有owner角色,已开通上述所需权限。

解决方案

已找到解决方法:在使用google-beta provider的模块中直接添加provider配置即可,配置示例如下:

provider "google-beta" {
  project     = var.project
  region      = var.region
  credentials = "./mario.json"
}

resource "google_compute_health_check" "lb-health-check-global" {
  name                = var.healthckeck_name
  check_interval_sec  = var.check_interval_sec
  timeout_sec         = var.timeout_sec
  healthy_threshold   = var.healthy_threshold
  unhealthy_threshold = var.unhealthy_threshold # 50 seconds

  tcp_health_check {
    port = var.healthckeck_port
  }
}

resource "google_compute_region_health_check" "lb-health-check-regional" {
  provider            = google-beta
  region              = var.region
  project             = var.project
  name                = "healthcheck-regional"
  check_interval_sec  = var.check_interval_sec
  timeout_sec         = var.timeout_sec
  healthy_threshold   = var.healthy_threshold
  unhealthy_threshold = var.unhealthy_threshold # 50 seconds

  tcp_health_check {
    port = var.healthckeck_port
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 11:00:09