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 사용 권장 |
'AWS > EKS' 카테고리의 다른 글
| [EKS] EKS 안정적인 버전 업그레이드 절차 (0) | 2025.05.18 |
|---|---|
| [EKS] 노드 스토리지 사이즈 변경 방법 (0) | 2024.10.20 |
| [EKS] EKS에서의 Auto Scaling (0) | 2024.04.20 |
| [EKS] EKS 사용시 참고할 유용한 링크 (0) | 2024.04.20 |
| [EKS] pod로 파일 전송 (0) | 2023.12.25 |