【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
相关推荐
only_Klein39 分钟前
K8S云原生监控方案Prometheus+grafana
云原生·kubernetes·prometheus
David爱编程8 小时前
K8s下的安全上下文SecurityContext使用全解
云原生·容器·kubernetes
AI云原生1 天前
2025最新国内服务器可用docker源仓库地址大全(2025年8月更新)
运维·服务器·docker·云原生·容器·kubernetes·serverless
斯普信专业组1 天前
基于k8s环境下的pulsar常用命令(上)
云原生·容器·kubernetes·pulsar
斯普信专业组1 天前
k8s调度问题
java·容器·kubernetes
qq_213059431 天前
实战:在已有K8S集群如何新增和删除Node节点
云原生·容器·kubernetes
David爱编程2 天前
K8s配置动态更新实战:不用重启容器也能生效
云原生·容器·kubernetes
稚辉君.MCA_P8_Java2 天前
k8s中pod如何调度?
docker·容器·kubernetes
hxdcxy2 天前
k8s集群
云原生·容器·kubernetes