> For the complete documentation index, see [llms.txt](https://help.aikido.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.aikido.dev/docs/docs-ja/kdosukyan/miscellaneous/generate-sbom-based-on-open-source-packages.md).

# オープンソースパッケージに基づいてSBOMを生成する

## SBOMのエクスポート

Aikidoでは、以下の両方をエクスポートできます **SBOM（ソフトウェア部品表）** および **VEX（脆弱性の悪用可能性交換）** ファイル。これらのエクスポートにより、ソフトウェアコンポーネント（オープンソースコンポーネントを含む）を可視化でき、実際に修正が必要なものの優先順位付けに役立ちます。

**ユースケース：**

* **SBOMエクスポート** (CycloneDX 1.6、SPDX-2.3、またはCSV)
  * M\&A、調達、監査（例：ISO 27001、SOC2）の際に第三者と共有できます。
  * Cyber Resilience Act（CRA）、Medical Device Regulation（MDR）、米国大統領令14028などの規制へのコンプライアンス対応。
  * サードパーティリスク管理ツールや調達ツールに取り込めます。
* **VEXエクスポート** (CycloneDXのみ)
  * どの脆弱性が **悪用可能か** そしてどれが **該当しないか**.
  * VEXは、適切な注意義務を果たしていることの証明として、既知の脆弱性を積極的に管理していることを第三者に示します。

### SBOMの場所 <a href="#where-to-find-the-sbom" id="where-to-find-the-sbom"></a>

**ステップ 1.** レポート > [ライセンス & SBOM](https://app.aikido.dev/licenses)

**ステップ 2.** 右上のアクションからSPDX、CycloneDX、またはCSVのSBOMをダウンロードできます

![フィルターとSBOMダウンロードオプション付きのPythonパッケージのライセンスリスク概要。](/files/0767798375ce9e57a1d8cd38d61ec8032509dc38)

**任意です。** さまざまな条件でライセンスをフィルタリングし、その後SBOMをエクスポートします。エクスポートには選択したフィルター値が反映されます。

![ライセンス、言語、リスク、コンテナの各オプションでリポジトリを検索するためのフィルターメニュー。](/files/d2a71946d391b359d7295fc203be36d3674304a2)

チームで絞り込みたい場合は、ページ上部のTeam Filterを変更してください。

![Licenses & SBOMレポートを表示するためのチーム選択ドロップダウン。](/files/2de6c2888bb92f96be4dc29461e5189806c8c08e)

> マルチブランチスキャンを有効にしている場合は、ドロップダウンで特定のブランチのリポジトリを選択することで、ブランチごとに異なるSBOMを取得できます。詳細はアプリ内チャットでお問い合わせください。

#### API経由で生成・エクスポート <a href="#generate-and-export-via-api" id="generate-and-export-via-api"></a>

当社の [SBOMエクスポートAPI](https://apidocs.aikido.dev/reference/exportcoderepolicenses).

## 自己生成SBOMの監視

BuildrootやYoctoのようなツールで構築された組み込みシステムでは、ビルド時にSBOMを生成できます。これらのシステムは標準的なコンテナレジストリを備えていないことが多いため、これらの自己生成SBOMをAPI経由でAikidoにアップロードし、サプライチェーンのセキュリティとライセンスコンプライアンスを監視できます。

### Buildroot / Yocto経由でSBOMを生成する

{% tabs %}
{% tab title="Buildroot" %}
Buildrootは、組み込みの [generate-cyclonedx](https://buildroot.org/downloads/manual/manual.html#_generating_cyclonedx_sbom) ユーティリティを使用してCycloneDX SBOMを生成します。このユーティリティは、 `make show-info`.

{% stepper %}
{% step %}

#### SBOMを生成する

次のコマンドを実行します：

```bash
make show-info | utils/generate-cyclonedx > sbom.cdx.json
```

これにより、組み込みLinuxシステム内のすべてのパッケージを、そのバージョン、ライセンス、ソース情報とともに一覧表示した単一のCycloneDX JSONファイルが生成されます。
{% endstep %}
{% endstepper %}
{% endtab %}

{% tab title="Yocto SPDX 2.2エンジン" %}

### YoctoのSPDX 2.2エンジンを使用する

Yoctoは、次の機能を通じてネイティブのSPDX 2.2 SBOM生成を提供します： `create-spdx` クラス。この機能はYocto 3.4（Honister）以降で安定版となっており、デフォルトで有効です。

{% stepper %}
{% step %}

#### YoctoのSPDX 2.2エンジンを設定する

以下を `conf/local.conf` に追加して、Yoctoに各レシピのSPDX 2.2ドキュメントを生成するよう指示します：

```
INHERIT += "create-spdx"
```

{% hint style="warning" %}
Yoctoのオプション [SPDX\_INCLUDE\_SOURCES](https://docs.yoctoproject.org/dev/ref-manual/variables.html#term-SPDX_INCLUDE_SOURCES) は、SBOMのサイズを不必要に大きくするため、無効化することを推奨します。
{% endhint %}
{% endstep %}

{% step %}

#### イメージをビルドする

通常のBitBakeビルドを実行します：

```bash
bitbake <your-image-name>
```

ビルドに成功すると、SPDXファイルは次の場所に書き込まれます：

```
tmp/deploy/spdx/<MACHINE>/
```

最上位のイメージドキュメント（例： `<IMAGE>-<MACHINE>.spdx.json`）は、同じディレクトリ内のパッケージごとのSPDXドキュメントへのリンクを含みます。Aikidoにアップロードする前に、パッケージごとのSPDXファイルを1つのSPDXファイルにまとめることを推奨します。
{% endstep %}

{% step %}

#### 単一のSBOMにまとめる

Yoctoは複数の `*.spdx.json` ファイル（レシピごとに1つ）が生成されるため、手動で1つのSBOMファイルにまとめる必要があります。これは次のツールを使えば簡単に行えます： [SPDXMergeTool](https://github.com/philips-software/SPDXMerge) または [sbomasm - assemble](https://github.com/interlynk-io/sbomasm/blob/main/docs/assemble.md#merge-algorithms).
{% endstep %}
{% endstepper %}
{% endtab %}
{% endtabs %}

### SBOMをAikidoにアップロードする

使用する [Container SBOMアップロードAPI](https://apidocs.aikido.dev/reference/uploadcontainersbom) を使用して生成したファイルを送信します。 [API 認証ドキュメント](https://apidocs.aikido.dev/reference/authorization) APIキーの取得と使用方法の詳細については、

```bash
#JSONファイルの単語分割を防止
SBOM=$(cat /path/to/sbom.spdx.json)

# CycloneDXとSPDXの両方のJSON形式を受け付けます
curl -X POST "https://app.aikido.dev/api/public/v1/containers/sbom" \\
  -H "accept: application/json" \\
  -H "Authorization: Bearer $AIKIDO_API_KEY" \\
  -H "Content-Type: application/json" \
  -d "{\"sbom\": $SBOM, \"container_image_name\": \"$YOUR_CONTAINER_NAME\"}"
```

AikidoはアップロードされたSBOMを **コンテナ** レジストリの *自己申告SBOM* および **自動的にスキャンを開始します** 脆弱性とライセンスリスクを対象に。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.aikido.dev/docs/docs-ja/kdosukyan/miscellaneous/generate-sbom-based-on-open-source-packages.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
