> 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)

チームで絞り込みたい場合は、ページ上部のチームフィルターを変更して行えます。

![ライセンス & 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を生成できます。これらのシステムには標準的なコンテナレジストリがないことが多いため、サプライチェーンのセキュリティとライセンスコンプライアンスを監視するために、API経由でこれらの自動生成SBOMを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は、その `create-spdx` クラスを通じてネイティブなSPDX 2.2 SBOM生成を提供しており、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 %}

#### 1つの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にアップロードする

次を使用してください [コンテナ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.
