Context

针对 kubeadm 创建的 cluster 运行 CIS 基准测试工具时,发现了多个必须立即解决的问题。

Task

通过配置修复所有问题并重新启动受影响的组件以确保新的设置生效。

修复只对 API 服务器发现的所有以下违规行为:

1.2.7 Ensure that the --authiruzatuib-mode argument is not set to AlwaysAllow       FAIL

1.2.8 Ensure that the --authiruzatuib-mode argument includes Node             FAIL

1.2.9 Ensure that the --authiruzatuib-mode argument includes RBAC           FAIL

1.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 to 0                 FAIL (1.25中这项题没给出,不需要再修改了)

修复针对 kubelet 发现的所有以下违规行为:

Fix all of the following violations that were found against the kubelet:

4.2.1 Ensure that the anonymous-auth argument is set to false              FAIL

4.2.2 Ensure that the --authorization-mode argument is not set to AlwaysAllow          FAIL

注意:尽可能使用Webhook身份验证/授权。

修复针对 etcd 发现的所有以下违规行为:

Fix all of the following violations that were found against etcd:

2.2 Ensure that the --client-cert-auth argument is set to true                FAIL

参考资料

https://kubernetes.io/zh-cn/docs/reference/config-api/kubelet-config.v1beta1/

答题

考试时务必执行,切换集群。

kubectl config use-context KSCS00201

1. 切换到master的root下

ssh master01  && sudo -i

2. 修改 api-server

# 可以使用这条命令查

kube-bench master

查出来的,可能很多不安全项,但只修改考题要求的那几项即可。

修改之前,备份下配置文件。

mkdir bak01

cp /etc/kubernetes/manifests/kube-apiserver.yaml bak01/

vim /etc/kubernetes/manifests/kube-apiserver.yaml

# 修改、添加、删除相关内容

# 修改 authorization-mode,注意 Node 和 RBAC 之间的符号是英文状态的逗号,尔不是点。

  --authorization-mode=Node,RBAC

# 删除insecure-bind-address, 考试中可能没有这项

  --insecure-bind-address=0.0.0.0

3. 修改 kubelet

# 可以使用这条命令查询

kube-bench node

systemctl status kubelet

cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf 中你会看到 Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"。

修改这个文件之前先备份一下。

cp /var/lib/kubelet/config.yaml bak01/

vim /var/lib/kubelet/config.yaml

修改

apiVersion: kubelet.config.k8s.io/v1beta1

authentication:

anonymous:       # 修改 anonymous 下的,将 true 改为 false

enabled: false       # 该为 false

webhook:

cacheTTL: 0s

enabled: true        # 这个 webhook 下的 true 不要改

x509:

clientCAFile: /etc/kubernetes/pki/ca.crt

authorization:       # 修改 authorization 下的

mode: Webhook       # 改为Webhook

webhook:

......

# 编辑完后重新加载配置文件,并重启kubelet

systemctl daemon-reload

systemctl restart kubelet.service

4. 修改etcd

# 可以使用这条命令查

kube-bench

修改之前先备份一下文件。

cp /etc/kubernetes/manifests/etcd.yaml bak01/

vim /etc/kubernetes/manifests/etcd.yaml

修改:

  --client-cert-auth=true    # 修改为true

修改完后,等待5分钟左右,再检查一下所有pod,确保所有pod都正常。

kubectl get pod -A

# 退出返回到堡垒机 或者重新打开终端

exit

CKS 考试题整理 (03)-kube-bench 修复不安全项的更多相关文章

  1. linux基础:第三关课前考试题整理

    1.如何取得/etc/hosts 文件的权限对应的数字内容,如-rw-r--r-- 为 644, 要求使用命令取得644 这样的数字. [root@server ~]# stat /etc/hosts ...

  2. 【web前端面试题整理03】来看一点CSS相关的吧

    前言 昨天我们整理了14到js的题,今天我们再来整理14到CSS相关的题目,昨天整理时候时间有点晚了我便有点心浮气躁,里面的一些题需要再次解答,好了看看今天有些什么吧. PS:我这里挑一点来做就好了, ...

  3. node.js整理 03文件操作-遍历目录和文本编码

    遍历目录 递归算法 遍历目录时一般使用递归算法,否则就难以编写出简洁的代码. 递归算法与数学归纳法类似,通过不断缩小问题的规模来解决问题 function factorial(n) { if (n = ...

  4. win7 ubuntu10.04双系统,重装win7后,修复双启动项

    进入ubuntu的liveCD(即在试用ubuntu里),在终端里操作 首先要找到自己的ubuntu系统挂载在那个sda下面.可以用sudo fdisk -l 这个命令.然后: 1. sudo -i ...

  5. 机器学习 —— 基础整理(五)线性回归;二项Logistic回归;Softmax回归及其梯度推导;广义线性模型

    本文简单整理了以下内容: (一)线性回归 (二)二分类:二项Logistic回归 (三)多分类:Softmax回归 (四)广义线性模型 闲话:二项Logistic回归是我去年入门机器学习时学的第一个模 ...

  6. 【Linux】CentOS7 安装,遇到的各种问题,并修复win7启动项

    https://www.cnblogs.com/sxdcgaq8080/p/7457255.html ------------------------------------------------- ...

  7. ubuntu live cd修复grub引导项

    1. 通过Ubuntu Live CD(安装盘,选择try Ubuntu)进入Ubuntu系统 打开终端,依次进行如下操作: 1. sudo fdisk -l 出现如下界面: 2. 然后会看到,有好多 ...

  8. Ubuntu 修复windows启动项

    打开终端输入命令sudo gedit /etc/default/grub修改GRUB_TIMEOUT="10"然后在终端中输入sudo update-grubupdate 命令会自 ...

  9. 2019.03.29 bzoj5463: [APIO2018] 铁人两项(圆方树+树形dp)

    传送门 题意简述:给你一张无向图,问你满足存在从a−>b−>ca->b->ca−>b−>c且不经过重复节点的路径的有序点对(a,b,c)(a,b,c)(a,b,c) ...

  10. Window磁盘错误修复chkdsk

    场景: 狗日的垃圾移动磁盘.U盘质量太差劲,会出现磁盘坏道.读写异常~心疼数据.... 命令: 01.Win+R 调出cmd 02.根据移动盘符或磁盘盘符,进行修复 03.执行修复chkdsk /f  ...

随机推荐

  1. JQ-DOM与元素的操作

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. data.frame数据框操作——R语言

    统计分析中最常见的原始数据形式是类似于数据库表或Excel数据表的形式. 这样形式的数据在R中叫做数据框(data.frame). 数据框类似于一个矩阵,但各列允许有不同类型:数值型向量.因子.字符型 ...

  3. [Java SE/Junit] 基于Java的单元测试框架Mockito

    Mockito 是一个模拟测试框架,主要功能是在单元测试中模拟类/对象的行为. 1 为什么要使用Mockito? Mock可以理解为创建一个虚假的对象,或者说模拟出一个对象.在测试环境中用来替换掉真实 ...

  4. APISIX Ingress 如何使用 Cert Manager 管理证书

    Apache APISIX Ingress Controller 是一款以 Apache APISIX 作为数据面的 Kubernetes Ingress Controller 开源工具,目前已经更新 ...

  5. day03-商家查询缓存02

    功能02-商铺查询缓存02 知识补充 (1)缓存穿透 https://blog.csdn.net/qq_45637260/article/details/125866738 缓存穿透(cache pe ...

  6. 2.JAVA入门基础知识

    数据类型: java的数据类型分为两大类:基本类型和引用类型 基本类型: 整数类型: byte 一个字节 -128-127 short 2个字节 32768-32767 int 4个字节 很大 lon ...

  7. gRPC 应用指引

    一.核心概念.架构及生命周期 1.服务定义 gRPC 默认使用 protocol buffers. service HelloService { rpc SayHello (HelloRequest) ...

  8. vue导入Excel数据并展示成表格

    前言: 用到的库参考链接: FileReader:https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader    这个在之前的下载exce ...

  9. 使用STM32CubeMX生成ThreadX实时操作系统工程模板

    博客主页:链接.转载请注明出处! 由于需要在stm32上使用USB Host CDC-ECM,连接EC20发送数据到服务器,接触到了ThreadX实时操作系统. 在调研过程中,发现stm32官方USB ...

  10. 2022-04-06:go中proto文件能跨平台,那是因为能生成不同语言的代码,做框架开发用protoc+插件生成代码是不合适的,需要解析,请问如何解析?

    2022-04-06:go中proto文件能跨平台,那是因为能生成不同语言的代码,做框架开发用protoc+插件生成代码是不合适的,需要解析,请问如何解析? 答案2022-04-06: go get ...