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

使用Terraform配置Cloud Run公网访问时遇403权限错误求助

问题分析与解决方案

核心问题

你使用了v2版本的Cloud Run服务资源(google_cloud_run_v2_service),但绑定IAM权限时用的是v1版本的IAM资源(google_cloud_run_service_iam_binding),两者不兼容,导致权限设置时出现403错误。

修复步骤

将IAM绑定资源替换为v2对应的版本google_cloud_run_v2_service_iam_binding,修改后的完整配置如下:

terraform {
  required_providers {
    google = {
      source  = "hashicorp/google"
      version = "4.51.0"
    }
  }
}

provider "google" {
  credentials = file(var.credentials_file)
  project = var.project
  region  = var.region
}

resource "google_cloud_run_v2_service" "terra_demo" {
  name     = "cloudrun-service-demo"
  location = var.region
  ingress  = "INGRESS_TRAFFIC_ALL"

  template {
    containers {
      image = "us-central1-docker.pkg.dev/${var.project}/${var.container_repository}/${var.container_name}"
    }
  }
  depends_on = [google_project_service.run]
}

# 使用v2版本的IAM绑定资源
resource "google_cloud_run_v2_service_iam_binding" "default" {
  location = google_cloud_run_v2_service.terra_demo.location
  service  = google_cloud_run_v2_service.terra_demo.name
  role     = "roles/run.invoker"
  members = [
    "allUsers"
  ]
  # 显式依赖服务创建完成,避免时序问题
  depends_on = [google_cloud_run_v2_service.terra_demo]
}

额外验证点

  • 确认google_project_service.run资源已正确启用Cloud Run API(你已成功创建服务,这一步应该无问题)
  • 服务账号的Owner角色权限会即时生效,若仍有异常,可重新生成服务账号密钥并替换var.credentials_file

内容的提问来源于stack exchange,提问作者SBUK-Tech

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 23:12:24