Loading... <div class="tip share">请注意,本文编写于 864 天前,最后修改于 864 天前,其中某些信息可能已经过时。</div> 我是2022年11月6日考取CKS的,当时考试环境Kubernetes版本是v1.24,到现在,也过去快一个月了,现在就给大家讲一下,CKS该怎么备考。 本文**假设**你**熟悉Kubernetes基础概念**,如Pod、Serviecs、Ingress、PV、PVC等,如果对此不熟悉,建议去看一遍《Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)》,看的同时也要结合Kubernetes官方文档 [Kubernetes官方文档](https://kubernetes.io/zh-cn/docs/home/) [Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)(博文视点出品)](https://item.jd.com/13221888.html?cu=true) 同时你也要**拥有CKA认证**,否则不能报考。 ##### 在备考之前 1. 购买认证[LFOSSA中国](https://training.linuxfoundation.cn/certificates),对于如何购买认证、购买认证后如何兑换考试卷、考试卷优惠等,建议根据网站指引或关注LFOSSA微信公众号,浏览历史文章 2. 查看当前考试版本[CKS认证介绍](https://training.linuxfoundation.org/certification/certified-kubernetes-security-specialist/#),确认你要考试的Kubernetes版本以及考试范围,不同的Kubernetes版本特性不同  3. 预约考试,尽量预约晚七点到早六点时间段的考试 ##### CKS考什么 1. 各种对象的安全加固及角色权限变更 2. yaml文件缺陷分析或漏洞扫描处置 3. 工作负载状态分析 4. 日志审计 tips:可以查看[CKA/CKS 备考攻略](https://yunify.anybox.qingcloud.com/s/CMAi8VayPijKD6YDUe1UUr9LCE6WqZPI),或者[CKS认证介绍](https://training.linuxfoundation.org/certification/certified-kubernetes-security-specialist/#),有更全面的介绍。相对于CKA更加综合和复杂。 ##### 如何备考 1. 可以在自己电脑部署个虚拟机跑[K3S](https://k3s.io/)或者[minikube](https://kubernetes.io/zh-cn/docs/tutorials/hello-minikube/),或者使用[killer.sh](https://killer.sh/dashboard)的环境也可以,主要是**有个Kubernetes环境来练习** 2. 一定**要熟悉Kubernetes知识点**,建议刷题前先过一遍Kubernetes知识点,查漏补缺,或温故而知新。 **注意**:会有很多文章让我们整理好书签在浏览器,在考试时候用。**这个没必要**,因为考试已经不用浏览器了,有个专用的考试软件,所以你也无法通过浏览器打开保存好的标签页。 * [使用网络安全策略来限制集群级别的访问](https://kubernetes.io/docs/concepts/services-networking/network-policies/) * [使用 CIS 基准检查 Kubernetes 组件(etcd, kubelet, kubedns, kubeapi)的安全配置](https://github.com/aquasecurity/kube-bench#quick-start) * [正确设置带有安全控制的 Ingress 对象](https://kubernetes.io/docs/concepts/services-networking/ingress/) * [最小化 GUI 元素的使用和访问](https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/README.md) * [在部署之前验证平台二进制文件](https://github.com/kubernetes/kubernetes/releases) * [限制访问 Kubernetes API1](https://kubernetes.io/docs/tasks/administer-cluster/access-cluster-api/) * [限制访问 Kubernetes API2](https://kubernetes.io/docs/concepts/security/controlling-access/) * [限制访问 Kubernetes API3](https://kubernetes.io/docs/tasks/run-application/access-api-from-pod/) * [使用基于角色的访问控制来最小化暴露 (RBAC)](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) * [谨慎使用服务帐户,例如禁用默认设置,减少新创建帐户的权限1](https://kubernetes.io/docs/reference/access-authn-authz/service-accounts-admin/) * [谨慎使用服务帐户,例如禁用默认设置,减少新创建帐户的权限2](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/) * [Kubernetes 版本升级](https://kubernetes.io/docs/tasks/administer-cluster/cluster-upgrade/) * [最小化主机操作系统的大小(减少攻击面)](https://kubernetes.io/docs/tasks/administer-cluster/securing-a-cluster/#preventing-containers-from-loading-unwanted-kernel-modules) * [最小化 IAM 角色](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) * [最小化对网络的外部访问](https://pwittrock.github.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/) * [适当使用内核强化工具,如 AppArmor, seccomp1](https://kubernetes.io/docs/tutorials/clusters/apparmor/) * [适当使用内核强化工具,如 AppArmor, seccomp2](https://kubernetes.io/docs/tutorials/clusters/seccomp/) * [适当使用内核强化工具,如 AppArmor, seccomp3](https://kubernetes.io/docs/tutorials/clusters/apparmor/#securing-a-pod) * [适当使用内核强化工具,如 AppArmor, seccomp4](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-seccomp-profile-for-a-container) * [设置适当的 OS 级安全域,例如:PSP, OPA, security contexts1](https://kubernetes.io/docs/concepts/policy/pod-security-policy/) * [设置适当的 OS 级安全域,例如:PSP, OPA, security contexts2](https://kubernetes.io/blog/2019/08/06/opa-gatekeeper-policy-and-governance-for-kubernetes/) * [设置适当的 OS 级安全域,例如:PSP, OPA, security contexts3](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) * [管理 Kubernetes 密钥](https://kubernetes.io/docs/concepts/configuration/secret/) * [在多租户环境中使用沙箱容器运行时 (例如gvisor, kata容器)](https://kubernetes.io/docs/concepts/containers/runtime-class/) * [使用 mTLS 实现 Pod 对 Pod 加密](https://kubernetes.io/docs/tasks/tls/managing-tls-in-a-cluster/) * [最小化基础镜像](https://sysdig.com/blog/dockerfile-best-practices/) * [将允许的镜像仓库加入白名单,对镜像进行签名和验证](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#imagepolicywebhook) * [工作负载静态分析 (e.g. kubernetes resources, docker files)](https://kubernetes.io/blog/2018/07/18/11-ways-not-to-get-hacked/#7-statically-analyse-yaml) * [扫描镜像,找出已知的漏洞](https://github.com/aquasecurity/trivy#quick-start) * [在主机和容器级别执行系统调用进程和文件活动的行为分析,以检测恶意活动](https://kubernetes.io/docs/tutorials/clusters/seccomp/) * [检测物理基础架构应用程序,网络,数据,用户和工作负载中的威胁](https://falco.org/docs/) * [深入分析、调查和识别环境中异常行为](https://kubernetes.io/docs/tasks/debug-application-cluster/audit/) * [确保容器在运行时不变](https://kubernetes.io/docs/concepts/policy/pod-security-policy/) 3. 搜索最近时间范围的通过CKS认证的博主的博文,获取一些题目和解题思路,**自己跟着实操一遍,并检验结果是否正确**(毕竟有的博主在水文,那个解题思路是错的)。同时**结合Kubernetes知识点**(可以自己用xmind建立Kubernetes知识点的思维导图),**理解题目的解题思路**,**切记不要死记硬背**,考试要操作的对象名是会变的。 我这边搜集了一些题目,供大家参考 * [https://blog.csdn.net/xixihahalelehehe/article/details/122525427](https://blog.csdn.net/xixihahalelehehe/article/details/122525427) * [https://cloud.tencent.com/developer/article/1924628](https://cloud.tencent.com/developer/article/1924628) * [https://blog.51cto.com/ghostwritten/5355911](https://blog.51cto.com/ghostwritten/5355911) * [https://www.jianshu.com/p/9047965879b7](https://www.jianshu.com/p/9047965879b7) * [https://www.haxi.cc/archives/cks-simulator-1-22.html](https://www.haxi.cc/archives/cks-simulator-1-22.html) * [http://www.4k8k.xyz/article/april_4/123994683](http://www.4k8k.xyz/article/april_4/123994683) * [https://www.codeleading.com/article/61766134424/](https://www.codeleading.com/article/61766134424/) * [https://icode.best/i/04945847283639](https://icode.best/i/04945847283639) * [http://www.kissloli.cn/2022/07/22/archives/376](http://www.kissloli.cn/2022/07/22/archives/376) * [http://zz666zz.com/article/info/41701](http://zz666zz.com/article/info/41701) 4. 题目看得差不多之后,可以去[killer.sh](https://killer.sh/dashboard)进行一次模拟考试,熟悉一下PSI考试系统。[killer.sh](https://killer.sh/dashboard)的题目是比较难的,但实际考试不会有那么难,所以做不完或者成绩差不要紧,不要心灰意冷,继续好好备考就对了。 5. 对于NetworkPolicy 很多人可能不理解这个NetworkPolicy,这里有个数据流的[示意网站](https://editor.cilium.io/),帮助大家理解 6. 对于PSP 我不确定Kubernetes v1.25版本后是否还考,这个已经在v1.25特性中废除了,建议**不要花时间**在理解PSP的题目上。 ##### 备考多久 考试的网络并不会很好,同时题目又多,且只有两次机会,一定要尽量做到不参考官网做出80%的题目。所以根据每个人的情况不同,如果经常使用的人,可能备考一两周就可以了。如果不经常使用或者刚学的,建议预留充足时间备考。毕竟没通过的话2800就没了,慎重~~ ##### 打个广告 如果在备考CKS过程中有遇到了什么问题,或者还有疑问,可以通过邮件联系我。同时也提供有偿指导服务,有意可以邮件联系~ 邮箱:gorquanwu@gmail.com 最后,祝大家早日上岸,拿到自己心心念念的CKS~ 最后修改:2022 年 12 月 11 日 © 允许规范转载 赞 1 如果对你有帮助,可以请我喝杯奶茶哦