我正在编写Spark Job以在Project A中的DataProc集群上运行,但作业本身将使用BigQuery Connector从Project B中的BigQuery实例中提取数据。我拥有两个项目的所有者权限,但是使用服务帐户运行作业。我在堆栈跟踪中得到的响应是:
' '
答案 0 :(得分:2)
正如您所注意到的,Dataproc群集代表服务帐户而不是单个用户运行;这是有意的,因为不同的用户可能在共享项目中创建Dataproc集群,他们不希望他们的个人权限使用同一项目泄漏到组织的其他成员,而应根据服务帐户定义权限,每个服务帐户代表一个特定工作量范围。
在这种情况下,您所要做的就是进入项目B并将项目A中的服务帐户添加为可以访问项目B中的BQ的角色之一。如果它不是一个复杂的安排用户和不同的团队,您可以将其添加为"项目查看器"在项目B上,否则你会想要一些更细粒度的东西,比如一个" bigquery viewer"或" bigquery编辑"。
添加该服务帐户的方式与将任何用户添加到项目B的方式相同。