0

我正在使用 GCE 实例和 GCP 提供的 python/jupyter 笔记本图像之一来进行一些数据分析。数据驻留在 BigQuery 中。默认情况下,该实例可以使用服务帐户访问 BiqQuery,但出于数据保护的原因,我必须使用个人用户帐户来请求数据。

我知道可以在 python 中使用编程 oauth 流来请求凭据以使用个人帐户对 BigQuery 进行身份验证,但是每次重新启动 ipython 内核时都必须以交互方式运行该流,并且涉及在浏览器中打开该授权 URL,然后粘贴秘密,这很烦人。

由于我使用 IAP 使用我的帐户登录 GCE 实例,有没有办法从 IAP 获取个人凭据以用于自动对 BigQuery 进行身份验证?

4

1 回答 1

1

据我了解,IAP 就像用户和应用程序(在您的情况下,是在 GCE 上运行的 jupyter 服务器)之间的登录屏幕,用于向应用程序(例如 jupyter 服务器)验证用户身份。

IAP 在您进行身份验证后将 id_token (JWT) 作为签名标头添加到您的 http 请求中,JWT 是专门为 IAP 实例制作的,如果您对 jwt 进行 base64 解码,您将看到受众声明设置为 IAP 的 client_id例如,它不能用于其他目的。

bigquery 还需要access_token而不是 id_token。我认为做一个oauth流程可能是唯一的方法。但很高兴得到纠正......

于 2020-10-31T01:58:04.310 回答