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

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

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

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

使用排除模式管理安全性并获得性能提升

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

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

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

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

使用include模式避免混乱

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

* * / org/mycompany/myproject/ * *

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

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