Containers illustration
セクションを選択

KubeLinter とは

URL をコピー

KubeLinter は、オープンソースの静的分析ツール (lint または linter とも呼ばれる) であり、Kubernetes デプロイメントの構成ミスとプログラミングエラーを特定します。コマンドラインツールは、YAML ファイルHelm チャートを Kubernetes の構成セキュリティのベストプラクティスに照らして自動的に分析します。

KubeLinter の動作を見る

コマンドラインツールがどのように機能するか、この実践的なデモでご覧ください。

Kubernetes (K8s とも呼ばれる) は、コンテナ化されたアプリケーションをデプロイ、管理、スケーリングする機能で評価を得ていますが、コンテナを保護する機能はあまり評価されていません。Kubernetes 構成は通常、YAML ファイルでも定義されます。人間は YAML ファイルを読むことができますが、有効な構成を大規模に理解して生成するのは困難です。複雑な YAML での静的検証だけでは、エラーや違反を簡単にキャッチできず、セキュリティ上の問題が生じる可能性があります。

そして、セキュリティは不可欠です。

Red Hat の 2021 年の Kubernetes 導入、セキュリティ、市場動向に関するレポートによると、アンケート回答者の半数以上が、セキュリティ上の懸念から Kubernetes アプリケーションの本番環境へのデプロイを延期したと述べ、また、94% が 2020 年に少なくとも 1 件の Kubernetes に関連するセキュリティインシデントがあったと述べています。これは主にヒューマンエラーによるものであり、報告されたケースの約 67% が手動で入力した構成ミスに起因していました。

そこで KubeLinter の出番です。

lint ツール (2021 年初頭に Red Hat が買収する直前の 2020 年後半に StackRox が作成) は、開発プロセスの開始時点からセキュリティエラーに対処し、Kubernetes デプロイメント全体の構成の正確性を向上することに特化して設計されています。構成ファイルのチェックを実行し、また、継続的インテグレーション (CI) システムで使用すると、DevSecOps のベストプラクティスを取り入れながら、YAML ファイルと Helm チャートを更新するプロセスを単純化できます。

Apache 2.0 ライセンスの下で利用可能なオープンソースツールとして、KubeLinter は、オープンソース・コミュニティ全体のユーザーがプロジェクトに貢献することも許可しています。

Kubernetes クラスタが正しく設定され、デプロイ前にプログラミングのバグが修正されていることを確認するために、KubeLinter はチャートへのパスを取得し、一連のテストを実行して、チャートが整形式でエラーがないことを確認します。次に、チャートのインストール失敗の原因になるものが見つかった場合は lint エラーメッセージを送信し、セキュリティのベストプラクティスに沿っていないものについては警告メッセージを送信します。

また、KubeLinter は容易に実行できるように設計されています。コンテナをユーザーとして実行する、セレクターを不一致にする、機密データをシークレットにのみ保存するなど、よくある K8s の構成ミスに対する 40 の組み込みの lint チェックがあらかじめパッケージ化されています。カスタムチェックの構成をサポートし、ユーザーが構成をコードとして扱うことができるため、アプリケーション開発プロセスのはるかに早い段階でセキュリティを組み込むことができます。

KubeLinter は高度に構成可能です。ユーザーは、ワークフローへの最小限の変更と、構成ミスやセキュリティ違反に関するほぼ瞬時のフィードバックによって、独自のカスタムルールを作成、有効化、および無効化できます。

KubeLinter は、GitHub Action、Jenkins、CircleCI、Travis CI などの継続的インテグレーション/継続的デリバリー (CI/CD) ツールに追加でき、アプリケーション構成のエラーを自動的にチェックして特定することができます。これにより、開発者は修復作業がしやすくなり、本番パイプライン全体で問題を自動的に確認できるようになります。

KubeLinter のデフォルトチェックもセキュリティを中心としているため、安全でない方法で Kubernetes を構成する場合、ユーザーは手動でオプトインしなければなりません。

KubeLinter のダウンロードとインストールには数分かかります。人間が読める形式の Go プログラミング言語を使用して自己完結型のバイナリーとして開発されたもので、kubectl に相当し、いくつかの同じパッケージで作成されています。

KubeLinter をインストールするには、Go を使用してローカルでコマンドライン・インタフェースを構築する、ビルド済みの Docker コンテナを使用する、Homebrew を使用してインストールする、ソースコードから自分で構築するといった方法があります。インストール後、ツールで Helm チャートと Kubernetes YAML ファイルを指定すると、ほぼ即座に結果が得られます。

KubeLinter はオープンソースツールなので、さらに発展するにつれてその基本要素に変更が加えられることを、開発者は期待できますし、また、想定しておく必要があります。構成ファイルの形式、フラグ、コマンドの使用法などが変更される可能性もあります。

関連資料

記事

DevSecOps とは

開発、運用、セキュリティの各チーム間のコラボレーションの重要性を理解します。

ブログ

KubeLinter は CNCF エコシステムにどのように適合するか

コンテナとセキュリティに関連するという観点から、より大規模な Cloud Native Computing Foundation 環境内での KubeLinter の役割を探ります。

e ブック

Kubernetes のセキュリティの現状に関するレポート

DevOps、エンジニアリング、セキュリティの専門家 500 人以上が回答したアンケートの結果から、企業が Kubernetes をどのように導入しているかを確認します。

コンテナの詳細はこちら

新しいアプリケーション、仮想マシン、ハイブリッドクラウドの基盤。

エンタープライズ向け Kubernetes コンテナ・プラットフォーム。

クラウドネイティブ・アプリケーションのより安全な構築、デプロイ、実行を可能にする、エンタープライズ向けの Kubernetes ネイティブのコンテナ・セキュリティ・ソリューション。