在 GitLab 中安全地存储秘密和凭据
Posted
技术标签:
【中文标题】在 GitLab 中安全地存储秘密和凭据【英文标题】:Storing secrets and credentials securely in GitLab 【发布时间】:2020-04-06 19:10:33 【问题描述】:我想知道是否可以在我的 GitLab 项目中安全地存储密码、令牌和密钥等凭据。
目前有一堆 Java 文件,其中存储了一些密码用于测试目的。但是,出于安全原因,我不想在我的仓库中推送这些信息。我尝试在项目中使用环境变量,但它们似乎只适用于 .gitlab-ci.yml 文件。
我的问题是,是否有人使用 Hashicorps 或 Blackbox 之类的保险库来加密敏感信息?
谢谢
【问题讨论】:
【参考方案1】:您可以查看 GitLab 12.9(2020 年 3 月),它附带:
HashiCorp Vault GitLab CI/CD Managed Application
GitLab 希望让用户能够轻松地进行现代机密管理。作为 GitLab CI 托管应用程序流程的一部分,我们现在为用户提供在 Kubernetes 集群中安装 Vault 的能力。
这将支持在 Helm 图表安装中的项目级别安全管理密钥、令牌和其他机密。
请参阅 documentation 和 issue。
另请参阅GitLab 13.4(2020 年 9 月)
仅适用于高级/白银:
在 CI 作业中使用 HashiCorp Vault 机密
在 GitLab 12.10 中,GitLab 为 GitLab Runner 引入了获取机密并将其注入 CI 作业的功能。 GitLab 现在通过在
.gitlab-ci.yml
文件中构建新的secrets
语法来扩展 JWT Vault Authentication method。这使您可以更轻松地通过 GitLab 配置和使用 HashiCorp Vault。https://about.gitlab.com/images/13_4/vault_ci.png -- 在 CI 作业中使用 HashiCorp Vault 机密
参见Documentation 和Issue。
【讨论】:
【参考方案2】:如果您没有在 GitLab 中使用环境变量,那么您是在询问是否可以在 GitLab 中存储机密。我自己没有这样做,但我发现了这篇关于它的帖子:
https://embeddedartistry.com/blog/2018/03/15/safely-storing-secrets-in-git/
作者提出了三种在 git 中存储秘密的方法:
Blackbox git-secret git-crypt作者使用的是 BlackBox,但打算迁移到 git-crypt。快速浏览一下,git-crypt 看起来像是我可以自己使用的东西。
【讨论】:
以上是关于在 GitLab 中安全地存储秘密和凭据的主要内容,如果未能解决你的问题,请参考以下文章
GitHub的秘密扫描功能可能暴露PyPI和RubyGems的密码