コンテンツにスキップ

Kubescape

Kubescape は ARMO によるオープンソースの Kubernetes セキュリティポスチャ管理プラットフォーム (CNCF インキュベーティングプロジェクト)。IDE、CI/CD パイプライン、実行中のクラスタ全体で、リスク分析、コンプライアンススキャン、構成ミス検出、脆弱性スキャンを提供する。

CommandDescription
curl -s https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | bash最新版をインストール (macOS/Linux)
brew install kubescapeHomebrew経由でインストール (macOS)
scoop install kubescapeScoop経由でインストール (Windows)
docker run -it kubescape/kubescape:latest kubescape --helpDockerで Kubescape を実行
kubescape versionインストール済みバージョンを表示
kubescape downloadフレームワークとポリシーをダウンロード
kubescape download --frameworks全フレームワークをダウンロード
CommandDescription
kubescape scankubeconfig を使用して現在のクラスタをスキャン
kubescape scan --kubeconfig /path/to/kubeconfig特定の kubeconfig でクラスタをスキャン
kubescape scan -f manifest.yamlYAML マニフェストファイルをスキャン
kubescape scan -f *.yaml複数のマニフェストファイルをスキャン
kubescape scan -d ./k8s-configs/ディレクトリ内の全マニフェストをスキャン
kubescape scan --helm /path/to/chartデプロイ前に Helm チャートをスキャン
kubescape scan --include-namespaces default,kube-system特定のネームスペースのみをスキャン
kubescape scan --exclude-namespaces kube-node-leaseスキャンからネームスペースを除外
kubescape scan --severity high,critical重大度が高い/重大な問題のみを表示
kubescape scan --pod-runtime containerdコンテナランタイムを指定 (docker, containerd, cri-o)
CommandDescription
kubescape scan framework nsaNSA-CISA Kubernetes 強化ガイドに対してスキャン
kubescape scan framework cisCIS Kubernetes ベンチマークに対してスキャン
kubescape scan framework mitreMITRE ATT&CK フレームワークに対してスキャン
kubescape scan framework pci-dssPCI-DSS コンプライアンスに対してスキャン
kubescape scan framework soc2SOC2 コンプライアンスに対してスキャン
kubescape scan framework hipaaHIPAA コンプライアンスに対してスキャン
kubescape scan -f manifest.yaml -f nsa,cis,mitre複数フレームワークに対してマニフェストをスキャン
kubescape scan --list-frameworks利用可能な全フレームワークをリスト
CommandDescription
kubescape scan image gcr.io/project/image:tag脆弱性についてコンテナイメージをスキャン
kubescape scan image --image-scan-concurrency 5 image1 image2複数のイメージを同時にスキャン
kubescape scan -f manifest.yaml --include-image-scanningマニフェストと参照されるイメージをスキャン
kubescape scan image --severity critical --only-vulnerabilities重大な脆弱性のみを表示
kubescape scan image --image-registry-credentials user:pass@registry:5000プライベートレジストリイメージをスキャン
kubescape scan -f manifest.yaml --image-scan-cache反復実行のためイメージスキャンをキャッシュ
CommandDescription
kubescape scan -o json > report.json結果を JSON として出力
kubescape scan -o pdf > report.pdfPDF レポートを生成
kubescape scan -o html > report.htmlHTML レポートを生成
kubescape scan -o sarif > report.sarifSARIF 形式で出力 (CI/CDツール用)
kubescape scan -o pretty-json見やすくフォーマットされた JSON 出力
kubescape scan --output-file report.json -o json出力をファイルに保存
kubescape scan -o json | jq '.results[] | select(.severity=="critical")'jq で JSON 結果をフィルタ
CommandDescription
kubescape scan --fail-threshold 80リスクスコアが 80 未満の場合パイプラインを失敗させる
kubescape scan --fail-threshold 70 --severity critical重大な結果でパイプラインをゲート
kubescape scan -f manifest.yaml --fail-threshold 85 -o sarifSARIF を生成して GitHub Actions でゲート
kubescape scan --fail-on-compliance-failureコンプライアンスフレームワークが失敗した場合に失敗
kubescape scan -o json --format-by-severity重大度レベル別にグループ化して出力
- name: Run Kubescape security scan
  uses: kubescape/github-action@v2
  with:
    kubeconfig: ${{ secrets.KUBECONFIG }}
    frameworks: nsa,cis
    fail-threshold: 80
    output-format: sarif
    output-file: kubescape-report.sarif

- name: Upload SARIF to GitHub Security
  uses: github/codeql-action/upload-sarif@v2
  with:
    sarif_file: kubescape-report.sarif
kubescape_scan:
  stage: security
  image: kubescape/kubescape:latest
  script:
    - kubescape scan framework nsa --fail-threshold 80 -o sarif > report.sarif
    - kubescape scan framework cis --fail-threshold 75 -o json > cis-report.json
  artifacts:
    reports:
      sast: report.sarif
    paths:
      - cis-report.json
stage('Security: Kubescape') {
    steps {
        sh '''
            kubescape scan -f k8s-manifests/ \
              --fail-threshold 80 \
              -o sarif > kubescape-report.sarif \
              -o json > kubescape-report.json
        '''
        archiveArtifacts artifacts: '*-report.*'
    }
}
CommandDescription
kubescape download --output-dir ./offline-dataローカルディレクトリに全フレームワークをダウンロード
kubescape download --frameworks nsa,cis --output-dir ./fw特定フレームワークをオフラインでダウンロード
kubescape scan -f manifest.yaml --offline --frameworks-dir ./offline-dataダウンロード済みフレームワークを使用してスキャン
kubescape scan -d manifests/ --offline --frameworks-dir ./offline-dataオフラインディレクトリスキャン
CommandDescription
kubescape config現在の構成を表示
kubescape config set <key> <value>構成値を設定
kubescape config get <key>構成値を取得
kubescape config -p ~/.kubescape/configカスタム設定ファイルパスを使用
kubescape scan -c ./custom-config.yamlカスタム設定でスキャン
CommandDescription
kubescape operator installクラスタに Kubescape operator をインストール
kubescape operator install --namespace kubescape特定のネームスペースに operator をインストール
kubescape operator uninstallKubescape operator を削除
kubectl get deployment -n kubescapeoperator のインストールを確認
kubectl logs -n kubescape -l app=kubescape-operatoroperator ログを表示
kubescape operator statusoperator ステータスを確認

コントロールと例外のカスタマイズ

Section titled “コントロールと例外のカスタマイズ”
CommandDescription
kubescape scan --exceptions exceptions.json例外ルールをスキャンに適用
kubescape scan --enable-controls <control-id>特定のコントロールを有効化
kubescape scan --disable-controls <control-id>特定のコントロールを無効化
kubescape scan --controls <id1>,<id2>指定されたコントロールのみを実行
kubescape scan --list-controls利用可能な全コントロールをリスト
kubescape scan --list-controls --framework nsaNSA フレームワークのコントロールをリスト
{
  "exceptions": [
    {
      "ruleID": "C-0001",
      "namespace": "test-namespace",
      "resources": ["deployment/test-app"],
      "justification": "Development environment exemption"
    }
  ]
}
CommandDescription
kubescape scan --verbose詳細なデバッグ出力を表示
kubescape scan --log-level debugログレベルを設定 (debug, info, warn, error)
kubescape scan --submitスキャン結果を Kubescape Cloud に送信
kubescape scan --account <account-id>特定のクラウドアカウントに送信
kubescape scan --keep-localクラウドに送信せずにスキャン
kubescape scan --max-workers 10並列処理ワーカーを制御
kubescape scan --timeout 300タイムアウトを設定 (秒)
PracticeDescription
マニフェストのバージョン管理常に Kubernetes マニフェストをバージョン管理; デプロイ前にスキャン
リスクスコアでゲートCI/CD で --fail-threshold を設定; 組織のリスク許容度に応じて 75-85 を使用
マルチフレームワークスキャンNSA + CIS + MITRE を使用; 優先度の最も高い結果から対処
定期的なイメージスキャンサプライチェーンのコンテナイメージをスキャン; CVE を早期に検出
ネームスペース分離--include-namespaces を使用してスキャンに焦点; システムネームスペースを除外
セキュアな環境でのオフラインエアギャップクラスタの場合フレームワークをオフラインダウンロード
時間経過に伴う監視スキャン全体でリスクスコアを追跡; 回帰を調査
例外の正当化例外を文書化; 削除のため定期的に見直し
Helm デプロイ前Helm インストール前にチャートで kubescape scan --helm を実行
RBAC を有効化ServiceAccount が最小必要権限を持っていることを確認
SARIF 出力を使用SARIF レポートを IDE、GitHub、SIEM システムに統合
コントロール詳細をレビューkubescape scan --list-controls で各コントロールの目的を理解