Certified Kubernetes Security Specialist (CKS) 考照筆記

話說還在新加坡工作時,那時候就用公司福利金購買了 CKA、CKAD、CKS 的考試,前兩張因為有想換工作的壓力所以就很快地考到,最後這一張 Security 的則是拖延症發作,一路拖到最近考試快到期才抓緊時間趕快考了。
前面的廢話說完來點有營養的,關於這張 Security 的證照,首先我建議最好至少有考過 CKA 的證照,或是確定你能熟練的管理 Kubernetes 集群,而且操作也要熟悉再來考這張,這張在考試解題過程中,熟練操作是基本還要加上知道去哪裡找問題或是設定集群的設定,所以真的建議先有 CKA 再考比較好。
考試準備

我是到上面這個網站有訂閱會員,就有 CKS 考證照課程可以上,看影片介紹每個單元的觀念大概有這些單元:
- Understanding the Kubernetes Attack Surface
- 介紹 Kubernetes 環境可能存在的可攻擊面
- Cluster Setup and Hardening
- 集群設定以及安全強化
- 介紹像是 CIS Benchmark、Kube Bench 等工具掃描漏洞並如何修復
- 集群中各個組件 (api-server, etcd, kubelet, docker daemon) 跟安全以及身分驗證的正確設定
- 集群中的 RBAC
- Network Policy
- Ingress 的證書配置
- System Hardening
- 主要介紹 Worker Node 相關的安全議題
- 正確設定 VM 的 SSH 跟 sudo
- UFW 防火牆
- 最小化雲端 IAM 權限
- Syscall 相關議題
- Seccomp
- AppArmor
- Minimize Microservice Vulnerabilities
- 應用跑在集群中如何讓可攻擊面最小化
- Security Contexts
- Admission Controllers (Validating/Mutating Admission Controllers) 驗證阻擋不安全的應用設定
- Open Policy Agent (OPA) 同上,但可以用 Rego 語法實現複雜的檢查
- Runtime Classes 配置使用 gVisor / Kata container 實現沙盒容器
- Supply Chain Security
- 應用供應鏈安全性
- Manifest 掃描,kubesec
- Image 掃描,Trivy
- Monitoring Logging and Runtime Security
- 如何監控異常行為
- 配置 kube-api-server audit log
- Falco 監測容器中的異常行為
每個單元看完都有練習題,以及最後會有模擬考試可以練習,都建議作完題目要去翻一下官方文件搞懂怎麼配置,以及有個印象要打甚麼關鍵字搜尋找到文件,這樣考試找文件速度才會快。
最後 KodeKloud 上面題目做完可以去下面這網站有模擬考,演練一下做題速度。

學習資源
我是有看下面這個網站的重點整理

然後下面是我覺得必考的,模擬試題以及真正考試有出現容易不熟練的題目。

考到爛了,CKA、CKAD 都有考,一定要看

通常都是叫你配置一下 readOnlyRootFilesystem 要知道來這裡複製設定

會考叫你到 worker node 上載入配置並設定 pod 使用它

同上

主要考 ImagePolicyWebhook 要會配置

要會設定題目要求你要印的東西

會知道去哪裡啟動輸出日誌以及把可以容器的行為抓出來
通常是要會修復掃描報告裡 Fail 的錯誤
心得
這次從上課到考完大概花一個月,主要難度是在很多過去沒接觸過的知識,以及底層知識要學習,像是 Linux syscall、tls 等等,而考試時每一題花的時間都比較多,常常都在改 controll plan static pod 設定等它重開,導致時間比較趕,真的建議操作要熟不然題目會寫不完。
最後考完這張證照,就知道上班的時候又有哪些地方可以折騰了,祝大家考試順利。