Kubescape は ARMO によるオープンソースの Kubernetes セキュリティポスチャ管理プラットフォーム (CNCF インキュベーティングプロジェクト)。IDE、CI/CD パイプライン、実行中のクラスタ全体で、リスク分析、コンプライアンススキャン、構成ミス検出、脆弱性スキャンを提供する。
| Command | Description |
|---|
curl -s https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | bash | 最新版をインストール (macOS/Linux) |
brew install kubescape | Homebrew経由でインストール (macOS) |
scoop install kubescape | Scoop経由でインストール (Windows) |
docker run -it kubescape/kubescape:latest kubescape --help | Dockerで Kubescape を実行 |
kubescape version | インストール済みバージョンを表示 |
kubescape download | フレームワークとポリシーをダウンロード |
kubescape download --frameworks | 全フレームワークをダウンロード |
| Command | Description |
|---|
kubescape scan | kubeconfig を使用して現在のクラスタをスキャン |
kubescape scan --kubeconfig /path/to/kubeconfig | 特定の kubeconfig でクラスタをスキャン |
kubescape scan -f manifest.yaml | YAML マニフェストファイルをスキャン |
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) |
| Command | Description |
|---|
kubescape scan framework nsa | NSA-CISA Kubernetes 強化ガイドに対してスキャン |
kubescape scan framework cis | CIS Kubernetes ベンチマークに対してスキャン |
kubescape scan framework mitre | MITRE ATT&CK フレームワークに対してスキャン |
kubescape scan framework pci-dss | PCI-DSS コンプライアンスに対してスキャン |
kubescape scan framework soc2 | SOC2 コンプライアンスに対してスキャン |
kubescape scan framework hipaa | HIPAA コンプライアンスに対してスキャン |
kubescape scan -f manifest.yaml -f nsa,cis,mitre | 複数フレームワークに対してマニフェストをスキャン |
kubescape scan --list-frameworks | 利用可能な全フレームワークをリスト |
| Command | Description |
|---|
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 | 反復実行のためイメージスキャンをキャッシュ |
| Command | Description |
|---|
kubescape scan -o json > report.json | 結果を JSON として出力 |
kubescape scan -o pdf > report.pdf | PDF レポートを生成 |
kubescape scan -o html > report.html | HTML レポートを生成 |
kubescape scan -o sarif > report.sarif | SARIF 形式で出力 (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 結果をフィルタ |
| Command | Description |
|---|
kubescape scan --fail-threshold 80 | リスクスコアが 80 未満の場合パイプラインを失敗させる |
kubescape scan --fail-threshold 70 --severity critical | 重大な結果でパイプラインをゲート |
kubescape scan -f manifest.yaml --fail-threshold 85 -o sarif | SARIF を生成して 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.*'
}
}
| Command | Description |
|---|
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 | オフラインディレクトリスキャン |
| Command | Description |
|---|
kubescape config | 現在の構成を表示 |
kubescape config set <key> <value> | 構成値を設定 |
kubescape config get <key> | 構成値を取得 |
kubescape config -p ~/.kubescape/config | カスタム設定ファイルパスを使用 |
kubescape scan -c ./custom-config.yaml | カスタム設定でスキャン |
| Command | Description |
|---|
kubescape operator install | クラスタに Kubescape operator をインストール |
kubescape operator install --namespace kubescape | 特定のネームスペースに operator をインストール |
kubescape operator uninstall | Kubescape operator を削除 |
kubectl get deployment -n kubescape | operator のインストールを確認 |
kubectl logs -n kubescape -l app=kubescape-operator | operator ログを表示 |
kubescape operator status | operator ステータスを確認 |
| Command | Description |
|---|
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 nsa | NSA フレームワークのコントロールをリスト |
{
"exceptions": [
{
"ruleID": "C-0001",
"namespace": "test-namespace",
"resources": ["deployment/test-app"],
"justification": "Development environment exemption"
}
]
}
| Command | Description |
|---|
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 | タイムアウトを設定 (秒) |
| Practice | Description |
|---|
| マニフェストのバージョン管理 | 常に 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 で各コントロールの目的を理解 |