사이버 위협은 끊임없이 등장하고 있으며, 악의적인 행위자들은 이에 대비할 시간이 더 필요합니다. 쿠버네티스 보안을 최적화하는 것은 기업의 클라우드 보안 태세를 개선하는 데 매우 중요합니다. 쿠버네티스 관리자는 효과적인 보안 조치를 도입하기 위해 인프라가 어떻게 작동하는지 이해해야 합니다.
2025년용 Kubernetes 보안 체크리스트는 크게 세 가지 범주로 분류할 수 있습니다:
- 클러스터
- Pods
- 컨테이너
Kubernetes 보안 체크리스트는 단순화되어야 하며 운영 복잡성을 해결해야 합니다. 조직이 보안 조치를 우선순위화하고 위협을 해결하려고 할 때, 이는 자동으로 비즈니스 평판을 높입니다. 기업은 고객 간의 신뢰를 구축하고 신뢰성을 확립합니다. 또한 위협이 증가함에 따라 나중에 발생할 수 있는 미래의 문제에 대비함으로써 운영 비용을 절감합니다.
자, 자세히 살펴보겠습니다.
Kubernetes 보안 체크리스트의 다중 구성 요소
Kubernetes 보안 체크리스트는 여러 구성 요소로 이루어져 있습니다-
- 감사 및 로깅
- 네트워크 보안
- 인증 및 권한 부여
- 비밀 관리
- 입장 제어
- Kubernetes 보안 경계
- Kubernetes 보안 정책
- Kubelet 보안
- 기본값 '열림'
Kubernetes 도입, 보안 및 시장 동향 보고서 2024에 따르면, 조직들은 쿠버네티스 컨테이너 보안에 대한 부주의로 인해 수많은 부정적인 영향(수익 손실 및 벌금 포함)을 기록했습니다. DevSecOps 팀은 취약점과 잘못된 구성이 쿠버네티스 및 컨테이너 환경과 관련된 최고의 보안 문제라고 밝혔습니다. 오픈 소스 쿠버네티스 소프트웨어 솔루션은 안전하지 않으며 소프트웨어 공급망 보안에 영향을 미칩니다. 67% 이상의 기업이 보안 문제로 인해 비즈니스 운영을 지연했으며, 대부분의 글로벌 기업들은 개발, 배포, 유지 관리에 이르기까지 보안 관리의 모든 측면에 압도되고 있습니다.
2025년을 위한 궁극의 쿠버네티스 보안 체크리스트
#1. CIS 벤치마크 따르기
CIS 벤치마크는 조직이 쿠버네티스 보안을 강화하는 데 활용할 수 있는 기본 보안 정책을 제공합니다. 이는 IT 시스템을 사이버 공격으로부터 보호하며, 쿠버네티스 환경 보안을 위해 개발된 커뮤니티 합의 프로세스와 지침 세트를 특징으로 합니다. 쿠버네티스 보안 체크리스트에 따르면, 사용자가 보안을 위해 가장 우선적으로 보호해야 할 구성 요소는 다음과 같습니다: 쿠버네티스 PKI, kubeadm, CNI 파일, etcd 데이터 디렉터리, kubeadm admin.conf, controller manager.conf, 그리고 pod 사양 파일입니다.
#2. Kubernetes API 인증
Kubernetes 보안 체크리스트에서 가장 널리 채택된 Kubernetes API 인증 방법 중 하나는 X509 인증서를 사용하는 것입니다. 인증서는 일련의 멤버십을 강조하는 데 사용되며 요청을 보내는 주체의 이름을 확인할 수 있습니다.
Kubernetes 보안 체크리스트에 따르면, 사용자 계정 인증을 위한 다른 내장된 방법들이 존재합니다. Kubernetes 인증 관행은 사용자의 신원을 검증하고 접근 권한 부여 여부를 결정합니다. 이 과정에서 역할 기반 접근 제어(RBAC)가 구현됩니다.
X509 인증을 사용하려면 사용자는 개인 키를 생성하고 인증서 서명 요청(CSR)을 발행해야 합니다. 이는 유닉스 또는 유사 운영체제 환경에서 시작할 수 있습니다. 쿠버네티스 인증에서 두 번째로 널리 사용되는 기술은 OpenID Connect(OIDC) 토큰 사용입니다. Google, Okta, dex, OpenUnison과 같은 많은 OIDC 공급자가 이를 지원합니다. 다양한 싱글 사인온(SSO) 서비스가 쿠버네티스 API 인증을 지원하며, 구현 단계는 사용자가 선택한 서비스에 따라 다릅니다. 서비스 계정 인증 토큰을 사용하여 인증 요청을 검증할 수 있으며, HTTP 헤더의 베어러 토큰도 권장 사항을 발행할 수 있습니다.
마지막 인증 방법은 정적 비밀번호 파일 사용입니다. 이는 가장 보안성이 낮은 인증 방식이지만 가장 간편합니다. 최소한의 구성만 필요하며, 사용자 접근 권한 변경 시 비밀번호 파일을 수동으로 업데이트해야 합니다. Kubernetes 인증을 처음 접하는 사용자에게는 정적 비밀번호 파일을 인증 솔루션으로 사용하는 것이 테스트 클러스터에 적용하기 가장 간단한 방법입니다.
#3. Kubelet 보안
Kubelet 보안은 Kubernetes 클러스터 전반에 걸쳐 노드를 실행하는 것을 의미합니다. 주로 노드에서 직접 Kubernetes 컨테이너를 관리하고 컨테이너 런타임 인터페이스(CRI)와 상호작용하는 역할을 담당합니다.
관련된 두 개의 포트가 있습니다: 10255와 10250입니다. 10255는 읽기 전용 포트로, 노드에서 실행 중인 파드 및 컨테이너에 대한 데이터를 반환합니다. 10250은 쓰기 가능한 포트로, 선택된 노드에 파드를 스케줄링할 수 있습니다.
Kubernetes 클러스터를 처음 배포할 때는 Kubernetes 보안 체크리스트의 일환으로 다음 보안 조치를 고려해야 합니다:
- 노드는 항상 내부 네트워크에서 실행하십시오.
- kubelet을 –anonymous-auth=false 플래그와 함께 사용하고 익명 액세스를 제한하십시오.
- 인증 모드를 AlwaysAllow로 설정하지 말고 다른 옵션을 선택하십시오.
- kubelet 권한 제한. NodeRestriction 어드미션 플러그인으로 파드를 수정하고 노드 객체에 바인딩할 수 있습니다.
- 인증서 기반 인증을 사용하고 마스터와 노드 간 원활한 통신을 위해 적절히 구성하십시오.
- 엄격한 방화벽 규칙을 적용하고 쿠버네티스 마스터만 kubelet과 통신할 수 있도록 허용하십시오.
- 읽기 전용 포트를 비활성화하고 워크로드가 공유하는 정보를 제한하십시오.
- 모든 쿠버네티스 보안 제어 기능을 수동으로 테스트하고 kubelet이 기본적으로 접근 불가능하도록 하십시오.
#4. 시크릿 관리
Kubernetes 시크릿은 API 키, 비밀번호, 토큰과 같은 민감한 데이터를 저장합니다. Kubernetes 시크릿은 내부 Kubernetes 구성 요소가 접근할 수 없도록 설계되었으며, 필요한 경우에만 파드 노드로 전송됩니다. 시크릿은 공격자의 가장 큰 표적 중 하나이므로 신중하게 보호해야 합니다.
사용자는 etcd에 대한 접근을 제한하고 제어하며 etcd 클러스터에 암호화를 적용해야 합니다. Kubernetes 컨테이너도 최소 권한 원칙에 따른 접근을 따라야 합니다. 노드 인증은 다른 Kubernetes 보안 체크리스트 항목들 중 하나로 구현되어야 합니다. 이상적으로는 사용자가 서로 다른 Kubernetes 환경에 대해 서로 다른 시크릿 세트를 사용해야 합니다.
이미지에 시크릿을 빌드하는 것은 피하는 것이 좋습니다. 소스 코드 저장소 전반에 걸쳐 시크릿의 실시간 스캔을 활성화하고 이를 검증하는 것도 권장됩니다. 시크릿은 로그에 기록될 위험이 있으며, 파일로 시크릿을 전달하는 것이 가장 좋은 보안 관행 중 하나입니다. 디스크에 기록하는 대신 마운트된 볼륨을 임시 디렉터리로 설정하세요. 최상의 결과를 위해 시크릿 키를 회전시키고, 저장 방식을 달리하며 컨테이너에 전달하는 방법도 선택할 수 있습니다. 때로는 새로운 데이터베이스 암호를 읽기 위해 애플리케이션을 재시작해야 할 수도 있습니다. 파일 기반 워크플로우 사용자의 경우, 파일 시크릿은 재시작 없이 자동으로 업데이트될 수 있습니다.
#5. 입장 컨트롤러
입장 컨트롤러는 2025년 Kubernetes 보안 체크리스트에 포함됩니다. 이는 Kubernetes 보안 정책 프레임워크를 시행하며 RBAC 제어와 함께 두 번째 방어선 역할을 합니다.
입장 컨트롤러는 다양한 매개변수를 기반으로 규칙을 설정하고 리소스 사용을 제한할 수 있습니다. 특권 컨테이너에서 명령어 실행을 차단하고, 노드에 로컬 저장된 이미지를 사용하지 않고 항상 포드가 이미지를 풀하도록 강제할 수 있습니다. 입력 컨트롤러의 또 다른 이점은 들어오는 요청을 모니터링하고 네임스페이스 내에서 리소스 제약을 설정하는 것입니다. 최소한 Kubernetes에서 제공하는 기본 입력 컨트롤러를 활성화할 것을 권장합니다.
#6. Kubernetes 보안 경계
Kubernetes 보안 경계는 Kubernetes 보안 체크리스트의 기초를 형성합니다. 이는 프로세스가 다른 사용자의 데이터에 접근하는 것을 방지하고 컨테이너화된 격리를 제공하는 정책을 시행합니다. LimitRanger 및 ResourceQuota 승인 템플릿은 리소스 부족을 방지하며, 파드의 경우 사용자는 맞춤형 보안 컨텍스트를 정의하고 이를 시행할 수 있습니다.
#7. Kubernetes 보안 정책
포드 보안 정책은 복잡성의 정도가 다양합니다. Kubernetes 포드 보안 정책은 클러스터 수준 리소스에 구성되며 보안 컨텍스트와 어드미션 컨트롤러의 사용을 강제합니다. 포드는 포드 보안 정책의 요구 사항을 충족해야만 실행될 수 있습니다. Pod 보안 정책은 Kubernetes v1.25부터 자동으로 제거되므로, 사용자는 Kubernetes Pod 보안 어드미션 컨트롤러로 마이그레이션해야 합니다.
보안 컨텍스트는 Kubernetes 컨테이너에 대한 접근 제어 설정 및 권한을 정의합니다. 재량적 접근 제어를 구현하고, 그룹 ID를 기반으로 객체 접근 권한을 설정하며, 비특권 프로세스를 구성합니다.
사용자는 내부 보안 컨텍스트 도구를 정의하고 외부 기능과 통합할 수 있습니다. seccomp를 사용하여 시스템 호출을 필터링하고, AppArmor로 개별 구성 요소의 기능을 제한할 수 있습니다. 접근 권한을 제공하거나 리소스별 권한을 할당할 필요가 없어 세분화된 접근이 가능합니다. 사용자는 파드 생성 시 배포 파일 내 보안 컨텍스트 코드를 포함할 수 있습니다. 쿠버네티스는 매우 민첩하며, 노드 간 프로필 배포를 자동화할 수도 있습니다. 유일한 단점은 Windows 컨테이너를 지원하지 않는다는 점입니다. 서비스 계정, 노드, 사용자를 보호하기 위한 권한 설정도 가능합니다.
#8. Kubernetes 네트워크 보안
Kubernetes 네트워크 보안은 Kubernetes 보안 체크리스트의 핵심 구성 요소입니다. 컨테이너 간 트래픽 흐름 방식을 지정하고 차단 대상 트래픽 유형을 정의하는 제어 기능을 추가합니다. 사용자는 다중 클러스터 아키텍처를 따라 워크로드를 격리하고 서로 다른 클러스터에 워크로드를 배포함으로써 보안 문제를 완화할 수 있습니다. 이를 통해 높은 수준의 컨테이너 격리를 달성하면서 동시에 복잡성을 줄일 수 있습니다.
파이어월 기능을 추가하고 파드 간 트래픽 흐름을 제한하는 쿠버네티스 네트워크 정책이 있습니다. 이는 선택된 네트워크 엔터티와 통신할 파드를 지정합니다. 최적의 트래픽 흐름을 위해 인그레스 정책은 대상 포트에서 허용되어야 하며, 이그레스 정책은 소스 파드에 적용되어야 합니다. 일반적으로 라벨 사용이 권장되며, 사용자는 트래픽을 허용하고 예상되는 경로로만 유도하는 절차를 추가할 수 있습니다. 애플리케이션별로 특정 포트로 트래픽을 제한할 수도 있습니다. 쿠버네티스 서비스 메시(Service Mesh)는 모니터링을 간소화하고 지속적인 모니터링 및 알림과 관련된 다양한 기능을 제공합니다. 보안 위협을 탐지하고 사고를 보고하며, 다양한 서비스 메시 프로젝트가 존재합니다. Kubernetes 보안 체크리스트는 Linkerd, Consul, Istio 등의 옵션 사용을 권장합니다.
#9. Kubernetes 감사 및 로깅
컨테이너 이벤트 로그를 유지 관리하고 프로덕션 환경을 위한 감사 추적을 생성하는 것은 필수적입니다. Kubernetes 감사 로깅에는 시작 및 중지 명령을 호출하는 이미지 및 사용자의 신원 기록이 포함됩니다. CNI 플러그인은 컨테이너가 사용하는 가상 네트워크 인터페이스를 생성합니다. CNI 플러그인은 또한 여러 타사 구성 관리 플랫폼 및 도구와 통합되며, 가장 널리 사용되는 것은 Cilium과 Project Calico입니다. Kubernetes 감사 및 로깅의 다른 측면으로는 컨테이너 페이로드 및 볼륨 마운트 수정, 인바운드 및 아웃바운드 연결 모니터링, 실패한 작업 복구 등이 있습니다. 애플리케이션 로깅은 클러스터 활동을 모니터링하는 가장 쉬운 방법이며 애플리케이션 디버깅에 대한 통찰력을 제공할 수 있습니다. 클러스터 수준 로깅 구현 및 스토리지 컨테이너에 로그 푸시하는 것은 중앙 집중식 로그 관리 플랫폼 또는 서비스를 사용하는 표준 관행입니다.
Kubernetes 보안을 위해 SentinelOne를 선택해야 하는 이유?
SentinelOne의 클라우드 워크로드 보안(CWS) for Kubernetes는 Singularity™ 플랫폼의 일부로, 이러한 현대적 위협을 효과적으로 해결하도록 설계된 첨단 솔루션을 제공합니다. SentinelOne이 Kubernetes 보안을 강화하는 방법은 다음과 같습니다:
- 실시간 위협 보호: Singularity CWS는 랜섬웨어 및 알려지지 않은 취약점과 같은 위협으로부터 Kubernetes 워크로드를 지속적으로 모니터링하고 보호합니다. AI 기반 기술로 신속한 탐지 및 대응을 보장하여 Kubernetes 환경을 안전하게 지킵니다.
- 사고 조사 및 위협 헌팅: 싱귤러리티 데이터 레이크를 통해 센티넬원은 워크로드 활동에 대한 포괄적인 통찰력을 제공합니다. 이 도구는 사고 조사 및 위협 헌팅 수행에 도움을 줍니다. 워크로드 비행 데이터 레코더™는 문제 있는 워크로드를 제거하여 사고 복구를 지원함으로써 재정적 손실과 피해를 최소화합니다.
- 광범위한 호환성: SentinelOne은 14가지 주요 Linux 배포판, 3가지 인기 컨테이너 런타임, 관리형 및 자체 운영 Kubernetes 서비스를 포함한 다양한 컨테이너화 워크로드를 지원합니다.
결론
기본 원칙은 쿠버네티스 보안 체크리스트 2025는 인증, 포드 보안 관리, 시크릿 처리 및 기타 구성 요소를 중심으로 합니다. 이러한 관행을 따르면 조직은 쿠버네티스 환경을 보호하고 데이터 접근이 제한되도록 보장할 수 있습니다. 이러한 팁은 쿠버네티스 보안을 단순화하고 보안을 계층화하여 아키텍처의 복잡성을 줄입니다. 사용자가 클라우드용 쿠버네티스 보안을 최적화하면 다른 보안 워크플로와 통합하기가 쉬워집니다.
"Kubernetes 보안 체크리스트 FAQ
Kubernetes 보안 체크리스트는 클러스터를 잠그기 위해 따르는 단계 목록입니다. API 서버, etcd, kubelet 보안 강화; RBAC 적용; 네트워크 및 포드 보안 정책을 통한 포드 격리; 시크릿 암호화; 이벤트 감사 등을 다룹니다.
이 체크리스트는 제어 평면부터 워크로드까지 모든 핵심 구성 요소가 기본 보안 기준을 충족하도록 안내하는 역할을 합니다.
"Kubernetes 클러스터는 중요한 워크로드를 관리하며, 어떤 실수라도 민감한 데이터를 노출시키거나 공격자가 측면 이동을 허용할 수 있습니다. 체크리스트는 이러한 편차를 방지합니다. 합의된 통제 수단을 일관되게 적용하고, 개방된 API 포트나 지나치게 관대한 RBAC와 같은 취약점을 포착하며, 규정 준수를 유지할 수 있습니다. 체크리스트를 정기적으로 따름으로써 예상치 못한 상황을 줄이고 클러스터를 알려진 위협과 새롭게 등장하는 위협 모두에 대해 강화된 상태로 유지할 수 있습니다.
"프로덕션 체크리스트에는 다음이 포함되어야 합니다: 신뢰할 수 있는 네트워크로 API 서버 접근 제한; 감사 로그 활성화; 저장 중인 etcd 데이터 암호화; 최소 권한 RBAC 적용; 포드 보안 또는 승인 정책 적용; 서비스 격리를 위한 네트워크 정책 사용; 컨테이너 이미지 보안 강화; 인증서 순환; CI/CD 파이프라인 보안 검증. 각 항목은 트래픽이나 워크로드가 가동되기 전에 클러스터의 한 계층을 잠급니다.
"팀은 최소한 분기마다, 그리고 주요 Kubernetes 버전 업그레이드나 아키텍처 변경 후에는 체크리스트를 검토해야 합니다. 자주 검토하면 새로운 개방 포트나 완화된 RBAC 규칙과 같은 구성 드리프트를 포착하고, 새로운 위협이나 추가된 구성 요소에 대한 통제가 적절히 적용되도록 할 수 있습니다.
새로운 네임스페이스나 사용자 정의 어드미션 컨트롤러와 같은 중요한 변경 사항도 즉시 체크리스트 검토가 필요합니다.
"kube-bench 같은 오픈소스 도구는 CIS 쿠버네티스 벤치마크에 따라 클러스터를 감사합니다. Kube-hunter는 노출 및 잘못된 구성을 탐지합니다. Polaris는 사용자 정의 정책에 따라 실행 중인 워크로드를 검증합니다. 네이티브 Kubernetes 감사 로그는 이벤트 모니터링을 위해 SIEM으로 전송됩니다.
이러한 도구를 결합하면 제어 평면 설정, RBAC, 네트워크 정책 등에 대한 검사를 자동화하여 체크리스트와의 편차를 쉽게 발견하고 수정할 수 있습니다.
"GitHub의 공식 Kubernetes 보안 체크리스트(kubernetes.io/docs/concepts/security/security-checklist/)나 krol3/kubernetes-security-checklist 저장소 같은 커뮤니티 관리 가이드를 시작점으로 활용할 수 있습니다.
많은 클라우드 공급업체와 보안 벤더들도 다운로드 가능한 PDF 체크리스트를 공개하고 있습니다. "Kubernetes Security Checklist PDF"로 검색하면 환경에 맞게 조정할 수 있는 예시를 찾을 수 있습니다.
"구현은 DevOps, 플랫폼 엔지니어, 보안 팀 간의 공동 노력입니다. 플랫폼 엔지니어는 제어 평면 구성 요소와 네트워크 정책을 구성합니다. DevOps 팀은 워크로드와 CI/CD 파이프라인을 보호합니다.
보안 팀은 기본 제어 사항을 정의하고, 감사를 수행하며, 규정 준수를 모니터링합니다. 이들은 함께 RBAC 규칙부터 포드 보안 정책에 이르기까지 각 체크리스트 항목이 적용되고 검증되도록 보장합니다.
"
