피드로 돌아가기
Kubernetes BlogKubernetes Blog
Security

Securing Production Debugging in Kubernetes

Kubernetes 프로덕션 환경에서 RBAC 기반 접근 제어와 수명이 짧은 자격증명을 조합해 일시적 디버깅 액세스를 구현하는 아키텍처

2026년 3월 18일10intermediate

Context

프로덕션 디버깅 시 cluster-admin 역할, 공유 베스천/점프박스, 장기 유지되는 SSH 키 등 광범위한 액세스 권한을 부여하는 관행이 일반적이다. 이 방식은 감사 추적이 어려워지고 임시 예외가 일상화되는 문제를 야기한다.

Technical Solution

  • RBAC를 활용한 최소 권한 원칙 적용: 개별 사용자가 아닌 그룹에만 역할을 바인딩하고 신원 제공자가 그룹 멤버십을 관리하도록 구조화
  • Just-in-time 보안 셸 게이트웨이 배포: 온디맨드 파드로 배포된 접근 브로커가 Kubernetes API와 RBAC를 활용해 pods/log, pods/exec, pods/portforward 등의 작업을 제어
  • 단기 수명 신원 기반 자격증명 도입: 하드웨어 백업 키(YubiKey 등)로 서명되고 빠르게 만료되는 인증서를 발급해 세션을 실명에 명확히 연결
  • 접근 브로커를 통한 정책 강제: JSON 또는 XML 파일로 유지되는 명령 화이트리스트와 자동 승인 대상, 수동 승인 필요 대상을 코드 리뷰를 거쳐 관리
  • 클러스터 및 네임스페이스 범위 제한: 접근 게이트웨이가 세션 중 클러스터/네임스페이스 범위와 허용된 작업을 자격증명에 인코딩해 강제
  • 이중 계층 세션 매개변수화(고급): 세션 수립 계층과 권한 작업 실행 계층을 분리해 각각 단기 자격증명과 독립적 감사 추적을 유지

Key Takeaway

Kubernetes 프로덕션 디버깅의 보안은 권한 부여(RBAC)와 인증(단기 신원 기반 자격증명)을 조합하고, 접근 브로커를 통해 RBAC으로 표현할 수 없는 세밀한 제어(특정 명령 실행 여부, 세션 자동 만료)를 구현하는 것이 핵심이다.


Kubernetes 환경에서 온콜 팀 디버깅 액세스를 구성할 때, 개별 사용자 대신 oncall-<team-name> 그룹으로 RoleBinding을 정의하고, 접근 브로커를 파드로 배포해 수명이 짧은 OIDC 기반 토큰으로 인증한 후 게이트웨이가 Kubernetes API를 통해 RBAC 권한을 검증하도록 하면, 감사 로그에 누가 언제 무엇을 했는지 기록되고 세션 만료 후 자동으로 액세스가 차단된다.

원문 읽기