일상 속 생각
CKS 자격증 합격 후기 (with istio)
inspirit941
2025. 4. 14. 19:22
반응형
https://training.linuxfoundation.org/certification/certified-kubernetes-security-specialist/
시험 준비기간 : Udemy 강의 완강에만 4개월. 문제풀이는 3일.
Coming Soon: The current CKS Competency “Implement Pod-to-Pod encryption using Cilium” will be updated to “Implement Pod-to-Pod encryption (Cilium, Istio)” on April 8, 2025, at 00:00 UTC.
시험 보기 일주일 전에, Pod-to-Pod Encryption 커리큘럼에 istio가 추가됐었다.
istio를 실제 업무에서 쓰고 있었기 때문에 별 문제는 없었지만,
Udemy 강의에도 istio 내용은 업데이트가 안 되어 있었기 때문에 강의만 듣고 준비하는 상황이었다면 머리 좀 아팠을 것 같다.
수강한 udemy 강의
https://www.udemy.com/course/certified-kubernetes-security-specialist-certification/
- 총 16문제 출제됨.
- killer.sh 보다는 약간 쉬웠던 것 같다. killer.sh는 문제에 필요한 yaml 파일을
kubectl --dry-run=client -oyaml
명령어로 직접 만들어야 하는 것들만 있었는데, 실제 시험에는 yaml 파일을 미리 주는 경우가 더 많았음. - CKA 때와는 다르게, kubectl만으로 문제를 풀 수 없다. 진짜 기본적인 리눅스 명령어
grep
,jq
,base64 -d
라던가, etcdctl이나 falco, trivy, bom 등 문제 해결에 필요한 명령어들을 추가로 알아야 한다.
2022년에 CKA 자격증 준비하던 때와는 시험 환경이 많이 달라져서 처음에 적응이 힘들었다.
- PSI Secure Browser가 지원됨. 예전에는 내 크롬 브라우저에 자주 보는 공식문서들을 북마크해두고 시험 때 빠르게 볼 수 있었는데, 지금은 아예 리눅스 재단에서 Remote Desktop을 지원해준다.
- killer.sh와 달리, 실제 시험환경에서 remote desktop은 반응속도가 엄청 느리다. 터미널 크기 변경 / 브라우저 사이즈 변경 등 GUI로 할 수 있는 모든 것들이 한 템포 늦게 반영되는데, 시험 시간에 쫒기기 시작하면 이게 사람 미치게 한다.
- 리눅스 환경에서의 복사 / 붙여넣기 명령어는 윈도우나 Mac과 다르다. Mac 기준 ctrl + shift + C가 복사, ctrl + shift + V가 붙여넣기. 근데 정작 명령어는 remote desktop에서 제공하는 firefox 브라우저에서 동작을 안 한다. 브라우저에서 ctrl + shift + C로 복사를 시도하면 firefox의 '개발자 도구' 창이 열리는데, remote desktop 반응속도가 느려서 다시 닫기도 힘들다. 마찬가지로, 시험 시간에 쫒기기 시작하면 엄청 짜증난다.
- 복사 붙여넣기 명령어가 씹히는 현상도 자주 나온다. 짜증나지만, killer.sh 환경에서 익숙해질 수밖에 없다.
- 문제 풀이에 필요한 공식문서 링크는 실제 시험 문제에서 링크를 제공해준다. (falco, trivy, istio, etcd...)
- killer.sh 에는 지원을 안해주는데, 그 어떤 후기에도 '문제풀이에 필요한 공식문서'를 어떻게 볼 수 있는지 설명이 없어서
falco.org/docs, etcd.io/docs, trivy.dev/latest/docs, docs.cilium.io 같은 도메인 링크를 외웠는데, 그럴 필요가 없었다. - 문제가 etcd 관련되어 있다면 etcd 문서 링크를, falco 관련 문제라면 falco 문서 링크를 제공해준다.
- killer.sh 에는 지원을 안해주는데, 그 어떤 후기에도 '문제풀이에 필요한 공식문서'를 어떻게 볼 수 있는지 설명이 없어서
처음에는 정답률 63%로 탈락하고, 하루만에 바로 재시험을 봐서 76%로 통과했다.
(재시험에서 똑같은 문제가 다시 나왔다)
나왔던 문제들.
- istio: 특정 namespace에 mTLS strict mode 활성화하는 법.
- namespace에 istio sidecar injection하고, 기존 workload (deployment) 를 전부 재시작한 뒤, mTLS strict mode를 활성화하는 PeerAuthentication CR을 배포하면 된다. (공식문서 복사 / 붙여넣기로 해결 가능)
- kubelet Authentication / Authorization에 webhook mode 설정
- Audit Policy
- ImagePolicyWebhook
- Network Policy 설정하기
- Pod Security Standard가 restricted인 상태에서, deployment Fail Event 보고 SecurityContext 수정하기
- host의 /dev/mem 에 접근하는 deployment 확인해서 scale 0으로 만들기
- bom으로 특정 package 버전을 사용하는 image를 찾아서, 그 이미지로 배포된 deployment를 scale 0으로 만들기
- ingress TLS 설정하기
- TLS secret 생성하기
- kubeadm으로 만들어진 k8s cluster의 worker node kubelet 버전업하기
- Dockerfile과 deployment에서 보안 개선이 필요한 부분 찾아서 수정하기 (root 권한으로 실행하는 로직 삭제)
- docker group에 특정 user 정보가 들어가 있지 않도록 삭제하기
- apparmor
반응형