제조업 Kubernetes 컨테이너 보안(NIST SP 800-190·NSA/CISA Hardening·Pod Security Standards) 실무 완벽 가이드 — 기본 설정 위험에서 강화된 클러스터까지 5단계 로드맵

중소·중견 한국 제조사가 Kubernetes 보안 체계를 진단·RBAC/PSS·NetworkPolicy/PSP·Admission·런타임/공급망까지 진짜 무사히 정착시키는 5단계 로드맵. 4Cs(Cloud·Cluster·Container·Code), NIST SP 800-190, NSA/CISA Hardening Guidance v1.2, CIS K8s Benchmark, Pod Security Standards(Privileged/Baseline/Restricted), Kyverno·OPA Gatekeeper·Sigstore Policy Controller, Falco·Tetragon·Tracee eBPF, External Secrets·Sealed Secrets·SOPS, Istio·Linkerd mTLS, MITRE ATT&CK for Containers 실무.

1. 왜 K8s 보안인가 — 기본 설정은 안전하지 않다

2023년 Aqua Security 보고서: 인터넷 노출 K8s API 서버 350,000+, 90%+ 기본 설정 그대로. 2024년 RedHat 보고서: K8s 인시던트 1년 67% 경험, 가장 빈번 — 잘못 설정(45%), 취약점(35%), 공급망(28%). Tesla Tesla, Capital One, SolarWinds CI/CD에서 모두 K8s 또는 컨테이너 인프라가 핵심 침해 경로였다.

오해 1 — “EKS·AKS·GKE는 CSP가 보안 다 한다.” Managed K8s는 컨트롤플레인 일부만, 데이터플레인·워크로드·구성·이미지는 고객 100% 책임. 오해 2 — “이미지 스캐너면 끝.” 런타임·RBAC·NetworkPolicy·Secrets·Admission이 함께. 오해 3 — “PSP 폐지 후 보안 통제 없다.” Pod Security Standards(2022 GA) + Kyverno/OPA가 PSP 대체.

4Cs of Cloud Native Security(공식 K8s 문서):

Code → Container → Cluster → Cloud
  ↓        ↓          ↓        ↓
SAST   Image Scan  RBAC·NW   IAM·VPC
SCA    Distroless  PSS·NP    Encryption
Test   Signed      Admission Logging
Secrets SBOM       Runtime   Compliance

2. 핵심 표준·가이드라인

NIST SP 800-190(Application Container Security Guide, 2017):

  • 컨테이너 이미지·레지스트리·오케스트레이터·호스트 OS·하드웨어 5 카테고리 위험·완화

NSA/CISA Kubernetes Hardening Guidance v1.2(2022.8):

  • 가장 권위 있는 K8s 강화 가이드(미 국가안보국·CISA 공동)
  • 5 주제: Pod Security·Network Separation·Authentication & Authorization·Log Auditing·Upgrading & Application Security

CIS Kubernetes Benchmark(현재 v1.10):

  • Master·etcd·Worker·Policies 100+ 항목
  • EKS·AKS·GKE·OpenShift 별도 버전
  • 도구: kube-bench(Aqua), CIS-CAT Pro, Trivy K8s

MITRE ATT&CK for Containers(2021~):

  • Initial Access·Execution·Persistence·Privilege Escalation·Defense Evasion·Credential Access·Discovery·Lateral Movement·Impact
  • 도구: Calico Threat Detection·Datadog·Sysdig

OWASP Kubernetes Top 10(2022):

  • K01 Insecure Workload Configurations
  • K02 Supply Chain Vulnerabilities
  • K03 Overly Permissive RBAC
  • K04 Lack of Centralized Policy
  • K05 Inadequate Logging & Monitoring
  • K06 Broken Authentication
  • K07 Missing Network Segmentation
  • K08 Secrets Management
  • K09 Misconfigured Cluster Components
  • K10 Outdated and Vulnerable K8s Components

3. Pod Security Standards (PSS) — PSP 후계

PSP(PodSecurityPolicy) — K8s 1.21 deprecated, 1.25 제거(2022.8).

Pod Security Standards(K8s 1.22 도입·1.25 GA) — 3 Levels:

Level정책적합
Privileged모두 허용시스템·인프라 워크로드
Baseline알려진 권한 상승 차단일반 비신뢰 사용자
Restricted강화 보안 + 최선 관행보안 중요 워크로드

Restricted 핵심:

  • runAsNonRoot: true
  • allowPrivilegeEscalation: false
  • seccompProfile.type: RuntimeDefault
  • capabilities.drop: ["ALL"]
  • readOnlyRootFilesystem: true
  • Volume types 제한
  • HostNetwork·HostPID·HostIPC 금지

Pod Security Admission(K8s 1.25 GA):

  • Namespace 라벨로 적용
apiVersion: v1
kind: Namespace
metadata:
  name: production
  labels:
    pod-security.kubernetes.io/enforce: restricted
    pod-security.kubernetes.io/enforce-version: latest
    pod-security.kubernetes.io/audit: restricted
    pod-security.kubernetes.io/warn: restricted

Modes: enforce(차단)·audit(감사 로그)·warn(경고만).

4. Stage 1 — 클러스터·구성 진단 (1~2개월)

자동 평가:

  • kube-bench: CIS Benchmark
  • kubescape(ARMO): NSA/CISA·MITRE ATLAS·CIS·Pod Security
  • Trivy K8s: 통합 스캐너
  • Polaris(Fairwinds): Pod 구성·자원
  • kubeaudit: 모범 사례
  • Datree·Checkov·Kyverno CLI: 정책 검증

기본 점검 항목:

  • API Server 인증·RBAC
  • etcd 암호화·접근통제
  • Kubelet 권한
  • Audit Log 활성화
  • Admission Controllers 활성화
  • Network Plugin·NetworkPolicy 지원
  • 클러스터 버전(EOL 6개월 전 업그레이드)
  • 노드 OS·CRI 보안

자산 인벤토리:

  • 모든 클러스터(EKS·AKS·GKE·OpenShift·on-prem·vClusters)
  • Namespace·Workload·Image·SA·Secret·ConfigMap
  • 노출 서비스(LoadBalancer·Ingress·NodePort)
  • Persistent Volume·StorageClass
  • CRDs·Operators

Multi-tenancy 평가:

  • 다중 팀·다중 환경 격리 수준
  • Namespace as a Service(NaaS)
  • vCluster·Capsule·Hierarchical Namespace
  • 강한 격리: 별도 클러스터·노드풀

5. Stage 2 — RBAC·Identity·인증 (2~3개월)

RBAC 원칙:

  • Default Deny — system:anonymous·system:unauthenticated 권한 0
  • ClusterRole 남발 X — Namespace 단위 Role 선호
  • cluster-admin 사용자·SA 최소화
  • Wildcard(*) verb·resource 금지
  • escalate·bind·impersonate verb 엄격 관리

Service Account 관리:

  • Default SA 사용 금지(automountServiceAccountToken: false)
  • Pod별 전용 SA
  • Workload Identity:
    • AWS IRSA(IAM Roles for Service Accounts)
    • Azure Workload Identity(2023.10 GA)
    • GCP Workload Identity
    • SPIFFE/SPIRE(클라우드 중립)
  • Bound Service Account Token(K8s 1.21+ TokenRequest API) — 만료·청중·바인딩

External 인증:

  • OIDC(Okta·Entra ID·Keycloak·Auth0·Google)
  • AWS IAM(EKS)·Azure AD(AKS)·GCP IAM(GKE)
  • kubectl-oidc-login(Keycloak·Dex)
  • Audit Trail — kubectl exec·kubectl logs 추적

도구:

  • rakkess(corneliusweig): SA 접근권한 시각화
  • rbac-tool(Insight Engineering): 시각화·취약 RBAC 탐지
  • kubescape RBAC Visualizer
  • Permify·Otterize: 자동 RBAC 생성

6. Stage 3 — 네트워크·Admission·Runtime (3~6개월)

NetworkPolicy(K8s 1.7+ GA):

  • Default Deny 모든 Namespace
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny
  namespace: production
spec:
  podSelector: {}
  policyTypes: [Ingress, Egress]
  • CNI 지원: Calico·Cilium·Antrea·Weave(Calico/Cilium 권장)
  • Egress 제한 — 외부 호출 화이트리스트

Advanced — Cilium NetworkPolicy(CNP):

  • L3/L4 + L7(HTTP·gRPC·Kafka·DNS) 정책
  • eBPF 기반 고성능
  • Identity-aware
  • Hubble 가시화

Service Mesh + mTLS:

  • Istio: 풀스택, 정책·관측·보안
  • Linkerd: 경량, mTLS 자동
  • Cilium Service Mesh: eBPF Sidecar-less
  • mTLS 자동·자격증명 회전·Zero Trust Workload

Admission Controllers:

  • Kyverno: YAML 기반·K8s 친화 (CNCF Graduated 2024)
  • OPA Gatekeeper: Rego 정책
  • Sigstore Policy Controller: 이미지 서명 검증
  • Tanzu Mission Control·Polaris·Trivy Operator

Kyverno 정책 예시:

apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: disallow-latest-tag
spec:
  validationFailureAction: Enforce
  rules:
  - name: validate-image-tag
    match:
      any:
      - resources:
          kinds: [Pod]
    validate:
      message: "Using ':latest' tag is not allowed"
      pattern:
        spec:
          containers:
          - image: "!*:latest"

Runtime Security:

  • Falco(CNCF Incubating·Sysdig 기원): eBPF·시스템 콜·룰 기반
  • Tetragon(Isovalent/Cisco): eBPF·정책 강제 가능
  • Tracee(Aqua): eBPF·이벤트 풍부
  • Sysdig Secure: 상용 통합
  • Calico Threat Defense: 네트워크+런타임
  • 도구 비교: Falco는 탐지 중심, Tetragon은 차단까지

eBPF 기반 가시성:

  • Cilium Hubble — 네트워크 흐름
  • Pixie — 코드 수정 없는 관측
  • Inspektor Gadget — 디버깅·보안
  • Tetragon — 정책 + 차단

7. Stage 4 — Secrets·공급망·이미지 (3~6개월)

Secrets Management:

  • External Secrets Operator: Vault·AWS Secrets Manager·Azure Key Vault·GCP Secret Manager 동기화
  • Sealed Secrets(Bitnami): GitOps 친화, 암호화 후 Git 저장
  • SOPS(Mozilla): 파일 단위 암호화
  • HashiCorp Vault: 동적 자격증명·DB 자격증명 회전·PKI
  • CSI Secret Store Driver: 시크릿을 볼륨으로 마운트(메모리 only)
  • etcd Encryption at Rest 의무(K8s API 시크릿)

시크릿 위생:

  • ConfigMap에 시크릿 절대 X
  • 환경변수 노출 최소화 (파일 마운트 선호)
  • Pod 로그·이벤트에 시크릿 출력 차단
  • Audit log에서 시크릿 마스킹

컨테이너 이미지 공급망:

  • 베이스 이미지: Distroless(Google)·Chainguard Images·Wolfi(Chainguard) — 최소 의존성·CVE 적음
  • 멀티스테이지 빌드 — 빌드 도구 미포함
  • Non-root user
  • Read-only filesystem
  • Multi-arch(amd64·arm64)
  • SBOM 자동 생성

이미지 서명 + SLSA:

  • Cosign: 키리스 서명(OIDC) + Rekor 투명 로그
  • SLSA Provenance: slsa-github-generator·GitHub Artifact Attestations
  • Notary v2/Notation: OCI 표준 서명

서명 검증 Admission:

  • Sigstore Policy Controller:
apiVersion: policy.sigstore.dev/v1beta1
kind: ClusterImagePolicy
metadata:
  name: must-be-signed
spec:
  images:
  - glob: "ghcr.io/org/**"
  authorities:
  - keyless:
      url: "https://fulcio.sigstore.dev"
      identities:
      - issuer: "https://token.actions.githubusercontent.com"
        subject: "https://github.com/org/repo/.github/workflows/build.yml@refs/heads/main"
  • Kyverno verifyImages: SLSA·서명·attestation 검증

Registry Security:

  • Harbor·ECR·ACR·GCR·Quay
  • 매일 재스캔(이미 배포된 이미지 신규 CVE)
  • 미서명 이미지 금지
  • KEV·EPSS 우선순위

8. Stage 5 — 운영·자동화·고도화 (지속)

Audit Logging:

  • API Server Audit Policy — Metadata·Request·RequestResponse 수준
  • 모든 변경 로그 (Create·Update·Delete·Patch)
  • SIEM 전송(Splunk·Sentinel·Elastic·Loki)

Threat Detection:

  • MITRE ATT&CK for Containers 매핑
  • 비정상 행동: Exec·Shell·외부 IP·암호화폐 채굴·권한 상승
  • Falco/Tetragon 룰셋
  • Container Drift 탐지 (이미지와 런타임 차이)

자동 대응:

  • Falco → Falco-talon·Falcosidekick → Slack/PagerDuty/SOAR
  • 자동 Pod 격리·삭제·롤백
  • ArgoCD Auto-sync 차단 — 위협 발견 시

GitOps 보안:

  • ArgoCD·Flux RBAC·OIDC
  • App-of-Apps 패턴
  • 보안 정책을 Git에 저장·리뷰
  • 위협 발견 시 Git 자동 revert

Multi-tenancy 고도화:

  • vCluster(Loft Labs): 가상 K8s 클러스터
  • Capsule: Tenant 추상화
  • Hierarchical Namespace Controller(HNC)
  • Kiosk(Loft): 셀프서비스
  • Crossplane: 클라우드 자원 K8s API화

Service Account Token 단기화:

  • Bound Service Account Token(K8s 1.21+) 자동 활용
  • Token 짧은 만료(1시간·하루)
  • Persistent Token 금지

컴플라이언스 통합:

  • ISO 27001 A.8.27·A.8.29
  • PCI DSS v4.0.1 컨테이너 가이드
  • ISMS-P 클라우드 부속
  • CIS K8s + EKS/AKS/GKE Benchmark
  • NIST CSF 2.0·800-190 매핑

고도화:

  • Confidential Containers: CoCo 프로젝트 — TEE 내 컨테이너
  • WebAssembly(Wasm) on K8s: SpinKube·wasmCloud — 경량·격리
  • Edge K8s: K3s·MicroK8s·KubeEdge — 제조 현장
  • OT/IT K8s 격리

9. 비용·ROI

항목비용 (연간)
Managed K8s(EKS·AKS·GKE)3억~30억
보안 도구(Aqua·Sysdig·Wiz·Prisma)1억~20억
Open Source(Falco·Tetragon·Kyverno)0 + 인력
Service Mesh(Istio·Linkerd)0 + 인력 또는 상용
인력(K8s SRE+Security 2~10명)4억~30억
교육·인증(CKS·CKA)3천~3억
합계 (중견 제조사)8~85억

ROI:

  • 평균 컨테이너 침해 비용(IBM 2024) 38억 → 1건 예방 = 1년치
  • 잘못 설정으로 인한 사고 95%+ 사전 차단
  • 개발 속도 향상 — 보안 자동화로 배포 게이트 단축
  • 컴플라이언스(ISMS-P·PCI·HIPAA) 자동화
  • 사이버보험 — K8s 강화 시 15~25% 할인

10. 자가 점검

Cluster·Identity:

  • kube-bench/kubescape CIS 80%+
  • API Server·etcd 암호화·접근통제
  • Audit Logging 활성화·SIEM 전송
  • RBAC 최소권한·Wildcard 제거
  • Default SA 비활성화
  • Workload Identity(IRSA·SPIFFE)
  • Bound Service Account Token
  • External OIDC 인증

Pod Security·Network:

  • Pod Security Admission Restricted
  • NetworkPolicy Default Deny 모든 NS
  • Cilium L7·Service Mesh mTLS
  • Egress 화이트리스트
  • Multi-tenancy 격리(vCluster·Capsule)

Admission·정책:

  • Kyverno 또는 OPA Gatekeeper
  • Sigstore Policy Controller 서명 검증
  • Image registry 화이트리스트
  • CVE 정책(Critical 차단)
  • Resource Quota·LimitRange

Runtime·Detection:

  • Falco/Tetragon 런타임 보호
  • MITRE ATT&CK for Containers 매핑
  • Threat Hunting·Sigma 룰
  • eBPF 가시성(Cilium Hubble·Pixie)
  • 자동 대응(Falcosidekick·SOAR)

공급망·시크릿:

  • SBOM 자동 생성
  • Cosign 서명·SLSA Provenance
  • Distroless·Chainguard 베이스
  • Non-root·Read-only·Drop Capabilities
  • External Secrets·Vault
  • Sealed Secrets / SOPS for GitOps
  • CSI Secret Store

거버넌스:

  • OWASP K8s Top 10 자가진단
  • NSA/CISA Hardening v1.2 매핑
  • NIST SP 800-190 매핑
  • ISO 27001·ISMS-P 클라우드·PCI·CSF 2.0 통합
  • CKS 인증 보유 인력
  • GitOps + 보안 정책 PR

11. 마무리 — 기본 설정은 안전하지 않다

Kubernetes 보안은 ① 클러스터·구성 진단, ② RBAC·Identity·인증, ③ 네트워크·Admission·Runtime, ④ Secrets·공급망·이미지, ⑤ 운영·자동화·고도화 — 5단계로 정착시킨다. K8s는 기본 설정이 안전하지 않다, Pod Security Standards + RBAC + NetworkPolicy + Admission + Runtime + 공급망 6 영역 모두 강화해야 한다. NSA/CISA Hardening Guidance + NIST SP 800-190 + CIS Benchmark를 운영체에 녹이면 컨테이너 침해 95%+ 사전 차단된다.

통합 사이클