2024. 2. 22. 23:36ㆍ자격증 공부/자격증 후기 & Tips

CKA를 취득후 대략.. 2년만에 CKS를 취득했습니다. (시험을.. Network 문제가 생겨서.. 3번떨어져.. 총 4번봤음..)
문제가 생기면 꼭꼭!! Issue를 남기면 기회를 한번 더 주기에 떨어졌다고 낙심하지맙시다!!!! (시험 한번접수로 무료 2번 이슈재기로 인한 문제 2번해서 총 4번봤음..창피하지만 공개합니다 ..)
저 같은경우는 터미널이 느려터져서 오타 날경우 지우는데만 10초.. 그리고 3번정도 연결이 끊기는 바람에 끊길때마다 시험관한테 환경 체크를 또받고 또받고해서.. 거의 30~40분 날린적이 있었습니다..ㅠ
그래서.. 이번 4번의 시험을 통해 16가지 문제유형에 대해 공유하고자 합니다.
제가 본 시험은 k8s v1.28 버전 기준입니다.

공부는 위와 같이 udemy를 통해서 공부했구요.. 그리고 해당 강의를 들으면 killercoda라는 사이트에서 문제를 풀이 할 수있도록 도와줍니다.
시험 환경이나 테스트 주의사항은 아래링크를 통해 확인합니다..
https://docs.linuxfoundation.org/tc-docs/certification/certification-resources-allowed#certified-kubernetes-security-specialist-cks
Resources Allowed: All LF Certification Programs - T&C DOCS (Candidate Facing Resources)
Packages that are part of the distribution (may also be installed by Candidate if not available by default) If you decide to install packages (not required to complete tasks) to your exam environment, you will want to be familiar with standard package mana
docs.linuxfoundation.org
본론으로 가서 해당 시험은 K8S 보안 관련 부분인데.. 실무적으로도 꽤나 도움이 많이 되는 부분입니다.
그리고 간단히 말해서 Container의 취약점인 서버와의 Runtime공유에 대한 부분을 보완하는 방법들이 많았습니다.
그래서 SecurityContexts 관련부분과 NetworkPolicy, ClusterRole등등... 이런부분들을 통해 해커들이 해당 서버의 Runtime을 공격하지못하도록 막는 부분들이 주로 였습니다. (인증서도 포함..)
그리고 최근버전이다보니 의외로 나올 거같은 Ingress Secret 부분과 OPA( open Policy agent )는 나오지 않았습니다..( 의외로 안나와서.. 당황 ) KillerShell에서는 나와서 나올줄 알았는데 말이죠..
그리고 제가 4번을 보다보니.. 4번다 문제가 다를 거같았는데 다르지않고 유형은 16개 똑같이 4번이 나왔습니다... 그러다보니 거의문제를 외운듯합니다...
그래서 !! 제 기억을 복기해서 16문제가 어떤부분이 나왔는지 공유를 하고자 합니다..
(순서는 뒤죽박죽이지만 해당 16가지를 참고해주세요 거의 비슷하게 나오지 않을까합니다..)
아래 내용을 참고해주세요.. 해당 내용은 바뀔수도 있습니다..
1. Runtimeclass -> gvisor을 배포후 해당 RuntimeClass를 Pod에 연동하는.문제
2. ServiceAccount를 만든 후 해당 SA 토큰을 파드에 할당하지 않도록 False하기
3. kube-bench를 통해 WorkerNode에 익명을 true -> false로 만들고 webhook돠 true 그리고 인증모드를 webhook으로 바꾸기 (/var/lib/kubelet/config.yaml) 해당 부분을 바꾸라고 문제에 나옴.. 경로는 안나옵니다.
4. NetworkPolicy 사용하기 (2문제가 나왔습니다.)
5. kube-apiserver 와 etcd에 TLS 1.3버전과 TLS_AES_128_GCM_SHA256 만 통신하도록 적용하기. 적용후 거의 3분정도 걸림..
6. audit 정책적용.
7. securitycontext 적용하기 ( readonlyrootfileSystem 적용, ID 10001 사용 , allowPrivilegeEscalation false하기 )
8. 특정 Namespace에 배포된 이미지를 trivy를 통해 스캔후 Critical or Warining 나오는 Pod 삭제하기
9. Dockerfile과 Pod.yaml 에 잘못된 부분 변경하기 ( User Root를 일반 유저로 변경하는 부분 )
10. k8s secret 배포후 해당 secret 을 해당 deployment에서 env로 사용하게끔 설정하기
11. apparmor 배포후 apparmor 해당 파드에 적용하기
12. imagewebhookPolicy 적용하기
13. falco 적용하기 후 해당 falco 적용된 로그 추출하여 특정 폴더에 저장하기
k8s를 만져보신분들이라면 금방 익히고 시험보실수 있습니다..
해당 부분을 참고하셔서 모두 합격하시길 바라겠습니다!!..