git - git中秘密环境变量的最佳实践
问题描述
将秘密环境变量(例如:数据库密码)放在 git 中是否安全?如果没有,最好的做法是什么?
解决方案
如果您使用 git-secrets 或 TravisCI 的加密机密等自定义解决方案,则可以将机密放入您的存储库中,但通常您不想这样做,因为任何拥有您的存储库副本的人都可以访问它们。源代码泄漏的频率比您想象的要多,即使没有,普通开发人员也不应该在无需访问生产凭证的情况下访问它们。
您通常想要做的是通过环境将您的秘密传递到您的代码中。对于 CI,大多数 CI 系统都有一个加密的、访问受限的工具,它只能通过环境共享机密,而对于部署,许多人使用类似的工具,例如 Vault。这些系统中的大多数仅以加密状态存储凭据并使用秘密共享,因此很难在未经授权的情况下从中获取凭据,并确保仅在适当的环境中才能访问凭据:开发人员不可能只需拥有 repo 即可访问这些凭据。
为了避免任何疑问,这不是关于信任或不信任人,而是关于确保人们不会意外泄露信息或使用信息做错事(例如在删除数据库时使用生产凭据)。
推荐阅读
- php - 为我的 laravel 项目创建 git 存储库后未跟踪文件
- typescript - 打字稿:如何使用具有结构而不是判别属性的可区分联合?
- python - Python比较两个列表并将值添加到第三个列表
- python - 使用 numpy 和 Scipy 计算三重积分的 Python 程序?
- java - Java sun.net.HttpServer 写入 OutputStream 抛出 IOException “已建立的连接被主机中的软件中止”
- javascript - 在 Laravel API 中获取 HTTP Post Vue 数据
- go - bufio.NewScanner.Scan 挂起程序
- docker - Flask 应用程序 Docker ngnix
- r - 如何使用 markdown 和 html 输出将图放在彼此下方并并排?
- c++ - 单元测试:你应该覆盖多少(当白盒测试时)?