CKS 题库 10、Trivy 扫描镜像安全漏洞
Task使用 Trivy 开源容器扫描器检测 namespace kamino 中 具有严重漏洞的镜像 的 Pod。 查找具有 High 或 Critical 严重性漏洞的镜像,并删除使用这些镜像的 Pod 。 注意:Trivy 仅安装在 cluster 的 master 节点上, 在工作节点上不可使用。 你必须切换到 cluster 的 master 节点才能使用 Trivy 参考资料https://kubernetes.io/zh-cn/docs/reference/kubectl/cheatsheet/#格式化输出 解答 切换集群 kubectl config use-context KSSC00401 查看namespace下pod 和image kubectl get pods -n kamino -o=custom-columns="NAME:.metadata.name,IMAGE:.spec.containers[*].image" 提取镜像名并进行扫描 kubectl describe pod -n kamino |...
CKS 题库 9、网络策略NetworkPolicy
Task创建一个名为 pod-restriction 的 NetworkPolicy 来限制对在 namespace dev-team 中运行的 Pod products-service 的访问。 只允许以下 Pod 连接到 Pod products-service namespace qaqa 中的 Pod 位于任何 namespace,带有标签 environment: testing 的 Pod 注意:确保应用 NetworkPolicy。 你可以在 /cks/net/po.yaml 找到一个模板清单文件。 参考https://kubernetes.io/zh/docs/concepts/services-networking/network-policies/#networkpolicy-resource 解答切换集群 kubectl config use-context KSSH00301 检查namespace标签 模拟环境已提前打好标签了,所以你只需要检查标签即可。但为了防止考试时,没有给你打标签,所以还是需要你将下面打标签的命令记住。 # 查看...
CKS 题库 8、沙箱运行容器 gVisor
Context该 cluster 使用 containerd 作为 CRI 运行时。containerd 的默认运行时处理程序是 runc 。 containerd 已准备好支持额外的运行时处理程序 runsc (gVisor)。 Task使用名为 runsc 的现有运行时处理程序,创建一个名为 untrusted 的 RuntimeClass。 更新 namespace server 中的所有 Pod 以在 gVisor 上运行。 您可以在 /cks/gVisor/rc.yaml 中找到一个模版清单。 参考https://kubernetes.io/zh-cn/docs/concepts/containers/runtime-class/#2-创建相应的-runtimeclass-资源 解答切换集群 kubectl config use-context KSMV00301 创建RuntimeClass vim /cks/gVisor/rc.yaml rc.yaml apiVersion: node.k8s.io/v1 ##将apiVersion:...
CKS 题库 7、Dockerfile检测
Task分析和编辑给定的Dockerfile /cks/docker/Dockerfile(基于ubuntu:16.04 镜像), 并修复在文件中拥有的突出的安全/最佳实践问题的 两个指令。 分析和编辑给定的清单文件 /cks/docker/deployment.yaml , 并修复在文件中拥有突出的安全/最佳实践问题的 两个字段。 注意:请勿添加或删除配置设置;只需修改现有的配置设置让以上两个配置设置都不再有安全/最佳实践问题。 注意:如果您需要非特权用户来执行任何项目,请使用用户ID 65535 的用户 nobody 。 只修改即可,不需要创建。 参考https://kubernetes.io/zh/docs/concepts/security/pod-security-standards/#restricted 解答切换集群 kubectl config use-context KSSC00301 修改Dockerfile vim /cks/docker/Dockerfile #修改基础镜像为题目要求的...
CKS 题库 6、创建 Secret
Task在 namespace istio-system 中获取名为 db1-test 的现有 secret 的内容 将 username 字段存储在名为 /cks/sec/user.txt 的文件中,并将password 字段存储在名为 /cks/sec/pass.txt 的文件中。 注意:你必须创建以上两个文件,他们还不存在。 注意:不要在以下步骤中使用/修改先前创建的文件,如果需要,可以创建新的临时文件。 在 istio-system namespace 中创建一个名为 db2-test 的新 secret ,内容如下: username : production-instancepassword : KvLftKgs4aVH 最后,创建一个新的 Pod ,它可以通过卷访问 secret db2-test : Pod 名称 secret-pod Namespace istio-system 容器名 dev-container 镜像 nginx 卷名 secret-volume 挂载路径...
CKS 题库 5、日志审计 log audit
Task在cluster中启用审计日志。为此,请启用日志后端,并确保: 日志存储在 /var/log/kubernetes/audit-logs.txt 日志文件能保留 10 天 最多保留 2 个旧审计日志文件 /etc/kubernetes/logpolicy/sample-policy.yaml 提供了基本策略。它仅指定不记录的内容。 注意:基本策略位于 cluster 的 master 节点上。 编辑和扩展基本策略以记录: RequestResponse 级别的 persistentvolumes 更改 namespace front-apps 中 configmaps 更改的请求体 Metadata 级别的所有 namespace 中的 ConfigMap 和 Secret 的更改 此外,添加一个全方位的规则以在 Metadata...
CKS 题库 4、RBAC - RoleBinding
Context绑定到 Pod 的 ServiceAccount 的 Role 授予过度宽松的权限。完成以下项目以减少权限集。 Task一个名为 web-pod 的现有 Pod 已在 namespace db 中运行。 编辑绑定到 Pod 的 ServiceAccount service-account-web 的现有 Role,仅允许只对 services 类型的资源执行 get 操作。 在 namespace db 中创建一个名为 role-2 ,并仅允许只对 namespaces 类型的资源执行 delete 操作的新 Role。 创建一个名为 role-2-binding 的新 RoleBinding,将新创建的 Role 绑定到 Pod 的 ServiceAccount。 注意:请勿删除现有的...
CKS 题库 3、默认网络策略
Context一个默认拒绝(default-deny)的NetworkPolicy可避免在未定义任何其他NetworkPolicy的namespace中意外公开Pod。 Task为所有类型为 Ingress+Egress 的流量在 namespace testing 中创建一个名为 denypolicy 的新默认拒绝 NetworkPolicy 。 此新的 NetworkPolicy 必须拒绝 namespace testing 中的所有的 Ingress + Egress 流量。 将新创建的默认拒绝 NetworkPolicy 应用在 namespace testing 中运行的所有 Pod 。 你可以在 /cks/net/p1.yaml 找到一个模板清单文件。 参考https://kubernetes.io/zh-cn/docs/concepts/services-networking/network-policies/#默认拒绝所有入口和所有出站流量 解答切换集群 kubectl config use-context KSCS00101 编辑模板文件...
CKS 题库 2、Pod指定ServiceAccount
Context您组织的安全策略包括: ServiceAccount不得自动挂载API凭据 ServiceAccount名称必须以“-sa”结尾 清单文件 /cks/sa/pod1.yaml 中指定的Pod由于 ServiceAccount 指定错误而无法调度。 请完成以下项目: Task 在现有namespace qa 中创建一个名为 backend-sa 的新ServiceAccount, 确保此ServiceAccount不自动挂载API凭据。 使用 /cks/sa/pod1.yaml 中的清单文件来创建一个Pod。 最后,清理 namespace qa 中任何 未使用的 ServiceAccount。 参考https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/configure-service-account/#使用默认的服务账户访问-api-服务器 解答切换集群 kubectl config use-context KSCH00301 创建 ServiceAccountvi...
CKS 题库 1、kube-bench 修复不安全项
Context针对 kubeadm创建的 cluster运行CIS基准测试工具时,发现了多个必须立即解决的问题。 Task通过配置修复所有问题并重新启动受影响的组件以确保新的设置生效。 修复针对 API 服务器发现的所有以下违规行为:1.2.7 Ensure that the –authorization-mode argument is not set to AlwaysAllow FAIL1.2.8 Ensure that the –authorization-mode argument includes Node FAIL1.2.9 Ensure that the –authorization-mode argument includes RBAC FAIL1.2.18 Ensure that the –insecure-bind-address argument is not set FAIL 1.25中这项题目没给出,但最好也检查一下,模拟环境里需要改)1.2.19 Ensure that the –insecure-port argument is set...


