【Kubernetes】部署 kube-bench 实现 K8s 最佳实践

CIS (Center for Internet Security),CIS Kubernetes 基准是一套针对 Kubernetes 安全配置的最佳实践。接下来,将介绍如何利用 kube-bench 来实现这些最佳实践。

  • kube-bench_0.6.17_linux_amd64
  • K8s v1.20

1、安装 kube-bench

bash 复制代码
# 安装 kube-bench,此处下载 kube-bench_0.6.17_linux_amd64.tar.gz
wget https://github.com/aquasecurity/kube-bench/releases/tag/v0.6.17/kube-bench_0.6.17_linux_amd64.tar.gz

# 解压(任意目录,此处解压到 /home/CIS),解压生成 cfg 目录和 kube-bench 脚本文件
# cfg/config.yaml,包含 master 的组件和配置文件位置,若 k8s 的配置文件(/etc/kubernetes/manifests)自定义了目录需要进行修改
tar -zxvf kube-bench_0.6.17_linux_amd64.tar.gz

2、使用 kube-bench

bash 复制代码
# 此处命令检查 etcd
# --config-dir 设置为解压后的 cfg 目录
# --config 设置为解压后 cfg 目录下的 config.yaml 文件
./kube-bench --config-dir /home/CIS/cfg --config /home/CIS/cfg/config.yaml run --targets=etcd

# 返回结果
## [PASS] 表示安全
## [FAIL] 表示不安全,需要修改
## [WARN] 表示警告,不安全级别较低

3、案例

bash 复制代码
# 此处检测 master 节点
./kube-bench --config-dir /home/CIS/cfg --config /home/CIS/cfg/config.yaml run --targets=master

# 上方返回结果中可看到有一条 [FAIL] 记录,过滤显示就能看到下方有这条记录的解决方法
# 这条 [FAIL] 是关于 etcd 存储目录的所属用户和用户组
./kube-bench --config-dir /home/CIS/cfg --config /home/CIS/cfg/config.yaml run --targets=master |grep -A4 1.1.12

# 查看 etcd 的存储目录(--data-dir)
cat /etc/kubernetes/manifests/etcd.yaml |grep etcd


# 查看 etcd 存储目录的所属用户和用户组
ll /var/lib |grep etcd
# 修改 etcd 存储目录的所属用户和用户组
chown etcd:etcd /var/lib/etcd
# 查看修改成功
ll /var/lib |grep etcd

# 再次检测,查看记录状态变成 [PASS]
./kube-bench --config-dir /home/CIS/cfg --config /home/CIS/cfg/config.yaml run --targets=master |grep 1.1.12
相关推荐
weirong15 小时前
图解 client-go Informer:手写一个 mini-Informer 才敢说懂
kubernetes
.冰块.15 小时前
流量大了自动加 Pod!K8s HPA 扩缩容与 ResourceQuota/LimitRange 资源管控实战
linux·云原生·容器·kubernetes·hpa·quota·limitrange
无言听风雨丶2 天前
Linux 容器本质探秘:Cgroup 与 Namespace 深度解析与实战
linux·运维·服务器·kubernetes
无言听风雨丶2 天前
Kubernetes GitOps 持续交付实战:用 Argo CD 让 Git 成为集群事实源
git·elasticsearch·kubernetes
无言听风雨丶2 天前
Kubernetes 控制平面深度剖析:从 kubectl apply 到 etcd 写入的全链路
平面·kubernetes·etcd
openFuyao2 天前
openFuyao x 复旦大学软件工程实验室 Panel 回顾:Agentic时代,集群调度技术体系将如何演进?
kubernetes·openfuyao
螺蛳粉 螺蛳粉2 天前
第 05 篇:etcd 深入:Raft 共识、watch 机制与快照备份恢复实战(底座认知 05)
docker·云原生·容器·kubernetes·etcd·分布式存储·kube-apiserver
相思难忘成疾2 天前
从零搭建 Kubernetes 1.30 集群:kubeadm 部署一主多从实战(RHEL 9.3 + Docker + flannel)
linux·运维·kubernetes
weirong2 天前
给 K8s 加一个自动值班员:分级故障自愈引擎
kubernetes
云和数据.ChenGuang2 天前
Python 闭包详解:从原理到实战
linux·开发语言·人工智能·python·kubernetes