Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
kube-linter — KubeLinter는 Kubernetes YAML 파일과 Helm 차트를 검사하여 해당 파일에 표현된 애플리케이션이 모범 사례를 준수하는지 확인하는 정적 분석 도구입니다. | Kitploit
도구/GitHubGitHub/stackrox/kube-linter
Static AnalysisContainer SecurityConfiguration AuditingCloud SecurityDevSecOpsMisconfiguration
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 모범 사례를 조기에 자주 확인하는 데 도움을 주기 위한 것입니다. 여기에는 컨테이너를 비루트 사용자로 실행, 최소 권한 적용, 민감한 정보를 시크릿에만 저장하는 것 등의 일반적인 예가 포함됩니다.

KubeLinter는 구성 가능하므로 조직 내에서 따르려는 정책에 따라 검사를 활성화/비활성화하고 사용자 지정 검사를 만들 수 있습니다.

린트 검사가 실패하면 KubeLinter는 잠재적인 문제를 해결하는 방법에 대한 권장 사항을 보고하고 0이 아닌 종료 코드를 반환합니다.

문서

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 린트

가장 기본적인 형태로 KubeLinter를 실행하여 YAML 파일을 린트하려면 두 단계만 거치면 됩니다.

  1. 보안 및 프로덕션 운영 준비 모범 사례를 테스트하려는 YAML 파일을 찾습니다:

  2. 다음 명령을 실행합니다:

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

예시

다음 샘플 Pod 사양 파일 pod.yaml을 고려해 보세요. 이 파일에는 프로덕션 운영 준비와 관련된 두 가지 문제와 보안 문제 하나가 있습니다:

보안 문제:

  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로 복사하고 다음 명령을 실행하여 이 파일을 린트합니다:

    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는 단일 실행에서 여러 출력 형식을 생성할 수 있습니다. 이는 사람이 읽을 수 있는 보고서와 기계가 읽을 수 있는 보고서를 동시에 생성할 때 유용합니다:

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 형식 보고서를 생성합니다
  • 파일을 한 번만 처리하므로 효율성이 향상됩니다

참고: 여러 형식을 사용하려면 명시적인 --output 플래그가 필요합니다. 단일 형식을 stdout으로 출력하려면 --output 없이 --format 플래그 하나만 사용하세요.

여러 출력 형식 사용에 대한 자세한 내용은 문서를 참조하세요.

KubeLinter 사용 및 구성에 대해 자세히 알아보려면 문서 페이지를 방문하세요.

소개/튜토리얼

다음은 사용자가 작성한 KubeLinter 튜토리얼입니다. 이 목록에 추가하고 싶은 항목이 있으면 PR을 보내주세요!

  • KubeLinter를 사용하여 YAML 모범 사례 보장 - civo.com의 Saiyam Pathak 작성.
  • KubeLinter로 Kubernetes 파일에서 오류 분석 - opensource.com의 Jessica Cherry 작성.
  • KubeLinter에 새 검사를 추가하는 방법은 무엇인가요? - Priyanka Saggu 작성.
  • 사용자 지정 템플릿을 구축하도록 kube-linter 확장 - Gareth Healy 작성.

라이선스

KubeLinter는 Apache License 2.0에 따라 라이선스가 부여됩니다.

커뮤니티

유지 관리자 및 다른 사용자를 포함한 KubeLinter 커뮤니티에 참여하려면 Slack 워크스페이스에 여기에서 가입할 수 있습니다.

향후 명령 사용법, 플래그 및 구성 파일 형식에 호환성이 깨지는 변경 사항이 있을 수 있습니다. 그러나 환경 YAML 파일을 테스트하고 무엇이 깨지는지 확인한 후 기여하기 위해 KubeLinter를 사용하는 것이 좋습니다.

참고로, KubeLinter 커뮤니티의 모든 참여는 행동 강령의 적용을 받습니다.


KubeLinter는 StackRox가 ❤️를 담아 만들었으며, 현재는 Red Hat이 지원합니다.

도구 다운로드