将部署(只读)github 密钥存储在私有仓库中是否安全

mva*_*mva 2 git security deployment github private-key

我已将部署(只读)私钥存储在 Github 私有存储库中,该密钥可用于仅克隆此存储库本身。

几乎每次在 git 中存储私钥都是一种不好的做法,并且实际的密钥材料可以移动到环境变量中,以便在部署/更新期间呈现给 AWS 用户数据等。

我的问题是 - 如果密钥仅限于特定存储库本身的只读权限,这是否可以被视为安全问题?如果您克隆了存储库,则您已经拥有访问权限,并且使用此部署密钥无法获得任何额外的东西。

bk2*_*204 5

一般来说,将凭证存储在存储库中并不安全。如果有人掌握了您的存储库的快照(例如,您留下了可.git通过 HTTP 访问的网站的目录,或者某人掌握了 tarball),那么攻击者就可以恢复密钥。现在,攻击者不仅可以获取存储库的历史版本,还可以在无限期的未来获取任何较新的版本。

我强烈建议您不要这样做,因为这几乎总是一个坏主意。如果您对此项目有任何类型的安全或合规性要求,则在存储库中存储凭据可能会违反这些要求。

此外,GitHub 还具有凭证扫描功能。我不知道它是否从私钥计算 SSH 公钥,但您可能会发现,一旦您将部署密钥推入存储库,您的部署密钥就会被自动撤销并列入黑名单。即使现在没有发生这种情况,GitHub 也可能会在以后添加对此的支持,并且未来的推送可能会撤销该密钥。

如果您确实需要将这些凭据存储在存储库中,正确的方法是以某种加密形式存储它们。您可以使用gpg密码对它们进行加密,还有一些特定于项目的秘密存储技术,例如使用 Chef 的存储库。如果 Vault 等解决方案能更好地满足您的需求,您也可以使用它。