Google cloud platform 通过IAP验证从GCE到BigQuery的请求

Google cloud platform 通过IAP验证从GCE到BigQuery的请求,google-cloud-platform,google-bigquery,google-oauth,google-iam,identity-aware-proxy,Google Cloud Platform,Google Bigquery,Google Oauth,Google Iam,Identity Aware Proxy,我正在使用一个GCE实例和GCP提供的一个python/jupyter笔记本映像来进行一些数据分析。数据驻留在BigQuery中。默认情况下,该实例可以使用服务帐户访问BiqQuery,但出于数据保护原因,我必须使用请求数据的个人用户帐户 我知道可以使用python中的编程oauth流来请求凭据,以便使用个人帐户对BigQuery进行身份验证,但是每次重新启动ipython内核时,该流都必须以交互方式运行,并且需要在浏览器中打开授权URL,然后粘贴机密,这很烦人 由于我使用IAP使用我的帐户登录

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

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


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

据我所知,IAP就像用户和应用程序之间的登录屏幕(在您的例子中,是在GCE上运行的jupyter服务器)用于验证应用程序的用户身份,例如jupyter服务器

IAP在您进行身份验证后向http请求添加了一个id_令牌(JWT),JWT是专门为IAP实例制作的,如果您对JWT进行base64解码,您将看到观众声明设置为IAP实例的客户端_id,并且不能用于其他目的

此外,bigquery需要一个而不是一个id_令牌。我认为执行oauth流可能是唯一的方法。但是很高兴被纠正