Kubernetesクラスタスキャン
Kubernetesクラスタを接続する理由
Section titled “Kubernetesクラスタを接続する理由”Aikidoは Kubernetesマニフェストや Helmチャートを含むインフラストラクチャ・アズ・コードファイルをスキャンしますが、クラスタを接続することで、Aikidoはより多くの(そしてより強力な)チェックを実行し、実際の環境を検証できるようになります。
Aikidoは一連のルールに基づいてKubernetesリソースを評価し、逸脱があれば問題を生成します。生成された問題は、「Kubernetes Configurations」でソートすることでフィードから確認できます。

さらに、Aikidoはクラスタ内にデプロイされたイメージをスキャンすることもできます。詳細は後述します。
Cloudsページに移動し、「Connect Cloud」をクリックして「Kubernetes」を選択します。これは、AWS EKS、Azure Kubernetes Service、Google Kubernetes Engineなどのマネージド Kubernetesサービスに加え、オンプレミスやクラウドベースの自己管理デプロイメントを含む、すべての Kubernetes環境に適用されます。
最初のステップでは、以下の情報を提供します。
- Cluster name: これは Aikido内でのみ使用されます。任意の名前を指定できますが、Aikidoワークスペース内で一意である必要があります。
- Excluded namespaces: 任意で、特定の Kubernetesネームスペースからのリソース収集を除外できます。よく除外されるネームスペース(kube-system、kube-public、クラウドプロバイダ固有のネームスペースなど)をすばやく追加するオプションも用意されています。
- Image scanning: コンテナイメージから SBOMを生成する追加コンポーネントがクラスタにインストールされます。これらの SBOMは Aikidoによってスキャンされ、これらのイメージに影響する問題を確認できます。Kubernetes In-Cluster Image Scanningを参照してください。
- Environment: これは cloudの目的と同一であり、Aikidoが検出結果の深刻度を調整できるようにするものです。
次に、クラスタに Aikidoエージェントをインストールします。以下が必要です。
- Helm CLI
- クラスタへのアクセス権限、および Helmチャートをインストールする権限
アプリ内の手順に従って、Aikidoエージェントをデプロイメント(現在は単一の Podとして稼働)としてデプロイするチャートをインストールしてください。エージェントは数秒で起動し、オンボーディングを完了できるはずです。
既存のクラスタを更新する
Section titled “既存のクラスタを更新する”すでに接続済みのクラスタについて、除外ネームスペースを更新したり、クラスタ内イメージスキャンの有効/無効を切り替えたりできます。
OpenShiftのサポート
Section titled “OpenShiftのサポート”Aikidoはオンプレミスまたはマネージド環境で稼働する OpenShift Container Platformを含む、OpenShiftクラスタを完全にサポートしています。エージェントと SBOMコレクターは他の Kubernetesディストリビューションと同様に動作しますが、以下に示すいくつかの OpenShift固有の統合や考慮事項があります。
イメージミラーの解決
Section titled “イメージミラーの解決”OpenShiftでは(Quayや内部レジストリなどを介した)イメージミラーが一般的に使用されます。Aikidoはこれらのマッピングを自動的に解決し、イメージがミラー参照ではなく元のソースイメージを使ってレポートおよび相関付けされるようにします。
これを実現するため、エージェントはクラスタから以下を含む OpenShiftイメージミラー設定を読み取ります。
ImageContentSourcePoliciesImageDigestMirrorSetsImageTagMirrorSets
これにより、正確なイメージ識別と脆弱性の相関付けが保証され、UI内での重複や誤解を招くイメージエントリを回避できます。
カスタムCA証明書
Section titled “カスタムCA証明書”一部の OpenShiftクラスタは、カスタムまたは内部の認証局に依存しています。Aikidoは追加の CA証明書をマウントできるようにすることで、これをサポートしています。
Helmチャートでは以下が可能です。
- 追加のボリュームとボリュームマウントの追加
SSL_CERT_FILEやSSL_CERT_DIRなどの標準的な環境変数を使用して、エージェントにカスタムトラストバンドルを指定する
イメージプルシークレット
Section titled “イメージプルシークレット”デフォルトでは、Aikidoは RBAC権限を使用してコンテナイメージにアクセスできます。これが最もシンプルな設定であり、Aikidoネームスペースにレジストリ認証情報をコピーする必要がありません。
RBACベースのアクセスが望ましくない、または不可能な環境向けに、エージェントはイメージプルシークレットを直接マウントすることもサポートしています。これにより、レジストリ認証情報を明示的に制御でき、より制約の厳しい OpenShift環境で役立ちます。
どちらのアプローチもサポートされており、機能的には同等です。クラスタのセキュリティおよび運用モデルに最も適したものを選択してください。
よくある質問
Section titled “よくある質問”1. Aikidoエージェントはクラスタ内で何ができますか?
Section titled “1. Aikidoエージェントはクラスタ内で何ができますか?”Aikidoエージェントは Kubernetesリソースの読み取りのみが可能です。さらに、自己管理のために必要な最小限の権限が自身のネームスペースに限定して付与されています。付与されている権限はHelmチャートで確認できます。
2. Aikidoエージェントはクラスタにどのようなパフォーマンス影響を与えますか?
Section titled “2. Aikidoエージェントはクラスタにどのようなパフォーマンス影響を与えますか?”エージェントの唯一の目的は、Kubernetesクラスタからリソースを収集することです。そのため、エージェントのリソース使用量は無視できるほど小さくなります。Helmチャートのインストール時にリソースリクエストと制限をカスタマイズできます。
3. クラスタは公開されている必要がありますか?
Section titled “3. クラスタは公開されている必要がありますか?”いいえ。トラフィックはエージェントから Aikidoプラットフォームへの一方向のみです。
4. Aikidoエージェントに関して何かメンテナンスが必要ですか?
Section titled “4. Aikidoエージェントに関して何かメンテナンスが必要ですか?”いいえ。エージェントの新しいバージョンをリリースすると、自動的に自己更新されます。なお、エージェントは自身のデプロイメントとシークレットのみを更新/パッチできます。
5. Aikidoエージェントは Kubernetesのシークレットを読み取りますか?
Section titled “5. Aikidoエージェントは Kubernetesのシークレットを読み取りますか?”いいえ。イメージプルシークレット(イメージスキャン用)を除き、Kubernetesシークレットへのアクセス権はありません。このシークレットへのアクセスは特定のシークレットのみに制限することができます。
6. Aikidoエージェントがプラットフォームと通信できない場合はどうなりますか? 無限に再試行し続けますか?
Section titled “6. Aikidoエージェントがプラットフォームと通信できない場合はどうなりますか? 無限に再試行し続けますか?”エージェントはリソース収集に指数バックオフの仕組みを使用します。Aikidoプラットフォームとの接続を確立できない場合、追加のリソースを消費することなく待機状態になります。