Concertツールキットを使う

IBM® Concertツールキットは、Concertへのデータ生成とアップロードを簡素化し、自動化するためのソフトウェア開発ツール、ユーティリティ、テンプレートのコレクションを提供します。

概要

Concert は、アップロードされた SBOM ファイルから取り込まれたデータに基づいて、または組織のサードパーティ・ツールやサービスと統合することによって、アプリケーション・ランドスケープの包括的なビューを提供します。 Concert ツールキットは、サポートされている形式の SBOM ファイルの生成、検証、およびアップロードのプロセスを簡素化します。 ツールキットには、CI/CDパイプラインと統合してSBOMデータの取り込みや脆弱性スキャンを自動化するスクリプトなど、一般的なタスクを効率化するユーティリティ一式が含まれている。 Concertツールキットとユーティリティに必要なリソースにアクセスするには、以下のフォルダを参照してください:

Concert ツールキットは、一般にアクセス可能なコンテナレジストリのコンテナイメージとして利用できます。 このイメージには、Concert との対話に必要なスクリプトが含まれており、コンテナ内でコマンドを実行することで、スタンドアロン・コンテナとして機能するように設計されています。 ツールキットコンテナを実行するには、DockerPodmanのようなコンテナランタイムが必要です。

ツールキットとユーティリティを使用して、以下のタスクを実行できます:
  • cdxgen ツールを使ってコードリポジトリから、または syft ツールを使ってコンテナイメージから、CycloneDX 形式のパッケージ SBOM を生成する。
  • sbom-utilityツールを使ってパッケージのSBOMファイルを検証する。
  • カスタムConcert定義フォーマットでアプリケーションを生成し、ビルドし、SBOMファイルをデプロイします。
  • Concert で定義された SBOM ファイルを検証する。
  • カスタム Concert-defined フォーマットで証明書インベントリ・ファイルを生成する。
  • CSV/XLSXファイルをOSCALカタログのJSONファイルに変換します。
  • SBOM ファイルと脆弱性スキャンを Concert にアップロードする。
注意: ツールキットはCycloneDX SBOMファイルを生成する基本的な方法を提供します。 より高度なケースでは、cdxgensyftをコンテナ内で直接使う。 生成されたファイルを /toolkit-data ディレクトリに出力し、コンテナ終了後にホストマシンからアクセスできるようにしてください。 List of toolkit utilities のマウントオプションを参照してください。

ツールキットのダウンロード

Concert ツールキットは、一般にアクセス可能な IBM Cloud Container Registry ( icr.io ) で入手でき、 DockerPodman などのコンテナランタイムを使ってダウンロードできる。 TOOLKIT_IMAGE環境変数を設定することで、後で使用することもできます。 例:
export TOOLKIT_IMAGE="icr.io/cpopen/ibm-concert-toolkit:v1.1.0"
docker pull ${TOOLKIT_IMAGE}

ツールキット接頭辞コマンドのエクスポート

ツールキットコンテナを実行するには、DockerPodmanのようなコンテナランタイムが必要です。

code-scan使用する場合は、変数HOST_DIR_SRC_CODEをエクスポートする。 コマンドをソース・コード・ディレクトリへのexportに置き換えると、コンテナはそのディレクトリ/data/src にあるコードにアクセスできるようになる。
export HOST_DIR_SRC_CODE=<HOST-DIR-SRC-CODE>
ツールキットに必要な入力ファイルを提供し、ツールキットが生成するファイルにアクセスするには、コンテナ内にマウントするホストシステム上のディレクトリを選択する必要がある。 これはすべての電力会社で義務付けられている。 変数HOST_DIR_TOOLKIT_DATAをエクスポートするには、以下のコマンドを使用します。 エクスポートコマンドの元のディレクトリは、ホストマシン上の任意のディレクトリに置き換えることができる。 ディレクトリにすべての読み取り権、書き込み権、実行権があることを確認する(これは、chmod 777 ${HOST_DIR_TOOLKIT_DATA}を実行することで達成できる)。
export HOST_DIR_TOOLKIT_DATA=<HOST-DIR-TOOLKIT-DATA>
次のコマンドを使用して、ツールキット接頭辞コマンドを環境変数TOOLKIT_PREFIX_CMD にエクスポートします。 この変数を使用して、後続のツールキットコマンドを実行する。
export TOOLKIT_PREFIX_CMD="docker run \
  -v ${HOST_DIR_SRC_CODE}:/data/src \
  -v ${HOST_DIR_TOOLKIT_DATA}:/toolkit-data \
  --rm \
  ${TOOLKIT_IMAGE} \
  /bin/bash -c"
  • -v ${HOST_DIR_SRC_CODE}:/data/srcは、ソースコードディレクトリをホストからコンテナにマウントします。 これはcode-scanユーティリティがソースコードをスキャンするのに必要なだけです。
  • -v ${HOST_DIR_TOOLKIT_DATA}:/toolkit-data 変数 $ {HOST_DIR_TOOLKIT_DATA} から、ホスト・マシンのディレクトリをコンテナの /toolkit-data ディレクトリにマウントする。 /toolkit-data はコンテナ内の必須ディレクトリである。
  • --rmは、コンテナ終了後にコンテナを削除するために使われます。 これは必須ではないが、一般的にスペースをきれいにするためのベストプラクティスと考えられている。
  • TOOLKIT_{TOOLKIT_IMAGE}}は、パブリックなIBM Cloud Container Registryにあるツールキット・コンテナのイメージ名とタグを含む変数です。
  • /bin/bash -cはbashを使ってコンテナ内で指定されたコマンドを実行する。 -cの後ろがすべてダブルクォーテーションで囲まれていることを確認してください。 を参照。
注意:パーミッション関連の問題が発生した場合は、コンテナをrootユーザーとして実行するために、exportコマンドに引数-u 0:0を追加する。

サンプル設定ファイルのダウンロード

ツールキットは、Concert ユーティリティのサンプル設定ファイルを提供します。 独自のコンフィギュレーション・ファイルを作成する場合は、これらのファイルを参考にすることができる。

ツールキット接頭辞${TOOLKIT_PREFIX_CMD}を環境変数としてエクスポートした後、以下のコマンドを実行してサンプルの設定ファイルをTOOLKIT_DIRディレクトリにコピーします:

${TOOLKIT_PREFIX_CMD} "cp -rL /app/samples /toolkit-data"

ダウンロードしたサンプルファイルは、ホストマシンのTOOLKIT_DIRディレクトリ内のsamplesというサブディレクトリにあります。