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

使用Terraform创建GCP Cloud SQL实例失败求助

解决Terraform创建Cloud SQL PostgreSQL实例的403权限错误

问题场景

使用服务账号作为Google凭据,通过Terraform创建Cloud SQL PostgreSQL实例,已为该服务账号分配Cloud SQL Admin角色(甚至添加了Owner角色),但仍收到403权限错误,报错信息如下:

google_sql_database_instance.postgres_instance: Creating...

 Error: Error, failed to create instance postgresql-dev: googleapi: Error 403: The client is not authorized to make this request., notAuthorized

   with google_sql_database_instance.postgres_instance,
   on main.tf line 402, in resource "google_sql_database_instance" "postgres_instance":
  402: resource "google_sql_database_instance" "postgres_instance" {

排查与解决步骤

  • 确认凭据加载正确性

    1. 检查环境变量GOOGLE_APPLICATION_CREDENTIALS是否指向正确的服务账号密钥文件:运行echo $GOOGLE_APPLICATION_CREDENTIALS验证路径。
    2. 若Terraform provider块中显式指定了credentials参数,确认路径无误。
    3. 激活服务账号并验证身份:
      gcloud auth activate-service-account --key-file=PATH_TO_YOUR_KEY.json
      gcloud config get-value account
      
      确保输出的账号是你配置的目标服务账号。
  • 检查组织/项目级拒绝政策
    组织或项目的IAM Deny政策可能会覆盖Owner等角色的权限,阻止sql.instances.create操作:

    1. 登录Google Cloud控制台,进入IAM > 拒绝政策页面。
    2. 排查是否存在针对该服务账号、项目或相关资源的拒绝规则,确认是否禁止了Cloud SQL实例创建操作。
  • 验证Cloud SQL Admin API是否启用
    未启用Cloud SQL Admin API会导致权限接口无法调用:

    1. 检查API状态:
      gcloud services list --enabled | grep sqladmin
      
    2. 若未启用,执行以下命令开启:
      gcloud services enable sqladmin.googleapis.com
      
  • 检查服务账号密钥有效性
    密钥过期或被撤销会导致身份验证失败:

    1. 进入IAM > 服务账号 > 目标服务账号 > 密钥页面。
    2. 确认正在使用的密钥状态为「活跃」,未被删除或撤销。
  • 确认Cloud SQL配额是否充足
    部分情况下配额耗尽会返回误导性的403错误:

    1. 进入控制台IAM与管理 > 配额页面。
    2. 搜索「Cloud SQL instances」,确认项目仍有可用的实例配额。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 04:54:58