Vad*_*est 7 security google-cloud-source-repos google-cloud-functions
我使用 Google Source Repository 来存储我的 Google Cloud Functions。(基本上由 Google 托管的 Git 存储库)
我的一个函数需要访问一个私有的 Google Sheet 文件,因此我创建了一个服务帐户。(权限太多,因为很难理解我们应该赋予服务帐户哪些确切的权限,而且以后也很难更新,但我离题了)
现在,出于显而易见的原因,显然不建议将服务帐户 JSON 文件存储在 git 存储库本身中。这是它的样子(从值中剥离)
{
"type": "service_account",
"project_id": "",
"private_key_id": "",
"private_key": "",
"client_email": "",
"client_id": "",
"auth_uri": "",
"token_uri": "",
"auth_provider_x509_cert_url": "",
"client_x509_cert_url": ""
}
Run Code Online (Sandbox Code Playgroud)
我一直在寻找环境变量来配置函数或类似的东西,但没有找到任何东西。跟踪密钥(因此可能会在多个存储库中复制该文件)听起来确实不是一个好主意。但我还没有找到任何“正确”的方法来做到这一点。由于 Google Functions 的工作方式,除了 env 变量之外,我想不出其他任何东西。
您可以上传服务帐户文件以及您的函数,并在代码中使用它。它将在那里保持安全。大多数开发人员将使用 .gitignore 或等效机制来防止该文件被添加到源代码管理中。有一个从Firebase 示例加载服务帐户凭据的示例。(如果您不使用 Firebase SDK,则必须注意将函数定义转换为云样式。
您也可以使用环境变量,但在引用和转义值时必须特别小心,以确保它们正确到达您的函数。虽然有点麻烦,但是可行。
我在使用服务帐户使用云功能时的解决方案是:
从 Cloud Storage 获取服务帐号凭据 json 文件,并使用具有加密/解密权限的 Cloud KMS 服务帐号对其进行解密。
在运行时解析服务帐户凭据 json 文件并获取private_key,client_email和projectId.
将这三个秘密变量传递给客户端库
我们将配置变量存储为云函数的环境变量,它们是纯文本的,但没关系。因为它们不是秘密的东西。
我们不能存储诸如纯文本之类的秘密内容,例如云函数环境变量。
| 归档时间: |
|
| 查看次数: |
7682 次 |
| 最近记录: |