kube-branch는 CIS Kubernetes Benchmark를 기반으로 k8s 환경이 보안적으로 안전한지 검토해주는 툴입니다. CIS Kubernetes Benchmark에 대해 궁금하시다면 여기서 확인해보세요.

kube-bench를 사용하는 이유

kube-bench는 공식 레파지토리에서 배포하는 Job yaml 파일 또는 Docker 이미지를 실행하는 것만으로도 CIS Kubernetes Benchmark 검토를 쉽게 수행할 수 있고, Benchmark 결과도 바로 확인할 수 있기 때문에 많이 사용됩니다.

kube-bench 실행 방법

컨테이너 이미지로 실행

  • k8s 환경에서 아래 명령어로 kube-bench의 Docker 이미지를 실행합니다.
    • docker run --pid=host -v /etc:/etc:ro -v /var:/var:ro -t docker.io/aquasec/kube-bench:latest --version 1.28
    • 이때 --version은 현재 검토하려는 k8s 클러스터의 버전을 명시합니다.
  • 명령어를 실행하면 kube-bench의 공식 Docker 이미지를 통해 CIS Benchmark 검토가 진행되며, 완료 시 검토 결과를 바로 확인할 수 있습니다.

k8s Job Object로 실행

  • k8s 환경에서 kube-bench 공식 레파지토리에서 제공하는 Job yaml 파일을 가져옵니다. (파일 링크)
  • 가져온 yaml 파일을 이용해 kube-bench를 실행하는 k8s Job을 아래 명령어로 클러스터에 배포합니다.
    • kubectl apply -f {가져온 yaml 파일 이름}.yaml
  • 배포한 Job 실행이 완료되었다면 아래 명령어로 Benchmark 검토 결과를 확인할 수 있습니다.
    • kubectl logs {배포한 Job의 Pod 이름}

kube-bench의 실행 결과

stUxTUM.png

kube-bench를 원하는 방법으로 실행하고나면, 위 이미지와 같은 검토 결과를 얻을 수 있습니다. 각 카테고리 별로 CIS 보안 사항에 대한 검토 결과를 확인할 수 있으며, 현재 보안 사항이 준수되고 있는지의 여부(PASS/FAIL)와 보안 사항의 세부 설명에 대해서도 확인 가능합니다.

References