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

创建CloudDNS托管区域遇403 Forbidden错误,寻求权限排查

问题描述

我拥有一个具备以下角色的服务账号:

roles/dns.admin
roles/serviceusage.serviceUsageAdmin

我正使用它通过Terraform创建CloudDNS托管区域,配置代码如下:

resource "google_dns_managed_zone" "my_zone" {
  name        = "my-zone"
  dns_name    = "mydomain.com."
  description = "My zone"
}

我采用JSON密钥认证方式(通过环境变量GOOGLE_CLOUD_KEYFILE_JSON指向服务账号的JSON密钥文件),但遇到如下错误:

Error: Error creating ManagedZone: googleapi: Error 403: Forbidden, forbidden

我已确认CloudDNS API已启用,反复检查后仍未发现问题,请问是否缺少某些权限?

排查与解决方案
  • 等待权限生效:GCP IAM权限变更并非实时生效,通常需要5-10分钟才能完全同步,若刚给服务账号绑定角色,先等待一段时间再重试。
  • 确认账号与项目匹配:确保服务账号属于目标GCP项目,且角色是绑定在该项目层级(若绑定在文件夹或组织层级,需确认权限继承规则是否允许该项目使用)。
  • 锁定Terraform的目标项目:在Terraform的Google Provider配置中明确指定项目ID,避免环境变量或默认配置导致项目不匹配:
    provider "google" {
      project = "你的目标项目ID"
    }
    
  • 手动验证账号权限:用gcloud工具直接测试服务账号的操作权限:
    1. 激活服务账号:
      gcloud auth activate-service-account --key-file=你的密钥文件路径.json
      
    2. 尝试手动创建托管区域:
      gcloud dns managed-zones create my-zone --dns-name=mydomain.com. --description="My zone"
      
      若手动操作也报403,说明是账号权限或组织限制问题;若手动成功,再检查Terraform的配置细节(比如provider的区域、额外参数等)。
  • 检查组织政策限制:部分企业GCP组织会设置组织政策,禁止创建特定类型的CloudDNS托管区域(比如公共域名区域),可联系组织管理员确认是否存在相关限制。

内容的提问来源于stack exchange,提问作者Héctor Valls

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 04:08:18