如何传递GOOGLE_APPLICATION_CREDENTIALS中的内容而不是文件路径?

问题描述

是否可以使用GOOGLE_APPLICATION_CREDENTIALS env变量并将文件内容传递给它,而不是传递文件路径,实际上我想从NodeJs应用程序中使用服务帐户,但我的条件是我无法通过文件,但我可以通过NodeJS代码传递其内容

解决方法

如果您使用的是GKE,则应使用工作负载身份,而不要传递服务帐户凭据。这是更安全和首选的方式。

在GKE / GCP之外,您可以构建自定义身份验证客户端:

const creds = JSON.parse(process.env.GOOGLE_CREDS);
this.auth = new GoogleAuth({
  scopes: [...],credentials: creds,});