View a markdown version of this page

パッケージ URL とは何ですか? - Amazon Inspector

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

パッケージ URL とは何ですか?

パッケージ URL または PURL は、さまざまなパッケージ管理システムのソフトウェアパッケージ、コンポーネント、ライブラリを識別するために使用される標準化された形式です。この形式により、ソフトウェアプロジェクトの依存関係を追跡、分析、管理しやすくなり、特にソフトウェア部品表(SBOM)を生成する場合に役立ちます。

PURL 構造

PURL 構造は URL に似ており、複数のコンポーネントで構成されています。

  • pkg – リテラルプレフィックス

  • type – パッケージタイプ

  • namespace – グループ化

  • name – パッケージ名

  • version – パッケージバージョン

  • qualifiers – 追加のキーと値のペア

  • subpath – パッケージ内のファイルパス

PURL の例

次は、PURL の例です。

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

汎用 PURL

汎用 PURL は、npm、pypi、maven などの確立されたパッケージエコシステムに適合しないソフトウェアパッケージとコンポーネントを表すために使用されます。ソフトウェアコンポーネントを識別し、特定のパッケージ管理システムと一致しない可能性のあるメタデータをキャプチャします。汎用 PURL は、コンパイルされたバイナリから Apache や WordPress などのプラットフォームまで、さまざまなソフトウェアプロジェクトに有効です。コンパイルされたバイナリ、Web プラットフォーム、カスタムのソフトウェアディストリビューションなど、幅広いユースケースに適用できます。

主なユースケース

  • コンパイルされたバイナリをサポートし、 Go および Rust に有効です。

  • パッケージが従来のパッケージマネージャーに関連付けられていない可能性がある Apache や WordPressなどのウェブプラットフォームをサポートします。

  • 組織が、内部で開発されたソフトウェアや正式なパッケージがないシステムを参照できるようにすることで、カスタムのレガシーソフトウェアをサポートします。

形式の例

次は汎用 PURL 形式の例です。

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

汎用 PURL 形式のその他の例

次は、汎用 PURL 形式のその他の例です。

コンパイルされた Go バイナリ

以下は、 Go でコンパイルされた inspector-sbomgen binary を表しています。

pkg:generic/inspector-sbomgen?go_toolchain=1.22.5
コンパイルされた Rust バイナリ

以下は、 Rust でコンパイルされた myrustapp バイナリを表しています。

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