首页 > 解决方案 > git中秘密环境变量的最佳实践

问题描述

将秘密环境变量(例如:数据库密码)放在 git 中是否安全?如果没有,最好的做法是什么?

标签: gitsecurityenvironment-variables

解决方案


如果您使用 git-secrets 或 TravisCI 的加密机密等自定义解决方案,则可以将机密放入您的存储库中,但通常您不想这样做,因为任何拥有您的存储库副本的人都可以访问它们。源代码泄漏的频率比您想象的要多,即使没有,普通开发人员也不应该在无需访问生产凭证的情况下访问它们。

您通常想要的是通过环境将您的秘密传递到您的代码中。对于 CI,大多数 CI 系统都有一个加密的、访问受限的工具,它只能通过环境共享机密,而对于部署,许多人使用类似的工具,例如 Vault。这些系统中的大多数仅以加密状态存储凭据并使用秘密共享,因此很难在未经授权的情况下从中获取凭据,并确保仅在适当的环境中才能访问凭据:开发人员不可能只需拥有 repo 即可访问这些凭据。

为了避免任何疑问,这不是关于信任或不信任人,而是关于确保人们不会意外泄露信息或使用信息做错事(例如在删除数据库时使用生产凭据)。


推荐阅读