用于查询 bigquery 的 Google Cloud Run 权限

Dar*_*ioB 0 google-bigquery google-cloud-platform google-iam google-cloud-iam google-cloud-run

我有一个使用 docker 在谷歌云中运行的小型 python 应用程序。该应用程序由 http 请求触发,在大查询中执行查询并返回结果。不幸的是,我收到以下权限错误:

Reason: 403 POST https://bigquery.googleapis.com/bigquery/v2/projects/XXXX/jobs: Access Denied: Project XXXX: User does not have bigquery.jobs.create permission in project XXXX.\n\n(job ID: XXXX-XX-XX-XX-XXXX)\n\n
Run Code Online (Sandbox Code Playgroud)

我知道我需要提供从云运行到大查询的访问权限。我该怎么做?给哪个用户?我怎么知道?

Joh*_*ley 8

您需要通过 IAM 角色向分配给 Cloud Run 的服务帐号添加 BiqQuery 权限。

要允许 Cloud Run 创建 Big Query 作业 (bigquery.jobs.create),您需要以下角色之一:

  • 角色/bigquery.user
  • 角色/bigquery.jobUser

Cloud Run 的服务帐号显示在 Google Cloud Console 的 Cloud Run 部分中您的服务。最有可能的是Compute Engine default service account

要添加 BiqQuery 角色,您可以使用 Google Cloud Console。转到 IAM,找到服务帐户。将角色添加到服务帐号。

文档: