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