KubeLinter 적용 사례 보기
이 핸즈온 데모에서 커맨드라인 툴이 어떤 방식으로 작동하는지 알아보세요.
KubeLinter를 사용해야 하는 이유
K8로도 알려진 쿠버네티스는 컨테이너화된 애플리케이션을 배포, 관리, 확장하는 기능으로 인해 널리 사용되고 있지만 컨테이너 보안 유지 기능은 잘 알려져 있지 않습니다. 쿠버네티스 구성은 일반적으로 YAML 파일에도 정의되어 있습니다. 이 파일은 인간이 읽을 수 있지만 이해하기 어렵고 규모에 따라 유효한 구성을 산출합니다. 복잡한 YAML에서 이루어지는 정적 검증만으로는 보안 문제를 노출시킬 수 있는 오류 및 위반을 쉽게 알아낼 수 없습니다.
따라서 보안이 필수적입니다.
Red Hat의 2021년 쿠버네티스 도입, 보안 및 시장 동향 보고서에 따르면 설문조사에 응한 조직 중 절반 이상이 보안상의 우려로 인해 쿠버네티스 애플리케이션을 프로덕션 단계로 배포하는 작업을 연기했다고 답했습니다. 그리고 94%는 2020년에 하나 이상의 쿠버네티스 관련 보안 인시던트를 경험하였습니다. 이는 주로 사람의 실수에 기인한 것으로, 보고된 사례 중 약 67%는 수동 입력 시 발생하는 구성 오류가 원인이었습니다.
KubeLinter는 바로 이러한 문제를 해결할 수 있습니다.
2021년 초 Red Hat이 인수하기 직전인 2020년 말에 StackRox가 만든 lint 툴은 개발 프로세스 초기에 쿠버네티스 배포 전반에 걸쳐 보안 오류를 방지하고 구성의 정확도를 높이기 위해 특별히 설계되었습니다. 이 툴은 구성 파일 검사를 수행하며 지속적 통합(CI) 시스템과 함께 사용해 YAML 파일 및 Helm 차트 업데이트 프로세스를 간소화하고 DevSecOps 모범 사례를 사용합니다.
Apache 2.0 라이센스에 따라 제공되는 오픈소스 툴인 KubeLinter를 통해 오픈 소스 커뮤니티에 속한 모든 사용자는 프로젝트에 기여할 수도 있습니다.
KubeLinter는 어떤 방식으로 작동할까요?
배포 전에 쿠버네티스 클러스터가 올바르게 설정되어 있는지, 프로그래밍 버그가 수정되었는지 확인하기 위해 KubeLinter는 차트에 접근하여 차트 형식이 올바른지, 오류는 없는지 확인합니다. 그런 다음, 차트로 인한 설치 장애의 원인으로 찾아낸 모든 항목에 대해 lint 오류 메시지, 또는 보안 모범 사례에 부합하지 않는 모든 항목에 대해 경고 메시지를 전송합니다.
또한 KubeLinter는 손쉽게 실행할 수 있도록 설계되었습니다. KubeLinter는 컨테이너를 사용자로 실행하고, 선택기를 잘못 연결하고, 민감한 데이터를 암호로만 저장하는 등 일반적인 K8 구성 오류에 대한 40가지의 기본 제공 lint 검사로 사전 패키징하여 제공됩니다. 사용자 정의 검사 구성을 지원하여 사용자가 구성을 코드로 취급할 수 있으므로 애플리케이션 개발 프로세스에 보안을 훨씬 더 일찍 구축할 수 있습니다.
KubeLinter 구성
KubeLinter은 고도의 맞춤형 구성이 가능합니다. 사용자는 최소한의 워크플로우 변경으로 자신만의 사용자 정의 룰을 생성, 활성화 및 비활성화하고 구성 오류와 보안 위반에 대해 거의 즉각적으로 피드백을 제공할 수 있습니다.
KubeLinter는 GitHub Action, Jenkins, CircleCI, Travis CI 등 모든 지속적 통합/지속적 제공(CI/CD) 툴에 추가할 수 있으며 애플리케이션 구성 시 오류를 자동으로 점검하여 식별할 수 있습니다. 이는 개발자의 문제 해결에 도움이 되며, 개발자는 프로덕션 파이프라인 전반에서 문제를 자동으로 파악할 수 있습니다.
KubeLinter 기본 검사는 보안 중심이므로 보안 수준을 낮춰 쿠버네티스를 구성하고 싶은 경우 사용자가 수동으로 선택해야 합니다.
KubeLinter는 다운로드하여 설치하는 데 몇 분이 걸립니다. 사람이 읽을 수 있는 Go 프로그래밍 언어를 사용해 독립적인 바이너리로 개발되었으므로 kubectl과 비슷하며 몇 개의 동일한 패키지로 구성되어 있습니다.
KubeLinter를 설치하려면 Go를 사용해 로컬에서 커맨드라인 인터페이스(CLI)를 빌드하거나, 사전 구축된 Docker 컨테이너를 사용하거나, Homebrew를 사용해 설치하거나, 소스 코드에서 직접 빌드할 수 있습니다. 설치한 후에는 툴을 Helm 차트 및 쿠버네티스 YAML 파일로 유도하여 거의 즉시 결과를 얻을 수 있습니다.
오픈소스 툴이므로 개발자는 추가 개발 과정에서 KubeLinter의 요소가 변경될 것을 기대할 수 있으며 기대해야 합니다. 구성 파일 형식, 플래그, 명령 용도 등이 변경될 수 있습니다.