본문 바로가기

AWS/EKS

[EKS] AWS EKS 환경에서 kube-bench 활용하는 방법

반응형

Amazon EKS(Amazon Elastic Kubernetes Service)에서는 kube-bench를 사용할 수 있지만, 관리형 컨트롤 플레인 제약 때문에 몇 가지 주의사항과 한계가 있습니다. 아래에 EKS 환경에서 kube-bench를 효율적으로 활용하는 방법을 정리했습니다.

대상 점검 가능 여부 설명
노드(Worker) 가능 EC2 기반 워커 노드에서 직접 실행
컨트롤 플레인 불가 AWS가 관리하므로 접근 불가
kubelet, etcd, config 제한적 마스터 관련 구성은 점검 불가, kubelet 설정은 가능

 

활용방법

1. EKS 노드에서 kube-bench 실행

EKS 노드는 일반 EC2 인스턴스이므로, 직접 kube-bench를 실행하거나 DaemonSet으로 배포할 수 있습니다.

 

방법1 : DaemonSet 배포(모든 노드에서 실행)

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

 

방법 2 : EC2 노드에 직접 실행

 - 노드에 SSH 접속

 - 바이너리 설치

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

(EKS 전용 CIS 프로파일 사용: --benchmark eks-1.0)

 

EKS 전용 Benchmark

Aqua Security는 EKS를 위한 CIS Benchmark 프로파일(eks-1.0)을 제공합니다.
 * 점검 항목 예시:
  - Ensure that the kubelet config file has permissions set to 644 or more restrictive
  - Ensure that the containerd configuration file has appropriate ownership and permissions
  - Ensure kernel parameters are set for IP forwarding and bridge-nf-call-*

AWS 관리형 컨트롤 플레인 관련 항목은 검사되지 않도록 구성되어 있음

 

결과 확인 및 활용

활용 예 방법
보안 감사 리포트 실행 결과를 JSON 또는 텍스트로 저장 가능 (--json)
알람 연동 실행 결과를 CloudWatch Logs, Slack 등으로 전송
CI/CD 보안 체크 GitHub Actions, CodePipeline 등과 통합하여 정기적 검사
취약 노드 확인 DaemonSet 실행 후 kubectl logs로 확인

 

주의사항

항목 설명
컨트롤 플레인 검사 불가 EKS는 마스터 노드에 접근 불가하므로 api-server, scheduler, controller-manager 관련 점검은 불가
워커 노드만 검사 EC2 노드 기반의 kubelet, containerd 등의 구성만 검사 가능
버전에 맞는 CIS 프로파일 선택 EKS 1.27이면 --benchmark eks-1.0 사용 권장

 

반응형