关于node.js:Nodejs firebase-admin使用Google Kubernetes引擎中的应用程序默认凭据进行身份验证

Nodejs firebase-admin authenticate with application default credentials in Google Kubernetes engine

我正在尝试将firebase-admin sdk集成到kubernetes集群,但是我在pod上遇到以下错误。群集应具有所需的权限。

1
2
3
4
5
FIREBASE WARNING: Provided authentication credentials for the app named
"[DEFAULT]" are invalid. This usually indicates your app was not
initialized correctly. Make sure the"credential" property provided to
initializeApp() is authorized to access the specified"databaseURL" and
is from the correct project.

初始化代码:

1
2
3
4
5
6
var admin = require("firebase-admin");

admin.initializeApp({
  credential: admin.credential.applicationDefault(),
  databaseURL:"https://<DATABASE_NAME>.firebaseio.com"
});

在我的开发环境中,初始化工作得很好。 gcloud已针对我的项目进行了身份验证。

如何为Kubernetes引擎启用应用程序默认凭据?

预先感谢。


您是否已在Kubernetes /容器集群中配置了服务帐户以对您的数据库/其他Google Cloud Platform服务进行身份验证?

服务帐户不仅可以用于提供使用Google Cloud Platform API所需的授权,而且Kubernetes /容器引擎应用程序还可以使用它们来对其他服务进行身份验证。

您可以将服务帐户创建的凭据导入到容器集群中,以便在Kubernetes中运行的应用程序可以使用它们。

使用Kubernetes Secret资源类型可以将凭据/密钥存储在容器集群内部,以便部署在集群上的应用程序可以直接使用它们。

正如Hiranya在其注释中指出的那样,GOOGLE_APPLICATION_CREDENTIALS环境变量需要指向该键。

查看此页面,尤其是步骤3、4和5,以获取有关执行此操作的更多详细信息。