|
KubeLinterは、Kubernetesオブジェクトの設定ミスを特定するためのオープンソースの静的解析ツールです。KubeLinterは、Kubernetes YAMLファイルとHelm Chartsに対してセキュリティ検査を実行し、クラスター設定がセキュリティのベストプラクティスに準拠しているかどうかを検証する機能を提供します。組み込みの検査機能は、設定ミスやKubernetesポリシー違反に関するフィードバックを提供します。これにより、開発者の生産性が向上し、DevOpsおよびDevSecOpsプロセスにSecurity as Codeが統合され、Kubernetesアプリケーションに強化されたセキュリティポリシーが自動的に適用されるようになります。 KubeLinterはYAMLファイルとHelm Chartsを分析し、Kubernetesネイティブのセキュリティチェックを実行して、権限昇格、設定ミス、一般的なベストプラクティス違反を特定します。KubeLinterは、コマンドラインまたはCIパイプラインの一部として使用されるGoベースのバイナリで、Kubernetes設定の変更を許可する前に開発者に必要なセキュリティチェックを提供します。現在、CLIには以下を含む19のセキュリティチェックが組み込まれています。
KubeLinterをインストールするGoを使用してインストール
あるいは、リリース ページ (https://github.com/stackrox/kube-linter/releases/tag/0.2.2) から最新のバイナリ ファイルを直接ダウンロードし、PATH に追加することもできます。 brewを使用してインストールするmacOS では Homebrew、Linux では LinuxBrew を使用してインストールします。
KubeLinterの使用KubeLinter を実行して YAML ファイルを lint するには、次の 2 つの基本的な手順だけが必要です。 1. セキュリティと本番環境に対応したベスト プラクティスをテストする YAML ファイルを見つけます。 2. コマンド kube-linter lint /path/to/your/yaml.yaml を実行します。 たとえば、次の pod.yaml リソース ファイルにはいくつかの問題があります。 秘密の質問1. このポッド内のコンテナは読み取り専用ファイル システムとして実行されていないため、ルート ファイル システムへの書き込みが許可される可能性があります。 生産準備完了1. コンテナの CPU 制限が設定されていないため、CPU が過剰に消費される可能性があります。 2. コンテナのメモリ制限が設定されていないため、メモリが過剰に消費される可能性があります。
3. 上記の pod.yaml ファイルをコピーし、次のコマンドを実行して linting を実行します。
4. KubeLinter でデフォルトのチェックを実行すると、次の結果が出力されます。
|