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

多くの場合、次のように変更を適用できます：

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

### イメージ pull シークレット

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

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

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

## FIPS 準拠イメージ

Aikido は、FedRAMP 環境向けに Kubernetes エージェントおよび SBOM コレクタの FIPS 準拠バリアントを公開しています：

**Kubernetes エージェント（FIPS）** `public.ecr.aws/aikido-cloud/kubernetes-agent-fips:v1.19.0`

**SBOM コレクタ（FIPS）** `public.ecr.aws/aikido-cloud/kubernetes-sbom-collector-fips:v1.9.0`

使用するには、Helm チャートの repo 値に `-fips` を追加してください。

## FAQ

#### 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 エージェントのメンテナンスはありますか？

いいえ。新しいバージョンのエージェントをリリースすると、自動的に自身を更新します。なお、エージェントができるのは [自分自身のデプロイメントとシークレットの更新/パッチ適用のみ](https://github.com/AikidoSec/helm-charts/blob/main/kubernetes-agent/templates/agent/rbac.yaml#L14).

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

いいえ。イメージ pull シークレット（イメージスキャン用）を除き、Kubernetes シークレットへのアクセス権はありません。これは [特定のシークレットのみに制限できます](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.
