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

BigQuery权限继承问题:如何实现服务账号多账号BQ读取权限继承

核心诉求

我们希望找到一种方法,让一个*服务账号(service account)从多个其他服务账号继承BigQuery(BQ)读取权限,但模拟身份(impersonation)*仅支持单个账号。

业务场景

我司采用data mesh架构,由产品团队负责将数据集成至BigQuery,产品负责人同时作为数据所有者,决定数据访问权限的授予对象。

作为分析团队,我们常在BigQuery查询中整合多源系统数据。ETL流程运行于kubernetes集群,每个流程使用独立的服务账号,以此实现细粒度访问控制,确保每个流程仅能访问所需的数据对象,这一设计也便于调试与成本管控,但在数据源侧引发了如下问题:

现存问题

每当设计新流程时,我们都需向数据所有者申请权限。尽管对方已同意我们团队/系统可整体访问其数据,但重复的授权流程繁琐且易造成数据所有者困惑。

我们期望为每个数据源对象设置一个持有必要BQ读取权限的“代理”服务账号,让流程的服务账号继承所需访问的BQ数据源对应的代理服务账号权限。

使用impersonation仅能支持单个源系统,而我们的查询常涉及多个源系统。

Google Groups方案不可行

我们曾讨论为每个需读取的源系统创建Google Groups,为该组分配BigQuery Data Reader角色,再将需要权限的服务账号加入组中。但公司政策禁止将服务账号加入Google Groups,且产品团队无法自行管理(创建)Google Groups,导致该方案缺乏灵活性。

粗粒度权限方案的局限

一种替代方案是采用更粗粒度的访问控制,即所有ETL流程共用一个服务账号,可通过为查询添加流程名称标签来满足调试与成本管控需求。但我们更倾向于保留流程仅能访问最少必要数据对象的细粒度控制方式。


内容的提问来源于stack exchange,提问作者Thomas W.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:35:22