このドキュメントでは、SBOM のコンセプトについて説明します。また、ソフトウェア サプライ チェーンの依存関係を把握するために利用できるアーティファクト分析機能の概要についても説明します。
コンテナ イメージを Artifact Registry に保存するときに、そのイメージの内容を記述するソフトウェア部品構成表(SBOM)を作成できます。ソフトウェアの依存関係を把握することで、セキュリティ対策を強化できます。SBOM は、大統領令(EO)14028 などのセキュリティ規制への準拠をサポートするために、ソフトウェアの構成を証明する場合にも役立ちます。
SBOM
SBOM は、ソフトウェアが依存するパッケージを特定する、アプリケーションの機械読み取り可能なインベントリです。その内容には、ベンダーのサードパーティ ソフトウェア、内部アーティファクト、オープンソース ライブラリが含まれます。
Artifact Analysis では、SBOM を生成することも、独自の SBOM をアップロードすることもできます。
Artifact Analysis で SBOM を生成する場合でも、独自の SBOM をアップロードする場合でも、Artifact Analysis は、一貫した保存と取得プロセスを提供して、すべての依存関係情報を 1 か所で調整して評価できるようにします。
SBOM 形式
Artifact Analysis は、Software Package Data Exchange(SPDX)2.3 形式で SBOM を生成します。
Google Cloud の外部から既存の SBOM をアップロードする場合は、追加の形式がサポートされています。SBOM をアップロードするをご覧ください。
SBOM ストレージ
Artifact Analysis は、SBOM を Google Cloud プロジェクトの Cloud Storage に保存します。SBOM オブジェクトを削除するか、バケットを削除しない限り、SBOM は Cloud Storage に保存されたままになります。料金については、Cloud Storage の料金をご覧ください。
サポートされているパッケージ タイプ
SBOM には、アーティファクト分析スキャンで識別できるすべてのパッケージのリストが含まれています。パッケージはコンテナ化し、Artifact Registry の Docker リポジトリに保存する必要があります。
Artifact Analysis は、次のパッケージ タイプをサポートしています。
- OS
- Java(Maven)
- Go
- Python
- Node.js(npm)
SBOM リファレンスの発生
Artifact Analysis は、コンテナ固有の SBOM に加えて、Grafeas SBOM の参照オカレンスを生成します。これには次の情報が含まれます。
- SBOM の Cloud Storage のロケーション
- SBOM のハッシュ
SbomReferenceIntotoPayload
の署名
署名を使用して、SBOM が Artifact Analysis によって生成されたことを確認できます。
署名には、ペイロード タイプ application/vnd.in-toto+json
の DSSE 署名プロトコルが使用されます。ペイロードは、SbomReferenceIntotoPayload
の JSON 化された値です。
荷物の発生
より多くの依存関係情報を提供するために、Artifact Analysis はインストールされているパッケージごとに Grafeas のパッケージの発生も生成します。パッケージの発生には、次の情報が含まれます。
- パッケージのバージョン
- パッケージ タイプ
- インストールされているパッケージのライセンス情報
制限事項
- インストール済みパッケージのトラッキングは、Artifact Registry に push され、Container Scanning API によって評価されたコンテナ イメージでのみサポートされます。インストールされているパッケージに基づく gcloud CLI ルックアップは、インストールされているパッケージがこれらのイメージでのみ追跡されるため、Artifact Registry に保存されているイメージでのみ機能します。
- Container Registry(非推奨)リポジトリはサポートされていません。Container Registry からの移行方法を確認する。