我应该将沙箱凭据提交给私人仓库吗?

Should I commit sandbox credentials to a private repo?

试图在这里获得一些见解。我应该为测试环境提交凭据吗?像第三方 API 沙箱环境的 API 令牌,甚至可能是测试数据库密码(假设它是某种外部数据库)?

我的安全偏执狂建议我永远不要提交任何类型的凭据。如果它是一个开源项目,我肯定会那样做。但是一个具有受控访问权限的私人回购协议...只需提交测试凭据并让有权访问回购协议的人使用它,进行本地测试和类似的事情会容易得多。

这样做通常不是一个好主意,即使对于私人回购也是如此。您的存储库的某些部分可能会通过多种方式泄漏(例如,笔记本电脑被盗),虽然这很不幸,但并不像您有泄漏并且 攻击者有凭据那么糟糕到您的测试环境。然后他们可能会在您的网络或服务中站稳脚跟,利用它来提取更多信息,或者导致您的公司过度使用或成本。将攻击者在遭到破坏时可能造成的损害降至最低是谨慎的做法,也是一项良好的安全策略。

一些公司选择做的是拥有一个供员工使用的通用 shell 服务器和一种访问访问服务所需的凭据(例如,从 Vault 实例中获取它们)的方法,这有助于缩小凭证使用范围。我不能说这种特定方法是否适合您的网络,但类似的方法可能会满足您的需求。