屬性證明資訊清單附加到根映像檔索引物件,位於個別的 OCI 映像檔資訊清單,資訊清單中的所有證明都適用於單一平台資訊清單。標準 OCI 和 Docker 資訊清單的所有屬性仍然適用。
映像檔 config
描述器將指向有效的 映像檔設定 的描述器。每個層的 mediaType
將根據其內容進行設定,其中之一為
任何未知的 mediaType
都應予以忽略。
為了協助證明遍歷,可以在每個層描述器上設定以下註釋
in-toto.io/predicate-type
如果封閉的證明是 in-toto 證明(目前唯一支援的選項),則將設定此註釋。該註釋將被設定為包含與證明內 predicateType
屬性相同的值。
存在時,可以使用此註釋來查找他們正在尋找的特定證明,以避免提取其他證明的內容。
每個層的內容將是一個取決於其 mediaType
的 Blob。
證明資訊清單會附加到根映像檔索引 中的 `manifests` 鍵值,位於所有原始可執行資訊清單之後。標準 OCI 和 Docker 資訊清單描述器的所有屬性仍然適用。
為了防止容器執行階段意外提取或執行資訊清單中描述的映像檔,證明資訊清單的 `platform` 屬性將設定為 `unknown/unknown`,如下所示:
為了協助索引遍歷,資訊清單描述器上將設定以下註釋:
vnd.docker.reference.type
此註釋描述了構件的類型,並將設定為 `attestation-manifest`。如果指定了任何其他值,則應忽略整個資訊清單。
vnd.docker.reference.digest
此註釋將包含映像檔索引中證明資訊清單所參考物件的摘要。
存在時,此註釋可用於查找所選映像檔資訊清單的相符證明資訊清單。
範例顯示附加到 `linux/amd64` 映像檔的 SBOM 證明:
此映像檔索引定義了兩個描述器:一個 AMD64 映像檔 sha256:23678f31..
和該映像檔的證明資訊清單 sha256:02cb9aa7..
。
此證明資訊清單包含一個證明,該證明是一個 in-toto 證明,其中包含一個「https://spdx.dev/Document」謂詞,表示它正在為映像檔定義 SBOM。
證明主體,其中包含以 SPDX 格式列出建置期間使用的套件的 SBOM 資料。