【发布时间】:2021-12-28 15:55:57
【问题描述】:
我正在开发的产品需要为不同的客户部署单独的应用实例。 我必须处理一些包含秘密令牌的 YAML 配置文件,每个客户端都有一个单独的 YAML 文件,其中包含自己的秘密。目前这些文件只存在于我的计算机上,当我手动部署时,我可以访问这些文件。
我们想为我们的部署引入 CI 管道。问题是我检查的所有提供程序都只支持键值对作为机密,因此将整个文件内容复制为像CLIENT_NAME_SECRET=<yaml file contents> 这样的机密是不方便的。像这样,我总是必须在我的编辑器中复制秘密编辑并重新上传到 CI。我的另一个想法是我将它们存储在一个私有 git 存储库中,并且只有 SSH 访问是可能的,所以只有 CI 和开发人员可以访问这些文件。这样存放安全吗?
为 CI 管道存储多个客户端机密的最佳做法是什么,您有什么建议?
【问题讨论】:
-
您还可以签入加密文件并将用于解密的密钥保存为 CI 变量。这样,您只需在管道运行期间解密它们。只是要小心使用良好的加密。
标签: gitlab continuous-integration token gitlab-ci credentials