Kubescape는 ARMO의 오픈소스 쿠버네티스 보안 자세 관리 플랫폼 (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 쿠버네티스 강화 가이드에 대해 스캔 |
kubescape scan framework cis | CIS 쿠버네티스 벤치마크에 대해 스캔 |
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 | GitHub Actions에서 SARIF 생성 + 차단 |
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 |
|---|
| 버전 관리 매니페스트 | 항상 쿠버네티스 매니페스트 버전 관리; 배포 전 스캔 |
| 리스크 스코어에서 차단 | 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를 사용하여 각 컨트롤의 목적 이해 |