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

GCP Data Fusion工作流执行失败:PROVISION任务REQUESTING_CREATE状态报错

解决Data Fusion工作流PROVISION阶段的compute.firewalls.list权限缺失问题

我帮你定位下问题核心:你遇到的权限报错,并不是来自你自己的账号或者手动创建的mylab-bigquery@mylab-gcp.iam.gserviceaccount.com服务账号,而是Data Fusion运行作业时依赖的托管服务账号缺少必要权限。下面是具体的解决步骤:

1. 找到Data Fusion实例的托管服务账号

Data Fusion在创建时会自动生成一个专属的托管服务账号,所有作业的底层资源操作(比如创建Dataproc集群、访问防火墙规则)都是通过这个账号执行的:

  • 打开Cloud Data Fusion控制台,找到你的testing_df实例
  • 在实例详情页的服务账号字段中,你会看到格式类似这样的账号:service-<你的项目编号>@gcp-sa-datafusion.iam.gserviceaccount.com

2. 为托管服务账号添加必要权限

进入IAM控制台,找到上面的托管服务账号,添加以下两个关键角色:

  • Compute Network Viewer:这个预定义角色包含compute.firewalls.list权限,正好解决你遇到的报错
  • Dataproc Editor:确保服务账号具备创建和管理Dataproc集群的权限(Data Fusion作业依赖Dataproc集群运行)

如果需要更精细化的权限控制,也可以直接给账号添加单独的compute.firewalls.list权限,但使用预定义角色更简单可靠。

3. 验证权限并重新运行工作流

  • 可以用gcloud命令确认权限已生效:
gcloud projects get-iam-policy mylab-gcp --filter="bindings.members:service-<你的项目编号>@gcp-sa-datafusion.iam.gserviceaccount.com"
  • 回到Data Fusion控制台,重新触发工作流运行,此时应该能顺利通过PROVISION阶段

为什么你的现有角色没起作用?

你给自己的账号和手动创建的BigQuery服务账号加了Owner等角色,但Data Fusion作业运行时并不使用这些账号——它依赖自身的托管服务账号来执行底层资源操作,所以必须给这个特定账号分配权限才行。


你的错误日志核心信息:

com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
  "code" : 403,
  "errors" : [ {
    "domain" : "global",
    "message" : "Required 'compute.firewalls.list' permission for 'projects/mylab-gcp'",
    "reason" : "forbidden"
  } ],
  "message" : "Required 'compute.firewalls.list' permission for 'projects/mylab-gcp'"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:23:31