1

我有几个云函数(在 Python 中)需要一个模块化包auth,其中有一个子文件夹credentials(主要包含 Google 服务帐户文件或 Firebase 配置的 json 文件)。

从安全的角度来看,我显然没有.git通过在文件中添加文件夹来包含这些.gitignore文件(auth/credentials)。

但是,我现在在部署 Google Cloud Function ( .gcloudignore) 时遇到了问题。如果我使用凭据部署它,那么我想这些密钥会暴露在服务器上吗?我怎么能克服这个?

我听说过一些关于环境变量的说法,但我不确定这是否比仅仅部署它更安全?

谷歌的做法是什么?

4

1 回答 1

1

您有两种主要的解决方案可供您使用。首先是 Cloud Function 可以使用自定义服务帐户的身份运行。然后,此服务帐户可以与您的逻辑完成其任务所需的所有角色相关联。这样做的价值在于您的逻辑不需要明确知道凭据。“隐式”拨打电话的环境拥有它所需要的一切。

请参阅:按功能标识

第二种更符合您当前所做的机制使用Compute Metadata Server的概念。此元数据可以使用进行病房呼叫所需的令牌进行配置。元数据与您的 Cloud Function 逻辑分开配置,后者仅根据需要检索数据。

请参阅:获取身份和访问令牌

于 2019-10-28T16:12:07.630 回答