2.2. SBOM をダウンロードまたは表示するための OpenShift Pipeline の設定
PipelineRun
の詳細ページには、ソフトウェア部品表 (SBOM) をダウンロードまたは表示するオプションが用意されており、サプライチェーン内の透明性と制御が強化されます。SBOM には、コンポーネントが使用するすべてのソフトウェアライブラリーがリストされます。これらのライブラリーは、特定の機能を有効にしたり、開発を容易にしたりすることができます。
SBOM を使用すると、ソフトウェアの構成をより深く理解し、脆弱性を特定し、発生する可能性のあるセキュリティー問題の影響を評価できます。
図2.4 SBOM をダウンロードまたは表示するオプション
前提条件
- Web コンソールにログイン している。
- OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するための適切なプロジェクト内の ロールおよび権限 がある。
手順
- 開発者 または 管理者 のパースペクティブで、SBOM を視覚的に表現する関連プロジェクトに切り替えます。
SBOM 情報を表示またはダウンロードするには、次の形式でタスクを追加します。
SBOM タスクの例
apiVersion: tekton.dev/v1 kind: Task metadata: name: sbom-task 1 annotations: task.output.location: results 2 task.results.format: application/text task.results.key: LINK_TO_SBOM 3 task.results.type: external-link 4 spec: results: - description: Contains the SBOM link 5 name: LINK_TO_SBOM steps: - name: print-sbom-results image: quay.io/image 6 script: | 7 #!/bin/sh syft version syft quay.io/<username>/quarkus-demo:v2 --output cyclonedx-json=sbom-image.json echo 'BEGIN SBOM' cat sbom-image.json echo 'END SBOM' echo 'quay.io/user/workloads/<namespace>/node-express/node-express:build-8e536-1692702836' | tee $(results.LINK_TO_SBOM.path) 8
新しく作成された SBOM タスクを参照するようにパイプラインを更新します。
... spec: tasks: - name: sbom-task taskRef: name: sbom-task 1 results: - name: IMAGE_URL 2 description: url value: <oci_image_registry_url> 3
- 影響を受ける OpenShift Pipeline を再実行します。
2.2.1. Web UI での SBOM の表示
前提条件
- SBOM をダウンロードまたは表示するために OpenShift Pipeline を設定している。
手順
- アクティビティー→PipelineRuns タブに移動します。
- SBOM を表示するプロジェクトには、最新のパイプライン実行を選択します。
PipelineRun
の詳細ページで、SBOM の表示 を選択します。-
Web ブラウザーを使用すると、ソフトウェアサプライチェーンの脆弱性を示す用語を SBOM ですぐに検索できます。たとえば、
log4j
を検索してみてください。 - SBOM をダウンロードするには Download を選択し、全画面で表示するには Expand を選択できます。
-
Web ブラウザーを使用すると、ソフトウェアサプライチェーンの脆弱性を示す用語を SBOM ですぐに検索できます。たとえば、
2.2.2. CLI での SBOM のダウンロード
前提条件
- Cosign CLI ツールがインストールされている。
- SBOM をダウンロードまたは表示するために OpenShift Pipeline を設定している。
手順
- ターミナルを開き、開発者 または 管理者 のパースペクティブにログインして、関連するプロジェクトに切り替えます。
OpenShift Web コンソールから、
download sbom
コマンドをコピーし、ターミナルで実行します。cosign コマンドの例
$ cosign download sbom quay.io/<workspace>/user-workload@sha256
(オプション) 完全な SBOM を検索可能な形式で表示するには、次のコマンドを実行して出力をリダイレクトします。
cosign コマンドの例
$ cosign download sbom quay.io/<workspace>/user-workload@sha256 > sbom.txt
2.2.3. SBOM の確認
SBOM では、次の抜粋例に示すように、プロジェクトが使用する各ライブラリーの 4 つの特性を確認できます。
- 作成者または公開者
- 名前
- バージョン
- ライセンス
この情報は、個々のライブラリーが安全なソースからのものであり、更新済みで、コンプライアンスに準拠したものであることを確認するのに役立ちます。
SBOM の例
{ "bomFormat": "CycloneDX", "specVersion": "1.4", "serialNumber": "urn:uuid:89146fc4-342f-496b-9cc9-07a6a1554220", "version": 1, "metadata": { ... }, "components": [ { "bom-ref": "pkg:pypi/flask@2.1.0?package-id=d6ad7ed5aac04a8", "type": "library", "author": "Armin Ronacher <armin.ronacher@active-4.com>", "name": "Flask", "version": "2.1.0", "licenses": [ { "license": { "id": "BSD-3-Clause" } } ], "cpe": "cpe:2.3:a:armin-ronacher:python-Flask:2.1.0:*:*:*:*:*:*:*", "purl": "pkg:pypi/Flask@2.1.0", "properties": [ { "name": "syft:package:foundBy", "value": "python-package-cataloger" ...