정보보안기사 기출문제 총정리 ㊳ 컨테이너·쿠버네티스 보안 – K8s 보안 모델·RBAC

컨테이너 보안 개요

컨테이너 기술의 확산으로 컨테이너 환경 고유의 보안 위협이 증가했습니다. 정보보안기사에서도 컨테이너와 쿠버네티스 보안이 최신 출제 트렌드에 포함되고 있습니다.

Docker 컨테이너 보안

이미지 보안

  • 최소 베이스 이미지 사용 (Alpine Linux 등): 공격 표면 최소화
  • 공식(Official) 또는 검증된 이미지만 사용
  • 이미지 취약점 스캔: Trivy, Snyk, Clair
  • Dockerfile에 비밀정보(패스워드, API 키) 포함 금지
  • 멀티 스테이지 빌드: 빌드 도구를 최종 이미지에 포함하지 않음

컨테이너 실행 보안

  • 비루트(Non-root) 실행: USER 지시어로 일반 사용자로 실행
  • 읽기 전용 파일시스템: –read-only 옵션으로 파일 수정 방지
  • 리소스 제한: –memory, –cpus 옵션으로 자원 고갈 방지
  • Seccomp 프로파일: 허용된 시스템 콜만 허용
  • AppArmor/SELinux: MAC(강제 접근 제어) 정책 적용

Docker 데몬 보안

  • Docker 소켓(/var/run/docker.sock) 컨테이너 마운트 금지 (권한 상승 위험)
  • TLS로 원격 API 인증

쿠버네티스(Kubernetes) 보안

RBAC (Role-Based Access Control)

  • 쿠버네티스 API 접근 제어 메커니즘
  • Role: 네임스페이스 범위 권한 정의
  • ClusterRole: 클러스터 전체 범위 권한 정의
  • RoleBinding: 사용자·서비스 계정에 Role 연결
  • ClusterRoleBinding: ClusterRole을 클러스터 전체에 연결
  • 최소 권한 원칙: 필요한 API 리소스와 동사(verbs)만 허용

파드(Pod) 보안

  • Security Context: 파드/컨테이너 레벨 보안 설정
    • runAsNonRoot: true (비루트 실행 강제)
    • readOnlyRootFilesystem: true
    • allowPrivilegeEscalation: false
  • Pod Security Admission: 파드 보안 정책 적용 (K8s 1.25부터 PSP 대체)
  • Network Policy: 파드 간 통신 제어 (기본: 모든 파드 간 통신 허용 → 최소 허용으로 변경)

시크릿(Secret) 관리

  • K8s Secret은 기본 Base64 인코딩 (암호화 아님)
  • etcd 저장 시 암호화(Encryption at Rest) 설정 필요
  • HashiCorp Vault, AWS Secrets Manager와 통합 권장

쿠버네티스 주요 보안 위협

  • 컨테이너 탈출(Container Escape): 취약점으로 호스트 OS 접근
  • 과도한 권한(Overprivileged Container): –privileged 모드 실행
  • SSRF를 통한 메타데이터 서버 접근
  • 공급망 공격: 악성 컨테이너 이미지 배포

시험 핵심 포인트

  • 컨테이너 비루트 실행: 보안의 기본 원칙
  • K8s RBAC: Role/ClusterRole + RoleBinding/ClusterRoleBinding
  • K8s Secret: Base64 인코딩, 추가 암호화 설정 필요
  • Network Policy: 기본 허용 → 명시적 허용으로 변경
  • 이미지 스캔: Trivy, Snyk (알려진 CVE 탐지)

마무리

컨테이너·쿠버네티스 보안은 클라우드 네이티브 환경의 핵심 보안 영역입니다. RBAC 구조와 파드 Security Context 설정을 중심으로 학습하세요.

Leave a Comment