> 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 つのタグをスキャン**

こちらの方が簡単な選択肢です。Aikido にクラスター内でイメージリポジトリごとに 1 つのコンテナだけを保持させたい場合に選択してください。同じイメージの複数のタグが実行されている場合、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.
