> 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/kontenaimjisukyan/container-image-scanning-overview.md).

# コンテナイメージスキャンの概要

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="/pages/02dcac33b4672cefd400c511b0edae1e19f3b4f1"><strong>コンテナレジストリに接続する</strong></a></td><td></td><td><a href="/pages/02dcac33b4672cefd400c511b0edae1e19f3b4f1">/pages/02dcac33b4672cefd400c511b0edae1e19f3b4f1</a></td></tr><tr><td><a href="/pages/1a016dceeeda839a32e29a474c5b2318a3ed4bd4"><strong>スタンドアロンレジストリに接続する</strong></a></td><td></td><td><a href="/pages/1a016dceeeda839a32e29a474c5b2318a3ed4bd4">/pages/1a016dceeeda839a32e29a474c5b2318a3ed4bd4</a></td></tr></tbody></table>

Aikido のコンテナイメージスキャンは、イメージを最重要のセキュリティ資産として扱うよう設計されています。通常はサイロ化されがちな 3 つの要素、つまりレジストリ（イメージが存在する場所）、コード（実際に問題を修正できる場所）、ランタイム（リスクが具体化する場所）をつなぎます。

{% hint style="info" %}
Aikido は静的イメージと、クラスタにデプロイされたコンテナの両方をスキャンします。詳細はこちら： [クラスタ内イメージスキャン](https://help.aikido.dev/cloud-scanning/kubernetes-cluster-scanning/kubernetes-in-cluster-image-scanning).
{% endhint %}

### コンテナイメージスキャンの定義

コンテナイメージは、アプリケーションコード、OS パッケージ、言語ランタイム、Web サーバー、補助ツールを 1 つの不変アーティファクトにまとめたものです。Aikido のコンテナイメージスキャンは、それらのアーティファクトに含まれるリスクを大きく 3 つのカテゴリで捉えます。

1. **既知の脆弱性（CVE）** OS パッケージやその他のコンポーネントにおいて。
2. **古くなった、またはサポート終了（EOL）のランタイム** （例：言語ランタイムや Web サーバー）。
3. **ソフトウェア構成とライセンス**、詳細なソフトウェア部品表（SBOM）を通じて。

AWS ECR のようなレジストリでスキャンを有効にすると、Aikido はイメージを脆弱性、ライセンス、EOL ランタイムの観点で検査し、定期的に再スキャンします。これにより、イメージが最近再ビルドやプッシュされていなくても、新しい CVE を検出できます。

Aikido は、イメージ内で検出された主要なランタイム（Python、Node.js、PHP、Nginx など）の状態も追跡し、次のように分類します： **古い**, **ほぼ期限切れ**, **最新**、または **見つかりません**、ベンダーのサポート期間に基づいています。ランタイムが EOL に近づくか、EOL を過ぎると、Aikido はアラートを上げ、非推奨日が近づく、または過ぎるにつれて重大度を引き上げます。これにより、すべてがまだ動作しているように見えても、セキュリティ更新が停止することをコンテナ所有者に早期に知らせられます。

最後に、Aikido 独自のスキャナーでスキャンされたイメージについては、未加工のソフトウェア部品表をエクスポートできます。SBOM には、検出されたコンポーネントのファイルシステム上の場所と、その由来に関する情報が含まれます。脆弱性、ランタイムの状態、SBOM データが組み合わさって、Aikido のコンテナセキュリティモデルの基盤となります。

### Aikido がイメージデータを取得する場所

Aikido は、どのイメージが存在するかについて、コンテナレジストリ（またはビルドパイプライン）を正しい情報源として扱い、その後、異なる環境間で結果を標準化します。

#### クラウドレジストリ

ほとんどのクラウドレジストリでは、クラウドプロバイダーのスキャナー（例：AWS ECS 用の AWS Inspector）または Aikido スキャナーのどちらかを使用できます。Aikido スキャナーを使用すると、Aikido は次を追加します：

* ライセンスと EOL ランタイムのスキャン。
* タグレベルの対象指定（つまり、特定のタグに一致するイメージのみをスキャン）
* 最近プッシュされていないイメージでも、毎日のスケジュールで継続的にスキャンし、新たに公開された CVE を継続的に検出します。

#### スタンドアロンレジストリ

Aikido は Docker Hub のようなスタンドアロンレジストリにも直接接続します。読み取り専用アクセストークンを提供すると、Aikido はアクセス可能なリポジトリを列挙し、必要に応じてコードリポジトリに関連付けて重複排除を改善し、脆弱性をスキャンして結果を Aikido フィードに反映します。

#### ローカルイメージスキャンとゲーティング

すべてのイメージが継続的インテグレーションシステムの外に出るわけではありません。そのような場合、Aikido は自分の環境で実行するローカルイメージスキャナーを提供します。このスキャナーは次のことができます：

* イメージをローカルでスキャンし、問題を Aikido に報告する。
* リリースゲートとして機能し、レジストリへプッシュする前に、選択した重大度以上の問題が存在する場合にパイプラインを失敗させる。
* プルリクエストゲートとして機能し、プルリクエストからビルドされたイメージのセキュリティ状態をベースコミットと比較し、しきい値を超える新しい問題が導入された場合に失敗させる。

これにより、コンテナセキュリティを、デプロイ後の定期チェックとしてではなく、ビルドとリリースを囲むガードレールとして扱えます。

### イメージをコードとクラウドコンテキストに関連付ける

イメージ内の脆弱性は、それを修正できるチームやコードに対応付けられて初めて役立ちます。Aikido のモデルは、コンテナをリポジトリやクラウド資産に関連付けることを前提に明確に構築されています。

コンテナイメージは、手動またはスマート提案によって対応するコードリポジトリに関連付けられます。関連付け後：

* コンテナの問題は関連するリポジトリ内に直接表示されます
* Aikido がイメージに関連付けられた Dockerfile を確実に見つけられるため、Container AutoFix が利用可能になります（下記参照）

### SBOM とソフトウェアサプライチェーンの可視化

コンテナのソフトウェア部品表は、イメージ内に何が含まれているか、そしてそれがどこから来たのかを具体的に把握するのに役立ちます。イメージがスキャンされると、コンテナ詳細ページから未加工の SBOM をエクスポートできます。このエクスポートは次を支援するよう設計されています：

* 確認する **f**イルシステム上の場所**s** 特定のコンポーネント（およびその脆弱性）が見つかった場所。
* レイヤーをまたいでインストール済みコンポーネントの由来を追跡する。

SBOM の生成は、Aikido の公開 API を通じて自動化することもできます。この API は次のエンドポイントを提供します： [生成する](https://apidocs.aikido.dev/reference/generatecontainersbom) と [ダウンロードする](https://apidocs.aikido.dev/reference/exportcontainerrepolicenses) スキャン済みイメージの SBOM。

### ランタイムとサポート終了リスクの監視

コンテナにおける多くの重大な問題は、単一の CVE ではなく、ベンダーのサポート対象外になったランタイムや Web サーバーで実行していることから発生します。レジストリを接続すると、Aikido は Python や Node.js ランタイム、Apache や Nginx のような一般的な Web サーバーを含む、イメージ内の主要なランタイムを監視します。

監視対象の各ランタイムについて、Aikido は「期限切れ」「最新」「ほぼ期限切れ」などのステータスを付与します。Aikido は、特定のパッケージバージョンがベンダーによって保守されなくなったときにもフィード内にアラートを作成し、非推奨の前から開始して、日付が近づく・過ぎるにつれて問題の重大度を高めます。

### コンテナ向け AI AutoFix

コンテナスキャンは、脆弱性がどこにあるかを特定します。AutoFix for Containers は、最小限の手作業でイメージを変更し、脆弱性を取り除くのを支援します。

#### ベースイメージ中心の修正

Aikido がコンテナのベースイメージで脆弱性を見つけると、AutoFix はそのベースイメージを更新する Dockerfile の変更を提案します。複数の更新オプションを提案し、それぞれ特定のベースイメージに紐づいた 3〜5 個の Dockerfile バリアントを生成します。各バリアントについて、AutoFix はどの脆弱性が修正され、どの新しい脆弱性が導入される可能性があるかを示します。

#### Aikido Images

より新しい OS リリースやベースイメージへのアップグレードが高コストまたはリスクが高い場合、Aikido は次を提供します [**Aikido Images**](/docs/docs-ja/autofix-to/scope/autofix-for-containers-using-aikido-images.md)、コンテナ向けのゼロ CVE ベースイメージのレジストリを提供します。これらは次のとおりです：

* 保守対象およびサポート終了済みの両方のベースイメージで利用可能
* 既知の CVE を排除しつつ互換性を保つことを意図した、差し替え可能な代替品として提供
* 300 以上のベースイメージとして利用可能で、長期的な置き換え、または完全なアップグレードが可能になるまでの暫定措置として使用できます

#### リポジトリおよびレジストリとの統合

Container AutoFix は前述の関連付け手順に依存します：

* コンテナをリポジトリに関連付けると、そのコンテナで AutoFix が有効になり、Dockerfile を正しく特定できます
* Aikido によってプライベートベースイメージがスキャンされている限り、AutoFix は公開ベースイメージとプライベートベースイメージの両方で動作できます。

オプションを選択すると、AutoFix は更新された Dockerfile と関連変更を含むプルリクエストをソース管理システムに生成します。これはイメージごとに手動で実行することも、選択したイメージに対して定期的に PR を作成するよう設定することもできます。


---

# 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/kontenaimjisukyan/container-image-scanning-overview.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.
