这里的常见做法是什么?似乎没有gcloud
提供的工具。我现在正在从本地机器部署功能,所以我可以对机密进行硬编码,但这似乎不合适。那么,CI / CD怎么样?在这种情况下,我需要将秘密作为环境变量传递。这甚至可能是atm吗?
答案 0 :(得分:5)
自发表评论以来,我发现了一种相对简单的方法 - 提供一个config .json
文件。这是我根据他们的Slack函数示例一起攻击的一个例子:
config.json 文件:
{
"foo": "bar"
}
<强> index.js 强>
const config = require('./config.json');
exports.envTest = (req, res) => {
res.status(200).send(config.foo);
};
部署该功能并转到该网址时,您应该收到回复bar
。
利弊:
优点:
.gitignore
以确保您的秘密不会结束回购缺点:
总的来说,它与真正的机密管理系统相去甚远,但它足以阻止我,直到这个功能最终进入云功能核心。
答案 1 :(得分:5)
答案 2 :(得分:3)
您应该使用Cloud Key Management Service(KMS)。
请勿通过文件或环境变量将纯粹的机密推送到Cloud Functions。
以下是一种解决方案: