> 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)に照らして評価し、逸脱があれば issue を生成します。生成された issue は [フィードで](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 ワークスペース内で一意である必要があります。
* **除外する namespace**: オプションで、特定の Kubernetes namespace からリソース収集を除外できます。よく除外される namespace をすばやく追加するオプションも用意されています。（例: kube-system、kube-public、クラウドプロバイダー固有の namespace など）。
* **イメージスキャン**: コンテナイメージから SBOM を生成するための追加コンポーネントがクラスターにインストールされます。この SBOM はその後 Aikido によってスキャンされ、これらのイメージに影響する issue を確認できます。詳細は [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 として稼働）。エージェントは数秒以内に起動し、オンボーディングを完了できるはずです。

### 既存クラスターの更新

すでに接続済みのクラスターで、除外する namespace を更新したり、クラスター内イメージスキャンを有効/無効にしたりできます。

{% hint style="info" %}
クラスター内イメージスキャン設定を変更する際は、以下の Kubernetes エージェント Helm リリースで 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`

### イメージ pull secret

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

RBAC ベースのアクセスが望ましくない、または不可能な環境では、エージェントは [イメージ pull secret を直接マウントすることも](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`

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

## FAQ

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

Aikido エージェントは Kubernetes リソースを読み取ることしかできません。さらに、自己管理のために自分の namespace 内に限定された最小限の権限を持っています。提供される権限は [Helm チャートで](https://github.com/AikidoSec/helm-charts/blob/main/kubernetes-agent/templates/agent/cluster_rbac.yaml).

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

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

#### 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 を読み取りますか？

いいえ。イメージ pull 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.
