[CKS] CIS基准测试,修复kubelet和etcd不安全项
目前的所有题目为2024年10月后更新的最新题库,考试的k8s版本为1.31.1
专栏其他文章:
- [CKS] Create/Read/Mount a Secret in K8S-CSDN博客
- [CKS] Audit Log Policy-CSDN博客
-[CKS] 利用falco进行容器日志捕捉和安全监控-CSDN博客- [CKS] K8S NetworkPolicy Set Up-CSDN博客
- [CKS] K8S AppArmor Set Up-CSDN博客
- [CKS] 利用Trivy对image进行扫描-CSDN博客
- [CKS] kube-batch修复不安全项-CSDN博客
- [CKS] K8S ServiceAccount Set Up-CSDN博客
- [CKS] K8S Admission Set Up-CSDN博客
- [CKS] K8S Dockerfile和yaml文件安全检测-CSDN博客
- CKS真题
- CKA真题
BackGround
针对 kubeadm
创建的 cluster
运行CIS基准测试工具时,发现了多个必须立即解决的问题。
Task
通过配置修复所有问题并重新启动受影响的组件以确保新的设置生效。
- 修复针对kubelet发现的所有以下违规行为:
- 1.1.1 确保将 anonymous-auth 参数设置为 false FAIL
- 1.1.2 确保 --authorization-mode 参数未设置为 AlwaysAllow FAIL
注意:尽可能使用Webhook身份验证/授权。
- 修复针对etcd发现的所有以下违规行为:
- 2.1.1 确保 --client-cert-auth 参数设置为 true FAIL
Practice
Step 1: 切换到考试环境(通过ssh命令)考试的时候会给出来
Step 2: 修复kubelet不安全项目
-
- 首先我们需要明确的是kubelet的配置文件所在位置为
/var/lib/kubelet/config.yaml
,这时我们就需要对kubelet
的配置文件做出以下修改:
- 首先我们需要明确的是kubelet的配置文件所在位置为
...
authentication:
anonymous:
enabled: false
webhook:
cacheTTL: 0s
enabled: true
...
authorization:
mode: Webhook
webhook:
cacheAuthorizedTTL: 0s
cacheUnauthorizedTTL: 0s
主要是对authentication.anonymous.enabled
字段修改为false
,authentication.webhook.enabled
字段修改为true
,authorization.mode.mode
修改为Webhook
Step 3: 修复etcd不安全项目
- 首先我们需要明确的是etcd的配置文件所在位置为
/etc/kubernetes/manifests/etcd.yaml
,所以我们需要对etcd的文件内容做出如下的更改
...
spec:
containers:
- command:
...
- --client-cert-auth=true
...
就是将client-cert-auth
字段设置为true
Step 4: 重启kubelet
systemctl daemon-reload
systemctl restart kubelet
验证
大家可以使用kubectl get pod -A
来进行验证,如果所有pod都启动成功了,则代表这个题目你做正确了