Windows 노드 보안

Windows 노드 보안 (windows-security)

출처: 쿠버네티스 공식 문서 — Security For Windows Nodes

이 페이지는 Windows 운영체제에 특화된 보안 고려사항과 모범 사례를 다뤄요.

노드의 Secret 데이터 보호 (Protection for Secret data on nodes)

Windows에서는 Secret의 데이터가 노드의 로컬 스토리지에 평문(clear text)으로 기록돼요. Linux에서 tmpfs/인메모리 파일시스템을 쓰는 것과는 대조적이죠. 클러스터 운영자라면 다음 두 가지 추가 조치를 모두 취해야 해요:

  1. 파일 ACL을 사용해 Secret 파일의 위치를 보호한다.
  2. BitLocker로 볼륨 수준 암호화를 적용한다.

컨테이너 사용자 (Container users)

Windows Pod나 컨테이너에는 RunAsUsername을 지정해서 컨테이너 프로세스를 특정 사용자로 실행할 수 있어요. 이는 RunAsUser와 대략적으로 동등한 개념이에요.

Windows 컨테이너는 기본 사용자 계정 두 가지, 즉 ContainerUserContainerAdministrator를 제공해요. 두 계정의 차이는 Microsoft의 Secure Windows containers 문서 중 When to use ContainerAdmin and ContainerUser user accounts에서 다뤄요.

참고 (Note)

  • Nano Server 기반 이미지는 기본적으로 ContainerUser로 실행돼요.
  • Server Core 기반 이미지는 기본적으로 ContainerAdministrator로 실행돼요.

Pod 수준 보안 격리 (Pod-level security isolation)

Linux 특유의 Pod 보안 컨텍스트 메커니즘(예: SELinux, AppArmor, Seccomp, 또는 커스텀 POSIX capabilities)은 Windows 노드에서 지원되지 않아요.

프리빌리지(privileged) 컨테이너도 Windows에서 지원되지 않아요. 대신 Windows에서는 HostProcess 컨테이너를 사용해서, Linux에서 프리빌리지 컨테이너가 수행하던 많은 작업을 처리할 수 있어요.