Google Cloud Data Fusion Datastore节点Get Schema权限不足求助
确认权限授予的正确服务账号
Data Fusion实例默认使用自身专用的服务账号,而非App Engine默认账号。该账号格式为:service-<PROJECT_NUMBER>@gcp-sa-datafusion.iam.gserviceaccount.com。你需要给这个账号授予Datastore相关权限,而非PROJECT_ID@appspot.gserviceaccount.com。配置最小必要权限
读取Datastore数据只需授予Datastore Viewer(roles/datastore.viewer)角色即可,无需过度授权到Editor。确保该角色被正确绑定到Data Fusion的专用服务账号上。验证项目一致性
当使用auto-detect时,需确保Data Fusion实例与目标Datastore处于同一个GCP项目。跨项目场景下,auto-detect无法正常工作,需手动指定跨项目服务账号的密钥文件,并确保该账号在Datastore所在项目拥有对应权限。等待权限生效
GCP IAM权限变更通常需要5-10分钟才能完全生效,配置完权限后不要立即重试,等待一段时间再验证节点。检查网络连通性
如果是私有网络部署的Data Fusion实例,需确认实例能访问Datastore的API端点(datastore.googleapis.com):- 检查VPC peering是否已正确配置(Data Fusion默认需要与GCP服务网络建立peering)
- 若使用云NAT,确保NAT规则允许出站访问Datastore服务
手动指定服务账号密钥测试
暂时放弃auto-detect,手动生成Data Fusion专用服务账号的JSON密钥文件:- 进入IAM & Admin -> 服务账号页面,找到Data Fusion的专用账号
- 点击"添加密钥" -> "创建新密钥",选择JSON格式下载
- 将密钥文件上传到Data Fusion关联的云存储桶(如
gs://datafusion-<INSTANCE-ID>-bucket/) - 在Datastore节点配置中,将
ServiceAccount File Path指定为该文件的GCS路径(如gs://datafusion-xxxx-bucket/key.json),再重试获取Schema
内容的提问来源于stack exchange,提问作者Tony Tullemans

