问题描述
想要了解如何安全地保存Google Cloud服务帐号密钥。具体场景如下:
– 用户的产品连接到BigQuery。
– 用户有一个只供开发人员使用的项目作为沙盒环境。
– 用户需要在流水线中运行集成测试,并且这些测试需要使用服务帐号才能正确运行。
– 开发人员也应该能够在本地运行集成测试。
用户想知道应该将服务帐号密钥放在哪里?他考虑将其添加到代码仓库中,但不确定这种解决方案是否可行(即使它只是具有对开发人员版本的BigQuery的只读权限的密钥)。
用户还考虑了第二种解决方案,即创建多个密钥,每个开发人员都有自己的密钥。然后每个开发人员都需要自己管理密钥(当开发人员离职时,我们可以轻松删除密钥)。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
我建议您使用Google Cloud Secrets Engine。您可以在这里找到文档:https://www.vaultproject.io/docs/secrets/gcp/index.html。
使用Vault服务以外的任何方式管理如此敏感的密钥都是危险的。
方案2
将服务帐号密钥添加到代码仓库不是一个好的做法,考虑到安全性。
第二种解决方案可能会发生,并且应该是一个好的做法实施一些密钥轮换过程,以避免某些开发人员使用被入侵的密钥。尽管如此,有一些指导建议避免使用多个密钥(此外,我想平台对于服务帐号密钥的创建可能有限制)。
可以参考Cloud KMS,它可能对您如何管理密钥有一些建议:https://cloud.google.com/kms/docs/iam。
正文完