一、K8s集群介绍

Kubernetes 协调一个高可用计算机集群,每个计算机作为独立单元互相连接工作。 Kubernetes 中的抽象允许将容器化的应用部署到集群,而无需将它们绑定到某个特定的独立计算机。为了使用这种新的部署模型,应用需要以将应用与单个主机分离的方式打包:它们需要被容器化。与过去的那种应用直接以包的方式深度与主机集成的部署模型相比,容器化应用更灵活、更可用。 Kubernetes 以更高效的方式跨集群自动分发和调度应用容器。 Kubernetes 是一个开源平台,并且可应用于生产环境。

二、Kube-Bench是什么

Kube-Bench是一款针对Kubernete的安全检测工具,从本质上来说,Kube-Bench是一个基于Go开发的应用程序,它可以帮助研究人员对部署的Kubernete进行安全检测,安全检测原则遵循CISKubernetesBenchmark

(CIS Kubernetes Benchmark 是由 Center for Internet Security(互联网安全中心,简称CIS)发布的一组关于 Kubernetes 安全的最佳实践和配置建议。这个基准是为帮助组织确保其 Kubernetes 集群的安全性而设计的。

CIS Kubernetes Benchmark 包含了一系列的安全控制点,涵盖了各个方面,包括身份和访问管理、监视和日志记录、网络安全、操作系统安全等。这些控制点提供了一份详细的清单,帮助管理员评估其 Kubernetes 集群的安全性,并采取必要的措施来缓解潜在的安全风险。

这个基准的目的是提供一种方法,使组织能够在其 Kubernetes 环境中实施一系列安全最佳实践,以减少潜在的漏洞和攻击面。组织可以根据 CIS Kubernetes Benchmark 进行配置和审计,以确保其 Kubernetes 部署满足高标准的安全性。)

测试规则需要通过YAML文件进行配置,因此我们可以轻松更新该工具的测试规则

三、使用MiniKube创建K8s集群

1、下载Minikube

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

2、建立并运行集群

启动MiniKube:

minikube start

访问集群,看到下图就说明成功了

minikube kubectl  get po -A

四、Kube-Bench检测集群

1、工具下载

将项目源码客隆至本地:

git clone https://github.com/aquasecurity/kube-bench.git
  • 可以选择在容器中运行Kube-Bench(跟主机共享PID命名空间);
  • 在主机中运行安装了Kube-Bench的容器,然后直接在主机中运行Kube-Bench;
  • 访问项目Releases页面下载并安装最新版本的源码,别忘了下载配置文件以及cfg目录下的测试文件;
  • 从源码编译;

2、工具安装

在容器中安装
docker run --rm -v `pwd`:/host aquasec/kube-bench:latest install
在容器中运行

基于容器部署模式,主要是使用主机 PID 命名空间在容器内运行,并将配置和其他文件所在的目录挂载在主机上,以便 Kube-bench 可以检查它们的存在和权限 /etc 或 /var 等等

docker run --pid=host -v /etc:/etc:ro -v /var:/var:ro -t docker.io/aquasec/kube-bench:latest --version 1.18

3、测试结果

在master节点下

etcd的情况:

Control plane

五、参考资料

​https://github.com/aquasecurity/kube-bench​

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐