我们正在开发一个通过AppEngine部署在GCP上的全堆栈平台,并将Firebase (Firestore + RealTimeDb)作为noSql Db模块。
我们要活下去,但我有疑问。现在,我们使用Firebase private-key.json将软件与Firebase接口,并将其保存到项目中的一个文件夹(如src/firebase ),并通过以下方式绑定到我们的代码:
admin.credential.cert(require(path))API键和路径保存到.env文件中。
我们使用相同的技术来使用GCP客户端库(例如,日志记录系统)。我还看到,对于GCP客户端库,Google建议使用环境变量,但也表明它们仅在会话期间处于活动状态。
无论如何,为了尊重和优化我们系统的安全性:我们应该使用这些配置,还是我们必须改变它们?请不要公开凭据和没有易受攻击的系统,您有什么建议吗?
谢谢各位
发布于 2021-11-19 08:48:02
张贴约翰汉利,纪尧姆布拉奎尔,阿尔-丹恩和亚历克斯L的评论作为一个社区Wiki的能见度。
应用程序引擎和Firebase是不同的服务。它们的配置文件之间有区别。
App引擎不需要service-account.json文件。使用应用程序默认凭据(ADC)。在应用程序源代码中部署service-accout.json文件是不安全的。
AppEngine服务拥有使用Firebase产品(Firestore,Firebase函数)的权限,这应该足够了。这意味着您实际上不需要Node.js后端中的API密钥和Firebase私钥。
App引擎运行在一个服务帐户下。可以将相关的IAM角色授予该帐户(即roles/datastore.user),这样它就可以使用Firestore服务。如果你愿意的话-你可以把它们放在不同的项目里。
在这个场景中,您可以参考Node.js快速启动来获得指导。
https://stackoverflow.com/questions/69769779
复制相似问题