是否有任何带有IP ACL的Git主机/服务器



大多数git托管服务和服务器都提供基于ssh密钥的acl。我想知道是否有提供每个用户ip访问限制的。

用例:我有一个构建/测试机器人,我想授予它对我正在测试的存储库的只读访问权限。作为构建过程的一部分,该服务器可能需要访问其他存储库(例如子模块),这意味着我们需要为其提供一个访问所有存储库的全局密钥。

在我看来,访问小型/不太重要的存储库的开发人员可能会提交代码,从构建服务器中揭示ssh密钥,然后使用它来访问所有存储库,这是一个巨大的安全风险。尽管如此,ip限制也将作为第二因素身份验证来增强普通用户的安全性。

您提出的安全模型的一个问题是,构建脚本通常能够执行任意代码;正如您所指出的,可以利用它来提取读取所有存储库的密钥。

但是,如果是这种情况,那么基于IP的访问限制对您没有帮助。

一个更好的模型是将签出代码和构建代码分开。在一个主机上签出代码,然后在另一个只能访问签出代码的沙盒主机上构建代码。

有很多方法可以构建它,所以我在这里不一一介绍,但有一个例子是,可以访问Git存储库的主机,然后scp是实际构建机器的代码。防火墙阻止来自构建机器的任何传出连接;只允许从master进行ssh访问,后者将文件复制到适当位置并启动构建过程。

你还可以做很多其他的变化,包括虚拟机、沙盒容器等。但基本的想法是,如果对Git存储库的访问被认为是特权的,而构建过程是不可信的,你永远不会允许构建过程在任何可以访问Git存储库的环境中运行,或者他们不应该访问的任何其他内容。

最新更新