什么是包裹 URL? - Amazon Inspector
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

什么是包裹 URL?

软件@@ 包 URL 或 PURL 是一种标准化格式,用于识别不同软件包管理系统中的软件包、组件和库。该格式使跟踪、分析和管理软件项目中的依赖关系变得更加容易,尤其是在生成软件物料清单 (SBOMs) 时。

PURL 结构

PURL 结构类似于 URL,由多个组件组成:

  • pkg— 字面前缀

  • type— 包裹类型

  • namespace— 分组

  • name— 软件包名称

  • version— 软件包版本

  • qualifiers— 额外的键值对

  • subpath— 包中的文件路径

示例 PURL

以下是 PURL 的外观示例。

pkg:<type>/<namespace>/<name>@<version>?<qualifiers>#<subpath>

通用的 PURL

通用 PURL 用于表示不适合已建立的软件包生态系统的软件包和组件,例如npmpypi、或maven。它可以识别软件组件并捕获可能与特定软件包管理系统不一致的元数据。通用 PURL 可用于各种软件项目,从已编译的二进制文件到平台,例如Apache和。WordPress它允许将其应用于各种用例,包括编译后的二进制文件、Web 平台和自定义软件发行版。

关键用例

  • 支持编译后的二进制文件,对和很有用 Go Rust

  • 支持 Web 平台,例如Apache和WordPress,其中软件包可能与传统的包管理器无关。

  • 允许组织参考内部开发的软件或缺少正式软件包的系统,从而支持定制的传统软件。

格式示例

以下是通用 PURL 格式的示例。

pkg:generic/<namespace>/<name>@<version>?<qualifiers>

通用 PURL 格式的其他示例

以下是通用 PURL 格式的其他示例。

编译后的Go二进

以下是用 a inspector-sbomgen binary 编译的Go。

pkg:generic/inspector-sbomgen?go_toolchain=1.22.5
编译后的Rust二进

以下是用编译的myrustapp二进制文件Rust。

pkg:generic/myrustapp?rust_toolchain=1.71.0
Apache 项目

以下是指Apache命名空间下的 http 项目。

pkg:generic/apache/httpd@1.0.0
WordPress 软件

以下是指核心WordPress软件。

pkg:generic/wordpress/core/wordpress@6.0.0
WordPress主题

以下是指自定义WordPress主题。

pkg:generic/wordpress/theme/mytheme@1.0.0
WordPress 插件

以下是指自定义WordPress插件。

pkg:generic/wordpress/plugin/myplugin@1.0.0