본문 바로가기

Kubernetes

[Kubernetes] kube-bench란?

반응형

kube-bench는 Kubernetes 클러스터의 보안 설정을 자동으로 검사해주는 오픈소스 도구로, CIS (Center for Internet Security) Benchmarks를 기준으로 클러스터 컴포넌트의 설정을 점검합니다.

🔍 kube-bench 개요

도구 이름 kube-bench
제작사 Aqua Security
목적 Kubernetes 클러스터의 보안 설정을 CIS 기준으로 점검
기준 문서 CIS Kubernetes Benchmark
오픈소스 GitHub: https://github.com/aquasecurity/kube-bench

🛡️ 무엇을 검사하나요?

kube-bench는 Kubernetes의 주요 구성요소를 검사합니다:

  1. API Server
  2. kubelet
  3. kube-controller-manager
  4. kube-scheduler
  5. etcd
  6. 노드 구성 (/etc/kubernetes/manifests)

검사항목은 다음과 같은 설정의 존재 및 값을 확인합니다:

--anonymous-auth=false API 서버에서 익명 인증 비활성화
--authorization-mode=RBAC 권한 제어 방식이 RBAC인지 확인
--protect-kernel-defaults=true kubelet의 커널 보안 설정 여부

🚀 실행 방법

1. 실행 환경

  • 컨트롤 플레인 노드에서 실행해야 제대로 된 결과를 얻을 수 있습니다.
  • kube-bench는 실행 시 노드의 역할을 자동 탐지하여 해당하는 체크리스트만 수행합니다.

2. 실행 명령 (컨트롤 플레인에서)

$ curl -L https://github.com/aquasecurity/kube-bench/releases/latest/download/kube-bench_$(uname -s)_amd64.tar.gz | tar xz
$ ./kube-bench

 

또는 Kubernetes 클러스터에서 Job으로 실행:

$ kubectl apply -f https://raw.githubusercontent.com/aquasecurity/kube-bench/main/job.yaml

📋 결과 예시

[INFO] 1 Master Node Configuration
[PASS] 1.1 Ensure that the API server pod specification file permissions are set to 644 or more restrictive
[FAIL] 1.2 Ensure that the API server pod specification file ownership is set to root:root
[WARN] 1.3 Ensure that the --anonymous-auth argument is set to false

 

각 항목마다 PASS / FAIL / WARN / INFO 상태로 결과를 보여줍니다.

🔄 커스터마이징

  • cfg 폴더에 있는 YAML 파일을 수정하여 클러스터 버전/환경에 맞는 검사 기준을 커스터마이징 할 수 있습니다.
  • 예: 클라우드 매니지드 Kubernetes (EKS, GKE 등)는 일부 체크가 불가능하거나 의미 없는 경우가 있음

✅ 요약

목적 Kubernetes 보안 구성 점검
기준 CIS Kubernetes Benchmark
실행 위치 Kubernetes 노드 (특히 마스터 노드)
결과 PASS / FAIL / WARN / INFO 형태의 리포트
활용 보안 점검, 컴플라이언스, 감사 대응 등

 

반응형