【发布时间】:2020-09-05 18:24:19
【问题描述】:
假设我有两个 GCP 项目,A 和 B。我是这两个项目的所有者。使用 UI 时,我可以从两个项目中查询项目 B 中的 BigQuery 表。但是当我尝试在项目 A 中运行 Cloud Function 时遇到问题,我尝试从中访问项目 B 中的 BigQuery 表。具体来说,我遇到了403 Access Denied: Table <>: User does not have permission to query table <>.。我对为什么我无法访问 B 中的数据以及我需要做什么感到有些困惑。在我的 Cloud Function 中,我所做的只是:
from google.cloud import bigquery
client = bigquery.Client()
query = cient.query(<my-query>)
res = query.result()
项目 A 中存在用于运行该函数的服务帐号 - 如何为其授予编辑者访问项目 B 中 BigQuery 的权限? (或者我还应该做什么?)。
【问题讨论】:
-
我相信您必须将您的 Cloud Function 假定的服务帐户添加到项目 B。
-
你是对的。我没有意识到您可以将该服务帐户添加为项目 B IAM 中的成员。这应该可行 - 将尽快测试。
标签: python google-cloud-platform google-bigquery google-cloud-functions google-iam