CIS Benchmark란, 사이버 보안 향상을 위해 활동하는 국제 조직 Center of Internet Security에서 제안하는 IT 인프라 보안 관련 우수 사례 및 가이드라인을 의미합니다. 현재 다양한 종류의 CIS Benchmark가 존재하며, 이 중 Kubernetes와 관련된 것이 CIS Kubernetes Benchmark입니다.
CIS Kubernetes Benchmark의 목적
- Kubernetes에 적합한 보안 가이드라인을 기업과 조직에게 제공하여, 현재 알려져있는 Kubernetes 관련 취약점과 부적절한 설정(Misconfiguration)으로부터 안전한 Kubernetes 환경을 구축하는 것입니다.
- 기업 내 엔지이너의 입장에선 일정한 툴을 사용하는 것만으로 Kubernetes 클러스터가 CIS Benchmark에서 권장하는 기준에 부합하는지 확인하고 적절한 조치를 취할 수 있게 됩니다.
CIS Kubernetes Benchmark에서 다루는 범위
- Kubernetes 클러스터 설정
- Worker Node 설정
- Network Policy
- Role-Based Access Control (RBAC)
- Secret 관리
- Logging 및 Monitoring
- Pod 보안 정책
- 컨테이너 보안
CIS Kubernetes Benchmark의 구성 요소
Benchmark는 다수의 권장 사항으로 구성되어 있습니다. 그리고 각 사항의 검토 결과는 아래 4가지 속성을 가지고 있습니다.
-
Scoring
Scored
: 권장 사항이Scored
라면, 해당 권장 사항을 준수하지 못할 경우 최종 Benchmark 점수가 감소합니다.Not Scored
: 권장 사항이Not Scored
라면, 해당 권장 사항을 준수하지 못해도 최종 Benchmark 점수는 감소하지 않습니다.
-
Levels
Level 1
: 명확한 보안 이점을 제공하거나, 기능성을 제한하지 않는 권장 사항이라는 뜻입니다.Level 2
:Level 1
의 확장된 수준입니다. 심층적이거나 기능성에 부정적인 영향을 줄 수도 있는 권장 사항을 의미합니다.
-
Results
Pass
: 권장 사항을 준수했음을 의미합니다.Fail
: 권장 사항을 준수하지 못함을 의미합니다.
-
Responsibility
- 권장 사항을 준수해야 하는 주체를 의미합니다.
- 주로 조직(
Organization
)으로 명시되지만, 특정 경우에는 서비스 제공자(vendor
) 등이 명시되기도 합니다.
CIS Kubernetes Benchmark 툴
가장 보편적으로 쓰이는 툴은 kube-bench
입니다.
kube-bench
는 해당 레파지토리에서 제공하는 yaml 파일을 받아온 뒤, 검토를 원하는 Kubernetes 클러스터 안에서Job
object로 실행하는 방식입니다.- 실행한
Job
이 완료되면 해당Pod
의 로그로 Benchmark 검토 결과를 확인할 수 있습니다.