Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
kube-linter — KubeLinterは、KubernetesのYAMLファイルとHelmチャートを検査し、それらで表現されたアプリケーションがベストプラクティスに準拠していることを確認する静的解析ツールです。 | Kitploit
ツール/GitHubGitHub/stackrox/kube-linter
静的分析コンテナセキュリティ構成監査クラウドセキュリティDevSecOps設定ミス
GitHubstackrox/kube-linter

kube-linter

KubeLinterは、KubernetesのYAMLファイルとHelmチャートを検査し、それらで表現されたアプリケーションがベストプラクティスに準拠していることを確認する静的解析ツールです。

リポジトリを見る
3.5k2733日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

Kubernetes向け静的解析

Go Report Card

KubeLinterとは?

KubeLinterは、KubernetesのYAMLファイル、Helmチャート、Kustomizeマニフェストを解析し、本番稼働への備えとセキュリティに重点を置いたさまざまなベストプラクティスに照らしてチェックします。

KubeLinterは、KubernetesのYAMLファイル、Helmチャート、Kustomizeマニフェストに関する有用な情報を提供するように設計された、妥当なデフォルトチェックを実行します。これは、チームがセキュリティの誤設定やDevOpsのベストプラクティスを早期に、そして頻繁にチェックできるようにするためです。一般的な例としては、コンテナを非rootユーザーとして実行する、最小権限を強制する、機密情報をシークレットのみに格納する、などがあります。

KubeLinterは設定可能で、組織内で適用したいポリシーに応じて、チェックの有効化・無効化や独自のカスタムチェックの作成ができます。

lintチェックが失敗すると、KubeLinterは潜在的な問題を解決するための推奨事項を報告し、非ゼロの終了コードを返します。

ドキュメント

KubeLinterのインストール、使用方法、設定に関する詳細なドキュメントは、https://docs.kubelinter.io を参照してください。

KubeLinterのインストール

Kube-linterのバイナリは、https://github.com/stackrox/kube-linter/releases/latest にあります。

Goを使用する場合

Goを使用してインストールするには、次のコマンドを実行します。

root@kitploit:~
go install golang.stackrox.io/kube-linter/cmd/kube-linter@latest

あるいは、Releases から最新のバイナリをダウンロードして、PATHに追加してください。

macOSではHomebrew、LinuxではLinuxBrewを使用する場合

HomebrewまたはLinuxBrewを使用してインストールするには、次のコマンドを実行します。

root@kitploit:~
brew install kube-linter

nix-shellを使用する場合

root@kitploit:~
nix-shell -p kube-linter

Dockerを使用する場合

root@kitploit:~
docker pull stackrox/kube-linter:latest

開発

前提条件

  • ソースからビルドする前に、Goをインストールしていることを確認してください。

KubeLinterのビルド

KubeLinterをソースからインストールする手順は、次のとおりです。

  1. 最初に、KubeLinterリポジトリをクローンします。

    root@kitploit:~
    git clone [email protected]:stackrox/kube-linter.git
    
  2. 次に、ソースコードをコンパイルします。これにより、各プラットフォーム向けのkube-linterバイナリファイルが作成され、.gobinフォルダに配置されます。

    root@kitploit:~
    make build
    
  3. 最後に、KubeLinterを使用する準備が整います。バージョンを確認して、KubeLinterが正常にインストールされたことを確認してください。

    root@kitploit:~
    .gobin/kube-linter version
    

KubeLinterのテスト

テストにはいくつかの層があります。各層は合格することが期待されています。

  1. goユニットテスト:

    root@kitploit:~
    make test
    
  2. エンドツーエンド統合テスト:

    root@kitploit:~
    make e2e-test
    
  3. そして最後に、bats-coreを使用したエンドツーエンド統合テスト:

    root@kitploit:~
    make e2e-bats
    

KubeLinterイメージの検証

KubeLinterイメージは、cosignによって署名されています。使用する前にイメージを検証することをお勧めします。

cosignをインストールしたら、KubeLinter公開鍵を使用して、次のコマンドでKubeLinterイメージを検証できます。

root@kitploit:~
cat kubelinter-cosign.pub
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEl0HCkCRzYv0qH5QiazoXeXe2qwFX
DmAszeH26g1s3OSsG/focPWkN88wEKQ5eiE95v+Z2snUQPl/mjPdvqpyjA==
-----END PUBLIC KEY-----


cosign verify --key kubelinter-cosign $IMAGE_NAME

KubeLinterは、cosignキーレス署名も提供しています。

次のコマンドでKubeLinterイメージを検証できます。

root@kitploit:~
# NOTE: Keyless signatures are NOT PRODUCTION ready.

COSIGN_EXPERIMENTAL=1 cosign verify $IMAGE_NAME

KubeLinterの使用方法

ローカルYAMLのLint

KubeLinterを使用してYAMLファイルをLintするには、最も基本的な形式では2つのステップだけが必要です。

  1. セキュリティと本番準備のベストプラクティスをテストしたいYAMLファイルを特定します。

  2. 次のコマンドを実行します。

    root@kitploit:~
    kube-linter lint /path/to/your/yaml.yaml
    

例

次のサンプルのPod仕様ファイルpod.yamlを考えてみましょう。このファイルには、本番準備に関する問題が2つと、セキュリティに関する問題が1つあります。

セキュリティの問題:

  1. このPod内のコンテナは読み取り専用ファイルシステムとして実行されていないため、ルートファイルシステムへの書き込みが可能になる可能性があります。

本番準備:

  1. コンテナのメモリ制限が設定されていないため、過剰なメモリを消費する可能性があります。

    root@kitploit:~
    apiVersion: v1
    kind: Pod
    metadata:
      name: security-context-demo
    spec:
      securityContext:
        runAsUser: 1000
        runAsGroup: 3000
        fsGroup: 2000
      volumes:
      - name: sec-ctx-vol
        emptyDir: {}
      containers:
      - name: sec-ctx-demo
        image: busybox
        resources:
          requests:
            memory: "64Mi"
            cpu: "250m"
        command: [ "sh", "-c", "sleep 1h" ]
        volumeMounts:
        - name: sec-ctx-vol
          mountPath: /data/demo
        securityContext:
          allowPrivilegeEscalation: false
    
  2. 上記のYAMLをpod.yamlにコピーし、次のコマンドを実行してこのファイルをlintします。

    root@kitploit:~
    kube-linter lint pod.yaml
    
  3. KubeLinterはデフォルトのチェックを実行し、推奨事項を報告します。以下は、前のコマンドの出力です。

    root@kitploit:~
    pod.yaml: (object: <no namespace>/security-context-demo /v1, Kind=Pod) The container "sec-ctx-demo" is using an invalid container image, "busybox". Please use images that are not blocked by the `BlockList` criteria : [".*:(latest)$" "^[^:]*$" "(.*/[^:]+)$"] (check: latest-tag, remediation: Use a container image with a specific tag other than latest.)
    
    pod.yaml: (object: <no namespace>/security-context-demo /v1, Kind=Pod) container "sec-ctx-demo" does not have a read-only root file system (check: no-read-only-root-fs, remediation: Set readOnlyRootFilesystem to true in the container securityContext.)
    
    pod.yaml: (object: <no namespace>/security-context-demo /v1, Kind=Pod) container "sec-ctx-demo" has memory limit 0 (check: unset-memory-requirements, remediation: Set memory limits for your container based on its requirements. Refer to https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits for details.)
    
    Error: found 3 lint errors
    

複数の出力形式

KubeLinterは、1回の実行で複数の出力形式を生成できます。これは、人間が読めるレポートと機械が読めるレポートを同時に生成する場合に役立ちます。

root@kitploit:~
kube-linter lint \
  --format sarif --output kube-linter.sarif \
  --format json --output kube-linter.json \
  --config .kube-linter.yaml \
  pod.yaml

このコマンドでは、次のことが行われます:

  • kube-linter.sarifにSARIF形式のレポートを生成する
  • kube-linter.jsonにJSON形式のレポートを生成する
  • ファイルを1回だけ処理するため、効率が向上する

注: 複数の形式を指定する場合は、明示的な--outputフラグが必要です。単一形式をstdoutに出力する場合は、--outputなしで--formatフラグを1つだけ使用します。

複数の出力形式の使用に関する詳細は、ドキュメントを参照してください。

KubeLinterの使用と設定について詳しくは、ドキュメントページを参照してください。

紹介/チュートリアル

以下は、ユーザーによって書かれたKubeLinterのチュートリアルです。このリストに追加したいものがあれば、PRを送ってください!

  • Ensuring YAML best practices using KubeLinter at civo.com by Saiyam Pathak.
  • Analyze Kubernetes files for errors with KubeLinter at opensource.com by Jessica Cherry.
  • How to add a new check in KubeLinter? by Priyanka Saggu.
  • Extending kube-linter To Build A Custom Template by Gareth Healy.

ライセンス

KubeLinterは、Apache License 2.0の下でライセンスされています。

コミュニティ

メンテナや他のユーザーを含むKubeLinterコミュニティに参加したい場合は、こちらのSlackワークスペースに参加できます。

コマンドの使用方法、フラグ、設定ファイルの形式には、将来、破壊的な変更が加えられる可能性があります。ただし、KubeLinterを使用して環境のYAMLファイルをテストし、何が壊れるかを確認し、貢献することをお勧めします。

注意として、KubeLinterコミュニティへのすべての参加は、行動規範に従うものとします。


KubeLinterは、StackRoxによって❤️を込めて作られ、現在はRed Hatによって支えられています。

ツールをダウンロード