如何授予服务帐户访问两个项目的权限?

How to give service account access to two projects?

使用 Google 云,存在查询两个项目的 BigQuery 视图 table。

但是,在视图所在的项目上,我们希望 运行 从 Airflow/Composer 对其进行查询。目前它因 403 而失败。

据我所知,它将使用默认的作曲家服务帐户 - 但是它无权访问视图 sql 中使用的第二个项目。

如何授予 composer 的服务帐户访问第二个项目的权限?

我认为您必须将服务帐户添加到项目 IAM 中。

将服务帐户想象成用户帐户:您有一个用户电子邮件,您在不同的项目和组件上授权。与服务帐户电子邮件完全相同。

服务帐号属于一个项目。用户帐户属于域 name/organisation。最后没有真正的区别。

因此,您可以像使用任何用户帐户一样使用服务帐户电子邮件:

  • 在任何项目中授予权限
  • 将其添加到 Google 组中
  • 甚至授予它对 GSuite 文档(Sheet、文档、幻灯片等)的查看者或编辑者角色,以允许它访问和 read/update 这些文档!!喜欢任何用户!

编辑

使用 Airflow,您可以 defined connexions and a default connexion。您可以在您的 DAG 中使用此连接,从而使用您想要的服务帐户。