【发布时间】:2019-10-28 16:03:23
【问题描述】:
我有几个云函数(在 Python 中)需要一个模块化包 auth,其中有一个带有 credentials 的子文件夹(主要包含 Google 服务帐户文件或 Firebase 配置的 json 文件)。
从安全角度来看,我显然没有通过将文件夹添加到 .gitignore 文件 (auth/credentials) 中来将这些文件包含在 .git 中。
但是,我现在在部署 Google Cloud Function (.gcloudignore) 时遇到了问题。如果我使用凭据部署它,那么我想这些密钥会暴露在服务器上吗?我该如何克服呢?
我听说过一些关于环境变量的说法,但我不确定这是否比仅仅部署它更安全?
Google 的做法是什么?
【问题讨论】:
-
将您的秘密存储在另一个服务上,并使用 Kolban 对 Per-function Identity 的回答来控制对另一个服务的访问。这消除了代码中对凭据的要求。如果您只需要服务帐户凭据而不需要其他机密,并且您使用的是 Google 客户端库,那么您不需要任何其他凭据即可访问 Google 服务。对于其他类型的机密,将它们存储在 Cloud Storage 上,可选择通过 KMS 加密并使用服务帐户身份进行访问控制。
-
我为 Cloud Run 写了一篇关于这些技术的文章。完全相同的原则适用:jhanley.com/google-cloud-run-identity
-
您有 JSON 密钥文件的秘密差异吗?
-
没有其他与 JSON 密钥文件不同的秘密。我想做最少的工作,但仍然做一些安全的事情。
标签: python security google-cloud-platform google-cloud-functions cloud-security