0

我想从源代码控制仓库在谷歌云计算引擎微实例上部署节点应用程序。

作为此部署的一部分,我想使用 KMS 来存储数据库凭据,而不是将它们放在我的源代码控制中。要从 KMS 获取凭据,我首先需要使用 GCLOUD 在实例上进行身份验证。

将 GCloud CLI 作为启动脚本的一部分安装并让默认服务帐户处理身份验证是否安全?然后使用它来提取解密的详细信息并将它们保存到文件中?

文档演练开发示例,但我还没有找到任何关于这应该如何在生产中工作的信息,特别是因为我显然也不想将 GCloud 凭据存储在源代码控制中。

4

1 回答 1

1

是的,这正是我们的建议:使用默认服务帐户向 KMS 进行身份验证并解密其中包含凭据的文件。您可以将生成的数据存储在一个文件中,但我通常要么将其直接通过管道传输到需要它的服务,要么将其放入 tmpfs 中,因此它只存储在 RAM 中。

您可以将加密的凭据文件检入源存储库,将其存储在 Google Cloud Storage 或其他位置。(您使用其他帐户(例如您的个人帐户或其他服务帐户)创建加密文件,该帐户对 KMS 密钥具有打包但不解包访问权限,以加密凭据文件。)

如果您使用此方法,您将拥有清晰的控制线:

  • 您的管理用户身份验证限制了将代码作为受信任的服务帐户运行的能力。
  • 只有该服务帐户可以解密凭据。
  • 无需在任何地方以明文形式存储秘密

感谢您使用 Google Cloud KMS!

于 2017-12-12T14:53:51.237 回答