JSON 形式で基本的な SBOM を生成して表示する
このステップでは、Docker イメージの基本的なソフトウェアビルオブマテリアル(SBOM: Software Bill of Materials)を生成し、JSON 形式で表示する方法を学びます。SBOM は、ソフトウェアコンポーネントを構成する要素の正式なリストです。ソフトウェアの荷積書のようなもので、使用されているすべてのサードパーティコンポーネント、ライブラリ、依存関係を詳細に記載しています。SBOM を生成することは、ソフトウェアのセキュリティ状態とライセンス遵守を理解するために重要です。
SBOM の生成には syft
ツールを使用します。syft
は、コンテナイメージやファイルシステムから SBOM を生成するためのコマンドラインツール兼ライブラリです。
まず、このデモンストレーションに使用するシンプルな Docker イメージを取得しましょう。軽量な Linux ディストリビューションである alpine:latest
イメージを使用します。
docker pull alpine:latest
イメージが取得され、ダウンロードされていることを示す出力が表示されるはずです。
Using default tag: latest
latest: Pulling from library/alpine
...
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
イメージが用意できたので、SBOM を生成することができます。syft
コマンドをイメージ名とともに使用し、出力形式を JSON と指定します。
syft alpine:latest -o json
このコマンドは、alpine:latest
イメージを分析し、SBOM を JSON 形式で直接ターミナルに出力します。出力は、イメージ内で見つかったパッケージに関する情報(名前、バージョン、ライセンス、タイプなど)を含む大きな JSON オブジェクトになります。
出力をスクロールして、SBOM にリストされているさまざまなコンポーネントを確認することができます。この基本的な JSON 出力は、イメージ内のソフトウェアコンポーネントの包括的なビューを提供します。