> 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/kuraudosukyan/kubernetes-cluster-scanning/kubernetes-in-cluster-image-scanning.md).

# Kubernetesクラスタ内イメージスキャン

{% hint style="info" %}
この機能は以下の **Pro** と **Advanced** プランです。 **お問い合わせ** 詳細はチャットでお問い合わせください。
{% endhint %}

Aikido の Kubernetes 統合は、コンテナレジストリを Aikido に接続せずに、Kubernetes クラスター内のコンテナイメージをスキャンすることをサポートします。

## クラスター内イメージスキャンの利点

* **完全なカバレッジ** ：パブリックイメージを含む、クラスターにデプロイされたすべてのイメージ。
* **リアルタイムスキャン**：新しいイメージで Pod が起動されるたびに、Aikido がそれをスキャンし、検出結果は数分以内に Aikido フィードに反映されます。
* **イメージは環境外に出ません**：Aikido エージェントは SBOM のみをプラットフォームに報告します。
* **帯域幅の削減**：Aikido エージェントはまず Kubernetes ノード上にキャッシュされたイメージの使用を試み、見つからない場合やアクセスできない場合にのみレジストリから取得します。この点は、トラフィック量に応じて課金されるコンテナレジストリを使用している組織にとって特に重要です。

## はじめに

Kubernetes クラスターのオンボーディング中にイメージスキャンを有効にできます

<figure><img src="/files/101a65a75855de2df49fcc0112bd78c2a76f233e" alt="Aikido Kubernetes cluster onboarding with image scanning enabled" width="375"><figcaption><p>イメージスキャンを有効にした Kubernetes クラスターのオンボーディング</p></figcaption></figure>

また、次の設定を行う必要があります `sbomCollector.enabled=true` の値を Helm チャートのインストール時に指定します。

起動後は、Aikido で次の場所にイメージが表示されます [コンテナページ](https://app.aikido.dev/containers).

<figure><img src="/files/a5ea76e697a9aa7c64687182e61e222e9d7fc784" alt="Container images reported via the in-cluster Kubernetes scanning"><figcaption><p>Aikido で報告されたコンテナ</p></figcaption></figure>

#### イメージスキャンの動作を選択する

{% hint style="info" %}
同じイメージの複数のバージョン/タグを実行している場合、このスキャン動作が関係します（例： `busybox:1.37` と `busybox:1.36`）をクラスター内で実行している場合です。
{% endhint %}

クラスター内イメージスキャンを有効にする際、Aikido が実行中のイメージをどのように追跡するかを選択できます。

* **実行中の各イメージにつき 1 つのタグをスキャンする**

これはよりシンプルなオプションです。クラスター内でイメージリポジトリごとに 1 つのコンテナを Aikido に保持させたい場合に選択してください。同じイメージの複数のタグが実行されている場合、Aikido はそのイメージにつき 1 つのコンテナを追跡し、最も最近デプロイされたバージョン/タグをスキャンします。

* **実行中のすべてのイメージタグをスキャンする**

Kubernetes ワークロードごとに実行中のイメージを Aikido に追跡させたい場合は、このオプションを選択してください。同じイメージが複数のワークロードに異なるタグでデプロイされている場合、各タグは Aikido 上で別々のコンテナとして表示されます。

Kubernetes クラスターのオンボーディング中にスキャン動作を設定でき、後からクラスター設定で更新することもできます。

### イメージの取得方法

エージェント（SBOM コレクターとも呼ばれます）は、ローカルノードのキャッシュからイメージを取得しようとします（そのため、デフォルトでは root ユーザーとして DaemonSet で実行され、containerd と Docker のソケットをマウントできるようになっています）。

SBOM コレクターがノードキャッシュからイメージを見つけられない場合（またはランタイムソケットをマウントできない場合）、対応するレジストリからイメージを取得します。プライベートレジストリへのアクセスについては、ほとんどの認証方式（ノード IAM ロール、imagePullSecrets、ワークロード ID）をサポートしています。アクセスの設定方法（必要な場合）など、詳細は次を参照してください [Helm チャートの README](https://github.com/AikidoSec/helm-charts?tab=readme-ov-file#in-cluster-image-scanning).

{% hint style="info" %}
**SBOM コレクターのシークレットアクセス**

デフォルトでは、SBOM コレクターはクラスター内のすべてのシークレットにアクセスできます。これは厳密に、次の場合にアクセスを許可するためです `imagePullSecret` が使用されているときです。あなたは [シークレットの名前を指定できます](https://github.com/AikidoSec/helm-charts/blob/main/kubernetes-agent/values.yaml#L75) レジストリのアクセス資格情報を含むシークレットの名前を指定することで、SBOM コレクターに付与されるアクセス権を最小限に抑えられます。
{% endhint %}

## よくある質問

* **イメージの新しいバージョン/タグをデプロイするとどうなりますか？**

選択したイメージスキャン動作によって異なります。

を使用する場合 `実行中の各イメージにつき 1 つのタグをスキャンする`、Aikido はクラスター内でイメージリポジトリごとに 1 つのコンテナを保持します。同じイメージのより新しいタグがデプロイされると、Aikido は追跡中のそのコンテナを最新のデプロイ済みバージョンに更新します。

を使用する場合 `実行中のすべてのイメージタグをスキャンする`、Aikido は Kubernetes ワークロードごとにイメージを追跡します。あるワークロードが `busybox:1.32` から `busybox:1.33`に移行すると、Aikido は対応する Aikido コンテナを更新してスキャンし、他のワークロードで異なるタグが実行されている場合は、それらは引き続き別々のコンテナとして表示されます。

* **この形式のスキャンは、Aikido が提供する他のコンテナ関連機能の恩恵を受けられますか？**

はい。クラスター内スキャンでスキャンされたイメージは、ノイズ削減、リポジトリへのリンク、AutoFix、Aikido Images など、Aikido が提供するすべての機能の恩恵を受けられます。

* **特定のイメージを無視できますか？**

クラスター内スキャンは、クラスターのオンボーディング時に設定した除外済みの名前空間を尊重します。スキャン対象の名前空間から特定のイメージを除外する必要がある場合は、次を推奨します [Aikido でコンテナを無効化する](https://app.aikido.dev/settings/container-image-registry).

* **Aikido が存在しないコンテナに対してタスクトラッカーのチケットを作成し続けます。どうすればよいですか？**

これは、デプロイプロセスで既存のもののイメージを更新するのではなく新しい Kubernetes Deployment を作成している場合や、頻繁に Kubernetes Job を実行している場合（CronJob で管理されていない場合）に発生することがあります。

そのような場合は、 `実行中の各イメージにつき 1 つのタグをスキャンする` スキャン動作により、イメージリポジトリごとに 1 つのコンテナを保持することで、よりクリーンなインベントリを実現でき、チケットの開閉を避けられます。

これは OpenShift クラスターでもよく見られます。多くのワークロードが同じイメージリポジトリの異なるタグを使用する場合があり、たとえば `openshift/release`.

* **特定の Kubernetes 名前空間だけのコンテナ問題を表示できますか？**

はい。Aikido は、コンテナが実行されている Kubernetes 名前空間を [コンテナラベル](https://help.aikido.dev/getting-started/manage-teams-and-applications/add-labels-to-resources#manage-labels-on-a-container)として表示します。ラベルの形式は `k8s/namespace:<namespace>`です。これにより、あなたは [これらのラベルに基づいてフィードをフィルタリングできます](https://help.aikido.dev/getting-started/manage-teams-and-applications/add-labels-to-resources#filter-the-issue-feed-by-labels).


---

# 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/kuraudosukyan/kubernetes-cluster-scanning/kubernetes-in-cluster-image-scanning.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.
