> 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クラスター向けのスキャン機能について説明します。マネージドKubernetes環境（例: EKS、AKS、GKE）だけでなく、セルフマネージド／オンプレミス／OpenShiftクラスターにも適用されます。

## なぜ 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)と照らし合わせ、逸脱があれば issue を生成します。生成された issue は [フィードで](https://app.aikido.dev/queue?issue_type_filter=kubernetes)、「Kubernetes Configurations」で絞り込むと確認できます。

<figure><img src="https://715870456-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyKbzcQGrx7UtrG0nPZZ7%2Fuploads%2Fgit-blob-c105962f8dad93f7f741f51c51a60e41119f0944%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

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

## はじめに

その後、Splunk Cloud と Splunk Enterprise の両方でトークンを作成します: [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 によってスキャンされ、これらのイメージに影響する問題が表示されます。See [Kubernetes クラスター内イメージスキャン](https://help.aikido.dev/~/revisions/zVer63pN7HO83qF6ZCQx/cloud-scanning/kubernetes-cluster-scanning/kubernetes-in-cluster-image-scanning).
* **環境**：これは Cloud の目的と同じで、Aikido が検出結果の重大度を調整できるようにします。

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

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

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

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

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

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

### イメージ 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` を追加してください。

## よくある質問

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

Aikido エージェントは Kubernetes リソースを読み取ることしかできません。さらに、自己管理のために自分の namespace 内に限定された最小限の権限しか持っていません。付与された権限は [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.
