将敏感信息传递给云功能

时间:2017-03-22 17:54:59

标签: google-cloud-functions

是否有#34;官员"将敏感信息(如API密钥)传递给Google Cloud Functions的解决方案?特别是避免将此信息作为参数传递给函数会很好,因为它对于每次调用都是相同的。 AWS Lambda使用加密环境变量built-in solution。谷歌云功能是否有类似的方法?

我可以想象使用云存储桶或云数据存储,但这感觉非常手动。

5 个答案:

答案 0 :(得分:7)

如果您在Firebase中使用Cloud Functions,则需要查找environment configuration

使用它,您可以从Firebase CLI部署配置数据:

firebase functions:config:set someservice.key="THE API KEY" someservice.id="THE CLIENT ID"

然后在您的函数中阅读:

functions.config().someservice.id

答案 1 :(得分:3)

您可以使用Google Secret Manager。 https://cloud.google.com/secret-manager/docs

有关示例,请参见本文: https://dev.to/googlecloud/using-secrets-in-google-cloud-functions-5aem

答案 2 :(得分:1)

至于现在,没有办法做到这一点。

答案 3 :(得分:1)

您可以选择以下几个选项:

  1. GCP运行时配置。设置一个只能由您的服务帐户访问的模式,并将您的秘密存放在那里。您可以在部署之前执行此操作。您的应用应该能够使用运行时配置API来访问这些。您可以使用这个漂亮的库:https://www.npmjs.com/package/@google-cloud/rcloadenv
  2. 动态生成JS,包括作为云功能构建/部署的一部分的信息,并将该文件作为云功能的一部分包含在内。
  3. 使用Google KMS存储密钥并使用KMS的API
  4. 进行访问

答案 4 :(得分:1)

环境变量现已成为Cloud Functions的一部分:

https://cloud.google.com/functions/docs/env-var