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. SQL Server修改sa用户密码

     SQL Server数据库使用windows用户登录,安全性->登录名->找到sa用户->属性: 可直接修改sa用户密码(可去掉勾选强制实施密码策略)

  2. 浅学git工具

    1.git工具介绍及使用 git工具直接安装: 直接运行exe文件进行安装,按默认的操作点击下一步就行了 校验: 在DOS命令行中输入:git  --version 如果能正常显示出对应的版本就是ok ...

  3. 五月十二号java基础知识点

    1.注解是代码中特殊标记,作用是告知编译器做什么事2.反射允许程序在运行状态时,对任意一个字节码获取它所有信息3.内部类是定义在类中的嵌套类4.匿名内部类是定义在类的同时创建该类的一个对象5.lamb ...

  4. LeeCode 字符串问题(一)

    剑指Offer 05: 替换空格 题目描述 请实现一个函数,把字符串 s 中的每个空格替换成"%20" 建立模型 这就是一个遍历字符串元素替换的问题 需要注意的就是Python/J ...

  5. Junit5 pom依赖

    <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter- ...

  6. ros-python学习样例笔记

    1.通信基本原理介绍 待写 2.三种通信方式的程序样例(python版) 2.1 topic 通信方式(非自定义和自定义) 2.1.1 创建工作空间和topic功能包 在ubuntu中打开命令行,输入 ...

  7. Docker介绍下载安装、制作镜像及容器、做目录映射、做端口映射

    在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器.网络.内存及存储等,予以抽象.转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以 ...

  8. JAVASE和JAVAEE的区别

    JAVASE和JAVAEE的区别 JavaEE: Java Enterprise Edition,Java企业版,多用于企业级开发,包括web开发等等.企业版本帮助开发和部署可移植.健壮.可伸缩切安全 ...

  9. VS 输入快捷键propfull

    大家都知道prop.propg输入快捷键. 当前我们需要生成一段包含属性和字段的代码时,可以propfull. propfull在安装了reshaper后,会被隐藏掉.没关系,直接敲propfull, ...

  10. vscode使用git推送代码

    下载vscode https://code.visualstudio.com/ 点击应用管理 搜素Chinese (Simplified) Language Pack for Visual Studi ...