使用包含和排除模式优化存储库的安全性和性能

存储库是Artifactory的构建模块,有三种基本类型:局部存储库是您存储内部工件的地方;远程存储库代理远程资源和从它们下载的2022世界杯阿根廷预选赛赛程缓存工件(例如JCenter、Nuget库、其他Artifactory实例中的存储库和其他);而且虚拟存储库在一个URL下聚合本地和远程存储库。管理存储库的安全性以使其免受恶意工件的影响对任何企业都是必不可少的。您需要一种方法来控制下载到远程存储库的内容和上传到本地存储库的内容。您还需要确保对构件的访问是快速和有效的,这样您的开发和构建过程就不会因为等待构件的下载而停滞不前。”包括和排除模式是处理这些问题的好方法。

包含你想要的,排除你不想要的

包含和排除模式是使用通配符文本模式指定的,并且可以像这样松散地定义:如果工件的名称匹配任何包含模式,并且不匹配为该存储库指定的任何排除模式,Artifactory将只允许您将工件上传到存储库,或者从存储库下载工件。

管理安全性并使用排除模式提高性能

排除模式为组织提供了一种通过限制对某些外部资源的访问来管理安全风险的方法。2022世界杯阿根廷预选赛赛程让我们考虑一个例子。Acme Corp正在开发一个新产品,它的构建工件具有需要从各种来源解析的依赖关系,一些是内部的(例如,团队a构建团队B需要的工件),另一些是外部的(例如,需要从外部的公共存储库下载的开放源码库)。通常,Artifactory管理员将定义一个虚拟存储库,该存储库聚合了本地和远程存储库,通过该存储库,团队(及其构建脚本)将访问资源以解决依赖关系。2022世界杯阿根廷预选赛赛程现在考虑一个内部依赖项的名称拼写错误。Artifactory将首先通过本地存储库搜索工件,但是由于它的名称拼写错误,所以将找不到它。然后,如果没有限制,Artifactory将尝试从远程存储库解析工件;实际上,从所有远程存储库聚合的虚拟存储库。问题是这些工件请求被记录在远程资源上,暴露了查询的所有细节,这些细节可能包含敏感的业务信息。2022世界杯阿根廷预选赛赛程

排除模式可以防止这种潜在的安全漏洞。通过向远程存储库的排除模式添加一个公共前缀(例如“com.companyname”)(或者更好的是,向聚合所有远程存储库的虚拟存储库添加前缀),任何解析内部本地工件的请求都将被阻止,因此包含任何相关敏感信息的请求永远不会离开您的组织。一个额外的好处是,排除模式还通过阻止Artifactory在外部资源中搜索内部工件,从而提高了性能,从而避免了冗余网络。2022世界杯阿根廷预选赛赛程

您还可以使用排除模式来限制使用旧版本的依赖项。例如,如果您知道您需要的某个依赖项在3.0版本中有一个重要的bug修复,那么您可以将版本1和版本2添加到下载该依赖项的存储库的exclude模式中。一个排除模式可能看起来像这样:

* * /引用/ 1 * / * *,* * /引用/ 2 * / * *

使用包含模式避免混乱

包含模式通过确保只有特定类型的工件可以驻留在本地存储库中,帮助您避免混乱。例如,您可以将来自不同项目的工件清晰地分隔在它们自己的存储库中。通过定义一个包含模式,例如

* * / org/mycompany/myproject/ * *

您可以确保只有来自“myproject”的工件可以上传并存储在那里。

无论你是在一家小型初创企业还是一家大型企业,安全总是一个需要关注的问题。包含和排除模式提供了一种向操作添加安全层的简单方法,同时通过减少冗余网络来提高性能。通过为Artifactory中的所有存储库定制包含和排除模式,您可以获得对如何将二进制文件上传到存储库以及如何从外部资源下载二进制文件的细粒度控制。2022世界杯阿根廷预选赛赛程