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

# Kubernetes クラスターのスキャン

## なぜ Kubernetes クラスターを接続するのですか？

Aikido は [インフラストラクチャ・アズ・コードのファイルをスキャンします](https://help.aikido.dev/general-information/sast-by-aikido-supported-languages-and-security-focus)、Kubernetes マニフェストや Helm チャートを含め、クラスターを接続すると Aikido はより多くの（そしてより強力な）チェックを実行でき、実際の環境の検証も行えます。

Aikido は Kubernetes リソースを [一連のルールと照らし合わせて評価し、](https://app.aikido.dev/clouds/checks?cloudCheckType=kubernetes)逸脱があれば問題を生成します。生成された問題は [フィードで確認できます](https://app.aikido.dev/queue?issue_type_filter=kubernetes)、「Kubernetes Configurations」で並べ替えると表示されます。

<figure><img src="/files/42f72885a2dee8b8bfd702b50627e2d57f0897e6" alt=""><figcaption></figcaption></figure>

さらに、Aikido はクラスターにデプロイされたイメージをスキャンできます。詳細は [以下をご覧ください](#image-scanning).

## はじめに

移動先 [Clouds ページで](https://app.aikido.dev/clouds)、「Connect Cloud」をクリックし、「Kubernetes」を選択してください。これは AWS EKS、Azure Kubernetes Service、Google Kubernetes Engine、その他のマネージド Kubernetes サービスに加え、オンプレミスまたはクラウドベースのセルフマネージド展開を含むすべての Kubernetes 環境に適用されます。

最初のステップでは、以下を入力します：

* **クラスター名**：これは Aikido 内でのみ使用されます。任意の名前を付けられますが、Aikido ワークスペース内で一意である必要があります。
* **除外する名前空間**：任意で、特定の Kubernetes 名前空間からのリソース収集を除外できます。よく除外される名前空間をすばやく追加するオプションもあります。（例：kube-system、kube-public、クラウドプロバイダー固有の名前空間など）。
* **イメージスキャン**：コンテナーイメージから SBOM を生成する追加コンポーネントがクラスターにインストールされます。これらの SBOM はその後 Aikido によってスキャンされ、これらのイメージに影響する問題を確認できます。参照： [Kubernetes In-Cluster Image Scanning](https://help.aikido.dev/~/revisions/zVer63pN7HO83qF6ZCQx/cloud-scanning/kubernetes-cluster-scanning/kubernetes-in-cluster-image-scanning).
* **環境**：これはクラウドの場合と同じ目的で、Aikido が検出結果の重大度を調整できるようにします。

次に、クラスターに Aikido エージェントをインストールします。必要なもの：

* [Helm CLI](https://helm.sh/docs/intro/install/)
* クラスターへのアクセスと Helm チャートをインストールする権限

アプリ内の手順に従って、Aikido エージェントを Deployment としてデプロイするチャートをインストールしてください（現在は単一の Pod として実行されています）。エージェントは数秒で起動し、オンボーディングを完了できるはずです。

### 既存のクラスターを更新する

すでに接続済みのクラスターで、除外する名前空間の更新や、クラスター内イメージスキャンの有効化/無効化ができます。

{% hint style="info" %}
クラスター内イメージスキャンの設定を変更する際は、SBOM コレクターがそれに応じて有効または無効になっていることを [Kubernetes エージェントの Helm リリース](https://github.com/AikidoSec/helm-charts/blob/main/kubernetes-agent/values.yaml#L27)で確認する必要があります。この設定は自動では更新されません。

ほとんどの場合、次のように変更を適用できます：

```shellscript
helm upgrade aikido -n aikido \
  aikido/kubernetes-agent \
  --reuse-values \
  --set sbomCollector.enabled=true # または false
```

{% endhint %}

## OpenShift サポート

Aikido は完全にサポートしています **OpenShift** クラスターを。オンプレミスまたはマネージド環境で動作する OpenShift Container Platform も含まれます。エージェントと SBOM コレクターは他の Kubernetes ディストリビューションと同じように動作しますが、OpenShift 固有の統合と考慮事項がいくつかあり、以下に示します：

### イメージミラーの解決

OpenShift では一般的にイメージミラー（たとえば Quay や内部レジストリ経由）が使用されます。Aikido はこれらのマッピングを自動的に解決し、ミラー参照ではなく元のソースイメージを使ってイメージが報告・関連付けされるようにします。

これを実現するために、エージェントはクラスターから OpenShift のイメージミラー設定を読み取り、以下を含みます：

* `ImageContentSourcePolicies`
* `ImageDigestMirrorSets`
* `ImageTagMirrorSets`

これにより、正確なイメージ識別と脆弱性の関連付けが保証され、UI に重複したり誤解を招くイメージ項目が表示されるのを防ぎます。

### カスタム CA 証明書

一部の OpenShift クラスターはカスタムまたは内部の認証局に依存しています。Aikido では、追加の CA 証明書をマウントできるようにすることでこれをサポートします。

Helm チャートでは [次のことができます](https://github.com/AikidoSec/helm-charts?tab=readme-ov-file#custom-ca-certificates):

* 追加のボリュームとボリュームマウントを追加する
* 標準的な環境変数を使って、エージェントをカスタム信頼バンドルに向けることができます。たとえば `SSL_CERT_FILE` または `SSL_CERT_DIR`

### イメージプルシークレット

デフォルトでは、Aikido は RBAC 権限を使ってコンテナーイメージにアクセスできます。これは最も簡単な設定で、レジストリの認証情報を Aikido 名前空間にコピーする必要はありません。

RBAC ベースのアクセスが望ましくない、または不可能な環境では、エージェントは次もサポートします [イメージプルシークレットを直接マウントすること](https://github.com/AikidoSec/helm-charts/blob/main/kubernetes-agent/values.yaml#L106)。これにより、レジストリ認証情報を明示的に制御でき、より制限の厳しい OpenShift 設定で役立つ場合があります。

どちらの方法もサポートされており、機能的には同等です。クラスターのセキュリティと運用モデルに最も適したものを選んでください。

## よくある質問

#### 1. Aikido エージェントはクラスター内で何ができますか？

Aikido エージェントは Kubernetes リソースを読み取ることしかできません。さらに、自身の管理のために、自分の名前空間に限定された最小限の権限のみを持ちます。付与された権限は [Helm チャートで確認できます](https://github.com/AikidoSec/helm-charts/blob/main/kubernetes-agent/templates/agent/cluster_rbac.yaml).

#### 2. Aikido エージェントはクラスターにどのようなパフォーマンス影響を与えますか？

エージェントの唯一の目的は、Kubernetes クラスターからリソースを収集することです。そのため、エージェントのリソース使用量はごくわずかです。次の項目をカスタマイズできます： [リソース要求とリソース制限](https://github.com/AikidoSec/helm-charts/blob/main/kubernetes-agent/values.yaml#L17) Helm チャートのインストール時に。

#### 3. クラスターは公開されている必要がありますか？

いいえ。通信はエージェントから Aikido プラットフォームへの一方向のみです。

#### 4. Aikido エージェントの保守作業はありますか？

いいえ。エージェントの新しいバージョンをリリースすると、自動的に更新されます。なお、エージェントができるのは [自身の Deployment と Secret を更新/パッチすることだけです](https://github.com/AikidoSec/helm-charts/blob/main/kubernetes-agent/templates/agent/rbac.yaml#L14).

#### 5. Aikido エージェントは Kubernetes Secret を読み取りますか？

いいえ。イメージプルシークレット（イメージスキャン用）を除き、Kubernetes Secret にはアクセスできません。これらは [特定の Secret のみに制限できます](https://github.com/AikidoSec/helm-charts/blob/main/kubernetes-agent/values.yaml#L99).

#### 6. Aikido エージェントがプラットフォームと通信できない場合はどうなりますか？無期限に再試行しますか？

エージェントはリソース収集に指数バックオフ機構を使用します。Aikido プラットフォームとの接続を確立できない場合は、追加のリソースを消費せず待機します。


---

# 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.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.
