【发布时间】:2017-12-31 02:25:35
【问题描述】:
我正在编写一些 Firebase 云函数,但我需要隐藏私钥,包括 Firebase 项目管理员。
如果我将此密钥嵌入到我的源代码中并自己上传代码,任何人都可以检索源代码并因此检索密钥吗?通过 Firebase 还是 Google?
非常感谢
【问题讨论】:
标签: firebase google-cloud-functions
我正在编写一些 Firebase 云函数,但我需要隐藏私钥,包括 Firebase 项目管理员。
如果我将此密钥嵌入到我的源代码中并自己上传代码,任何人都可以检索源代码并因此检索密钥吗?通过 Firebase 还是 Google?
非常感谢
【问题讨论】:
标签: firebase google-cloud-functions
准确回答您的问题:是的,他们可以。
一步一步实现就是比较简单
如果人们能够看到环境变量对您来说是个问题,这里有一种方法可以让事情变得更安全:
您可以在已有的基础上构建并开始加密这些密钥,然后再将它们添加到代码库或环境变量中。之后,您可以使用KMS 等加密服务在运行时解密这些密钥。在 KMS 本身中,您可以有更严格的政策,只允许您自己和该功能访问该服务。
GCP 的另一项优质服务是Google's Secret Manager
【讨论】:
也许设置一个环境变量:
【讨论】:
您的应用用户永远无法访问您的 Cloud Functions 代码。
但是,您的 Firebase 项目的协作者可以访问它。见Get code from firebase console which I deployed earlier
我认为没有任何方法可以向协作者隐藏此类配置值。由于他们可以查看/部署代码,并且代码需要访问此私钥,因此根据定义,他们也可以访问该密钥。
【讨论】: