使用包含和排除模式优化存储库安全性和性能
存储库是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 * / * *
使用包含模式避免混乱
包含模式通过确保只有特定类型的工件可以驻留在本地存储库中,帮助您避免在本地存储库中出现混乱。例如,您可以将来自不同项目的工件清晰地分离在它们自己的存储库中。通过定义包含模式,例如
* * / org/mycompany/myproject/ * *
您可以确保只有来自“myproject”的工件可以上传并存储在那里。
无论您是在小型初创企业还是大型企业,安全始终是一个问题。包含和排除模式提供了一种简单的方法,可以为操作添加一层安全性,同时通过减少冗余的网络来提高性能。通过在Artifactory中为所有存储库裁剪包含和排除模式,您可以对如何将二进制文件上传到存储库以及如何从外部资源下载二进制文件进行细粒度控制。2022世界杯阿根廷预选赛赛程