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

Vertex AI Pipeline中BigQuery权限报错:未知项目ID来源求助

排查Vertex AI Pipeline中BigQuery加载任务的陌生项目ID权限问题

问题描述

执行BigQuery数据加载任务时触发403权限错误:

google.api_core.exceptions.Forbidden: 403 POST https://bigquery.googleapis.com/bigquery/v2/projects/xc526656e7cecfc24p-tp/jobs?prettyPrint=false: Access Denied: Project xc526656e7cecfc24p-tp: User does not have bigquery.jobs.create permission in project xc526656e7cecfc24p-tp.

核心疑问:

  • 未知项目ID xc526656e7cecfc24p-tp 的来源
  • 自身服务账号、个人账号在目标项目中已拥有 bigquery.jobs.create 权限,但IAM控制台无法找到该陌生项目ID

排查步骤

1. 确认BigQuery客户端的默认项目

BigQuery客户端初始化时若未显式指定项目,会自动读取环境变量或凭据关联的项目:

  • 在组件代码中添加日志,打印客户端关联的项目:
    client = bigquery.Client()
    print(f"BigQuery Client 当前关联项目: {client.project}")
    
  • 检查组件运行时的环境变量,重点查看 GOOGLE_CLOUD_PROJECT、GCLOUD_PROJECT 是否被设置为该陌生项目ID。

2. 验证Vertex AI Pipeline使用的服务账号

Pipeline组件默认使用Vertex AI服务账号(格式通常为 service-{PROJECT_NUMBER}@gcp-sa-vertexai.iam.gserviceaccount.com),而非本地个人账号或自定义服务账号:

  • 在Vertex AI控制台的Pipeline运行详情页,找到「服务账号」字段,确认其所属项目。
  • 检查该服务账号的权限配置,确认是否关联到了陌生项目。

3. 检查目标表ID参数的正确性

组件参数 table_id 要求格式为 project_id.dataset_id.table_id,若传入的项目ID部分错误,BigQuery会尝试在错误项目下创建任务:

  • 在组件代码中添加日志,打印传入的 table_id:
    print(f"传入的目标表ID: {table_id}")
    
  • 确认 table_id 中的项目ID为预期的目标项目,而非陌生ID。

4. 排查GCS数据源路径的关联项目

若GCS路径所属项目与陌生ID一致,BigQuery可能会尝试在该项目下执行任务:

  • 在组件代码中添加日志,打印传入的GCS路径:
    print(f"GCS数据源路径: {path}")
    
  • 验证该GCS Bucket所属的项目是否为陌生项目ID。

5. 检查Pipeline部署与运行的项目配置

  • 确认Pipeline部署的目标项目是否为你预期的项目,而非误部署到陌生项目。
  • 查看Pipeline运行时的配置参数,是否指定了错误的项目ID作为执行上下文。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 11:21:35