云原生安全扫描:使用 kube-bench 检查 K8s 集群是否符合 CIS 基准
·
云原生安全扫描:使用 kube-bench 检查 K8s 集群 CIS 合规性
1. 核心概念说明
- CIS 基准:由互联网安全中心制定的 Kubernetes 安全配置标准,涵盖控制平面、工作节点等组件的安全最佳实践
- kube-bench:开源工具,自动化检测集群配置是否符合 CIS Kubernetes Benchmark 要求
- 工作原理:通过执行预定义的检测规则(如配置文件权限、API Server 参数等)生成合规性报告
2. 操作步骤
(1) 安装 kube-bench
# 使用容器化部署(推荐)
docker run --rm -v $(pwd):/host aquasec/kube-bench:latest
# 二进制安装
curl -L https://github.com/aquasecurity/kube-bench/releases/download/v0.6.15/kube-bench_0.6.15_linux_amd64.tar.gz | tar -xz
sudo mv kube-bench /usr/local/bin
(2) 执行扫描
# 完整集群扫描(需kubectl权限)
kube-bench run --targets=master,node,etcd,policies
# 指定组件扫描
kube-bench master --config-dir /path/to/cfg
(3) 解析报告
报告采用分级结构:
[PASS] 1.1.1 确保API Server的--anonymous-auth参数设置为false
[WARN] 2.1.6 控制器管理器--profiling未禁用
[FAIL] 4.2.1 Kubelet授权模式未配置Webhook
3. 关键检测项示例
| 检测类别 | 典型项目 | 安全影响 |
|---|---|---|
| 控制平面 | API Server 认证配置 | 防止未授权访问 |
| 工作节点 | Kubelet TLS 证书设置 | 避免中间人攻击 |
| etcd 配置 | 客户端证书认证启用 | 保障数据存储安全 |
| 策略执行 | Pod Security Policies 启用状态 | 控制容器权限提升风险 |
4. 结果处理建议
-
立即修复项(标记为 FAIL):
- 修改 kube-apiserver 配置文件
- 调整 kubelet 启动参数
- 更新 RBAC 权限设置
-
优化项(标记为 WARN):
# 示例:禁用控制器性能分析 sed -i 's/--profiling=true/--profiling=false/' /etc/kubernetes/manifests/kube-controller-manager.yaml -
持续监控:
- 集成到 CI/CD 流水线
- 定期执行扫描(建议每周)
- 使用 JSON 输出对接监控系统:
kube-bench json > audit.json
5. 注意事项
- 权限要求:需使用具有
cluster-admin权限的 kubeconfig - 版本兼容:确保 kube-bench 版本与 Kubernetes 版本匹配
- 误报处理:对特殊场景(如托管服务)需人工复核 FAIL 项
- 补救参考:依据 CIS Kubernetes Benchmark 官方文档实施修复
最佳实践:将扫描结果与 K8s 准入控制器结合,自动拦截不符合安全基准的部署请求,实现"安全左移"。
更多推荐
所有评论(0)