CKS — 쿠버네티스 보안 전문가 · 마이크로서비스 취약점 최소화 · 퀴즈
퀴즈: 마이크로서비스 취약점 최소화
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
PodSecurityPolicy 가 제거되고 Pod Security Admission 으로 대체된 핵심 이유는?
- PSP 가 CRD 기반이라 성능이 느렸다
- PSP 는 네임스페이스 범위 리소스라 클러스터 전체에 적용할 수 없었다
- PSP 가 seccomp 를 지원하지 않았다
- PSP 사용에 필요한 RBAC 구조 자체가 권한 상승 경로였고 어떤 정책이 적용될지 예측하기 어려웠다
restricted 프로파일을 통과하려면 반드시 있어야 하는 설정 조합은?
- hostNetwork: false 와 hostPID: false 만
- readOnlyRootFilesystem 과 runAsUser, hostPath 금지 이 셋만
- privileged: false 하나면 충분하다
- runAsNonRoot, allowPrivilegeEscalation: false, capabilities.drop ALL, seccompProfile
PSA 를 기존 클러스터에 도입할 때 권장되는 순서는?
- warn 과 audit 를 먼저 켜서 위반을 관찰한 뒤 enforce 로 올린다
- 곧바로 enforce=restricted 를 전체 네임스페이스에 적용한다
- enforce=privileged 로 시작해 점점 낮춘다
- AdmissionConfiguration 을 먼저 바꾼 뒤 라벨은 나중에 붙인다
쿠버네티스 Secret 에 대한 설명 중 옳은 것은?
- 기본 설정에서 etcd 에 평문으로 저장되며 base64 는 암호화가 아니다
- base64 인코딩되어 저장되므로 etcd 에서도 안전하다
- kubelet 이 노드에서 자동으로 암호화한다
- RBAC 으로 접근을 막으면 etcd 백업에서도 읽을 수 없다
EncryptionConfiguration 의 providers 목록에서 identity 를 첫 번째에 두면?
- 모든 Secret 이 즉시 재암호화된다
- 새로 쓰는 Secret 이 평문으로 저장된다
- API 서버가 설정 오류로 기동에 실패한다
- 읽기만 가능하고 쓰기가 막힌다
Secret 을 환경변수 대신 볼륨으로 마운트하는 것이 더 안전한 이유는?
- 볼륨으로 마운트하면 etcd 가 아니라 노드 디스크에 저장되기 때문
- 볼륨 마운트는 RBAC 검사를 거치지 않기 때문
- 환경변수는 크기 제한이 1KB 이기 때문
- 환경변수는 /proc/PID/environ 으로 읽히고 자식 프로세스에 상속되며 로그나 크래시 리포트에 실려 나가기 때문