2

在 Subversion 中是否有基于路径的访问控制的替代方法?

我正在处理一个包含受ITAR约束的文件的存储库。几个团队将有权访问存储库,但其中一些团队甚至不允许查看ITAR 敏感数据,因此我们在这里讨论的是读取访问权限,而不仅仅是提交访问权限。

现在我有几个选择来处理这个问题。

第一个是简单地列出所有具有访问限制的文件。这样做的问题是我们需要知道文件名将是什么,然后才能将其添加到 auth 文件中。因此,开发人员创建了一个 ITAR 敏感文件,将完整路径通过电子邮件发送给 svn 管理员,然后管理员将其添加到 auth 文件中。只有这样,开发人员才能真正添加​​和提交文件。

另一种解决方案是在顶层有两个目录,比如generalmil,具有相同的子目录。这样,所有敏感文件都会进入mil,所有其他文件都会进入general. 这给了我一个简短而甜蜜的身份验证文件,但缺点是如果一个文件变得对 ITAR 敏感,它需要从一棵树移动到另一棵树。我们可以使用它,但它不是最佳的。

我想要是基于属性的访问控制。如果我们可以只添加一个属性,比如militar:reason到一个文件并基于它来限制访问,那将是理想的。开发人员可以在第一次提交之前添加属性,或者当文件变得敏感时。但是,除非我错过了它,否则这是不可能的。

那么有没有人看到这个问题的任何其他解决方案?

4

2 回答 2

3

我不确定即使是属性也会起作用,因为它们是版本化的。因此,如果您添加一个文件并忘记立即设置属性,聪明的用户可以检索该文件的早期版本。您必须愿意从转储文件中清除有问题的数据,这当然需要一些停机时间。

无论如何,如果有人犯了错误并将文件放在错误的位置、错误的存储库或具有错误的属性,那么几乎任何解决方案都会遇到这个问题。如果您知道 ITAR 文件的某些属性,那么您可以编写一个挂钩来防止它们被放入存储库的错误部分。然后,您可以查看基于“已知敏感”路径甚至单独的存储库和外部的解决方案。

否则,您可以考虑在 Apache 前面放置一个代理,该代理知道所有敏感文件,无论它们何时被指定为敏感文件,并将它们从流量中清除给未经授权的用户。这是一个棘手的问题。

于 2013-11-04T02:54:51.397 回答
1

Subversion 中基于路径的访问控制的替代方案

我不知道仅基于文件属性的读取访问限制。

不利的一面是,如果文件变得对 ITAR 敏感,则需要将其从一棵树移动到另一棵树。

这是无法避免的,或者在没有“竞争条件”的情况下轻松自动化:您可以在该文件上设置一个属性,并让一个 cron 作业将通常找到的任何文件移动到 mil,但这意味着在该 cron 作业运行之前,任何人都可以访问mil 可以查看该文件。

两个顶级文件夹(类似于分支)之间的按需移动更好。
您可以通过以下方式自动化该移动最接近的方式:

  • 在文件上设置属性
  • 有一个svn post-revprop钩子正在运行,它会检测到那个特殊的属性并为你做动作。
于 2013-11-01T08:47:38.767 回答