我正在开发一个小型 Firebase 应用程序,作为其中的一部分,我有一些使用 API 密钥调用 API 的后端函数。为了避免将密钥存储在版本控制中,我在函数
defineString
中使用 index.ts
定义它。然而,我最近意识到一种不同的defineSecret
方法。两者之间有多大差异?使用 defineString
作为我的 API 密钥是否不安全?
这在文档中有所介绍(重点是我的):
使用defineSecret()定义的Secret类型的参数表示具有存储在Cloud Secret Manager中的值的字符串参数。 不是检查本地 .env 文件并在文件丢失时写入新值,而是检查 Cloud Secret Manager 中是否存在机密参数,并在部署期间以交互方式提示输入新机密的值。
安全不是非黑即白的问题。 使用defineString 并不是本质上“不安全”。 只有您可以根据您自己对它使用的数据的处理来判断它的安全性。 如果您是唯一使用这些字符串及其存储位置的数据文件的人,那么您可能不会遇到任何问题。 如果您必须与其他人共享这些字符串和数据,那么您可能会遇到问题。 我们不知道您的情况如何。
您可能需要阅读Cloud Secret Manager,以更好地了解它要解决的安全问题,并自行决定是否使用它。