피드로 돌아가기
Dev.toSecurity
원문 읽기
Native Sidecars와 Distroless 도입을 통한 K8s PII 마스킹 보안 강화
Masking PII in Kubernetes: How we solved 3 annoying sidecar edge cases (v2.0.0)
AI 요약
Context
로그 내 PII 마스킹을 위해 Mutating Webhook 기반 Sidecar를 운영하며 발생한 보안 취약점 및 라이프사이클 관리 문제 분석. 특히 SOC2 준수를 위한 엄격한 보안 환경과 K8s Job의 종료 지연 현상이 주요 병목 지점으로 작용.
Technical Solution
- 공격 표면 최소화를 위해 Alpine 기반 이미지에서 gcr.io/distroless/static:nonroot 기반의 Shell-less 환경으로 전환
- CGO_ENABLED=0 설정을 통한 정적 컴파일 및 Go native 로직을 활용한 로그 파일 직접 테일링 방식 채택
- K8s 1.28+ Native Sidecars 기능을 적용하여 initContainers 내 RestartPolicy: Always 설정으로 Job의 정상 종료 보장
- SecurityContext의 umask 0077 제약 해결을 위해 Mutating Webhook 단계에서 fsGroup: 65532 자동 주입으로 권한 충돌 방지
- pii-shield.io/inject 라벨 기반의 자동 주입 구조를 통해 사용자 매니페스트 수정 최소화
실천 포인트
- K8s Job 사용 시 Sidecar 라이프사이클 문제를 해결하기 위해 Native Sidecars(v
1.28+) 도입 검토 - 보안 요구사항이 높은 환경에서는 Distroless 이미지를 통해 Shell 접근 경로를 완전히 차단 - 공유 볼륨 권한 문제는 fsGroup 설정을 통해 애플리케이션 코드 수정 없이 인프라 레벨에서 해결