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

在GCP中用Terraform创建组织级文件夹遇权限及API报错咨询

GCP组织层级Terraform创建文件夹报错问题

场景与代码

已创建名为terraform的文件夹及拥有其所有者权限的服务账号,并在组织层级为该账号配置了所有者权限,尝试通过Terraform 1.3.4在GCP组织下创建名为department1的文件夹,Terraform代码如下:

# Top-level folder under an organization.
resource "google_folder" "department1" {
    parent = "organizations/70497122"  
    display_name = "department1"
}

provider "google" {
  #project = "terraform-project-0"
  #region = "us-central1"
  credentials = file("c:/terraform/credentials/terraform-day1.json")
}

报错信息

执行时出现403错误,提示一个不存在的项目未启用Cloud Resource Manager API,报错内容如下:

Error: Error creating folder 'department1' in 'organizations/70497122': googleapi: Error 403: Cloud Resource Manager API has not been used in project 1003453129743 before or it is disabled. Enable it by visiting ... then retry.
Details:
[
{
"@type": "type.googleapis.com/google.rpc.Help",
"links": [
{
"description": "Google developers console API activation",
"url": "..."
}
]
},
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/1003453129743",
"service": "cloudresourcemanager.googleapis.com"
},
"reason": "SERVICE_DISABLED"
}
]
, accessNotConfigured

with google_folder.department1,
on main.tf line 5, in resource "google_folder" "department1":
5: resource "google_folder" "department1" {


问题解答

1. 组织层级为服务账号分配roles/resourcemanager.folderCreator权限的步骤

  • 打开GCP控制台的组织层级IAM页面
  • 点击页面顶部的「添加」按钮
  • 在「新成员」输入框中填入目标服务账号的完整邮箱(格式如:terraform@[你的组织ID].iam.gserviceaccount.com)
  • 在「角色」下拉搜索框中输入Folder Creator,选择「Resource Manager > Folder Creator」角色
  • 点击「保存」完成权限分配

2. 不存在项目的误导性报错原因

报错中的项目ID是GCP内部的默认消费者项目,当Terraform调用组织层级的API但未在provider中指定关联项目时,GCP会自动绑定这个隐藏的内部项目作为API调用的载体,而这个内部项目默认未启用Cloud Resource Manager API,因此报错里的项目并非你实际使用的项目,属于GCP API调用机制导致的误导提示。

3. 解决报错并成功创建组织级文件夹的方法

核心是给Google Provider指定一个已存在且启用了Cloud Resource Manager API的GCP项目(该项目仅作为API调用的载体,无需与文件夹创建有直接关联),具体操作:

  • 选取一个你拥有权限的已存在GCP项目(比如代码中注释的terraform-project-0)
  • 在GCP控制台中为该项目启用Cloud Resource Manager API
  • 修改Terraform的provider配置,取消注释project = "terraform-project-0"这一行,确保provider有明确的项目关联
  • 重新执行terraform init、terraform plan、terraform apply

内容的提问来源于stack exchange,提问作者d.s

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 07:45:34