Nodejs firebase-admin 在 Google Kubernetes 引擎中使用应用程序默认凭据进行身份验证
Nodejs firebase-admin authenticate with application default credentials in Google Kubernetes engine
我正在尝试将 firebase-admin sdk 集成到 kubernetes 集群,但我的 pod 出现以下错误。群集应该具有所需的权限。
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.
初始化代码:
var admin = require("firebase-admin");
admin.initializeApp({
credential: admin.credential.applicationDefault(),
databaseURL: "https://<DATABASE_NAME>.firebaseio.com"
});
在我的开发环境中,初始化工作得很好。 gcloud 已针对我的项目进行身份验证。
如何为 Kubernetes 引擎启用应用程序默认凭据?
提前致谢。
您是否在 Kubernetes/Container 集群中配置了一个服务帐户来验证您的 database/other Google Cloud Platform 服务?
服务帐户不仅可以用于提供使用 Google Cloud Platform API 所需的授权,而且 Kubernetes/Container 引擎应用程序也可以使用它们对其他服务进行身份验证。
您可以将服务帐户创建的凭据导入容器集群,以便您 运行 在 Kubernetes 中的应用程序可以使用它们。
Kubernetes Secret 资源类型使您能够将 credentials/key 存储在容器集群中,以便部署在集群上的应用程序可以直接使用它们。
正如 Hiranya 在评论中指出的那样,GOOGLE_APPLICATION_CREDENTIALS
环境变量需要指向密钥。
查看此 page,特别是第 3、4 和 5 步,了解有关如何执行此操作的更多详细信息。
我正在尝试将 firebase-admin sdk 集成到 kubernetes 集群,但我的 pod 出现以下错误。群集应该具有所需的权限。
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.
初始化代码:
var admin = require("firebase-admin");
admin.initializeApp({
credential: admin.credential.applicationDefault(),
databaseURL: "https://<DATABASE_NAME>.firebaseio.com"
});
在我的开发环境中,初始化工作得很好。 gcloud 已针对我的项目进行身份验证。
如何为 Kubernetes 引擎启用应用程序默认凭据?
提前致谢。
您是否在 Kubernetes/Container 集群中配置了一个服务帐户来验证您的 database/other Google Cloud Platform 服务?
服务帐户不仅可以用于提供使用 Google Cloud Platform API 所需的授权,而且 Kubernetes/Container 引擎应用程序也可以使用它们对其他服务进行身份验证。
您可以将服务帐户创建的凭据导入容器集群,以便您 运行 在 Kubernetes 中的应用程序可以使用它们。
Kubernetes Secret 资源类型使您能够将 credentials/key 存储在容器集群中,以便部署在集群上的应用程序可以直接使用它们。
正如 Hiranya 在评论中指出的那样,GOOGLE_APPLICATION_CREDENTIALS
环境变量需要指向密钥。
查看此 page,特别是第 3、4 和 5 步,了解有关如何执行此操作的更多详细信息。