对于任何成功的Kubernetes策略来说,集群安全是至关重要的部分。近期,一份由AimPoint发布的调查报告显示,44%的受访者表示由于Kubernetes容器的安全问题,推迟了应用程序进入生产环境。
然而,Kubernetes安全是一台复杂的机器,其中包含许多活动部件、集成件以及旋钮和杠杆。这会使本来就充满挑战的安全工作变得更加困难。
业界应用最为广泛的Kubernetes管理平台创建者Rancher Labs一直在为用户寻找各种高效的方式,因此我们十分高兴在Rancher 2.4中推出了CIS安全扫描功能。这项Rancher托管集群的新功能可以让你针对互联网安全中心发布的100多个CIS基准运行RKE集群的ad-hoc安全扫描以及定期的扫描。使用CIS安全扫描,你可以创建自定义测试配置并生成包含通过/失败信息的报告。根据报告内容,你可以采取各种措施以确保你的集群满足所有安全要求。-安全扫
CIS基准已经被广泛接受为保障Kubernetes集群安全的事实标准。它提供了行业认可的指标,该指标可以用来衡量Kubernetes集群的安全状况。它将信息安全社区领域的知识与Kubernetes中的API、交互和总体控制路径的深刻理解相结合。当工程师试图了解他们保护集群所需的所有位置时,他们可以从基准中了解到数十种攻击的可能性以及如何缓解它们。-安全无
为什么IT Ops需要CIS安全扫描?
根据CIS基准手动评估集群是一个十分耗时且容易失败的过程。而现实中,我们的系统不断变化,因此我们需要经常进行重新评估。这就是kube-bench大展身手之处。这是Aqua创建的一种开源工具,用于根据CIS Benchmark自动评估集群。-安全扫
Rancher 2.4使用kube-bench作为安全引擎,并且对其进行了一些补充。借助Rancher 2.4中的CIS安全扫描,你可以一键编排集群扫描。Rancher负责获取kube-bench工具并将其连接到集群。然后,Rancher将从所有节点的结果中总结出一个易于阅读的报告,该报告会展示集群通过或失败的区域。此外,Rancher还能让你在集群级别安排周期扫描。该设置可以在集群模板级别启用,并在默认情况下,允许管理员为计划的扫描配置模板,以便针对Rancher设置中任何用户创建的每个新集群运行扫描。最后,Rancher为CIS安全扫描提供自定义告警和通知,以通知安全管理员配置漂移或集群扫描失败。-安全无
在Rancher 2.4中动手实践CIS集群
让我们启动一个Rancher RKE集群。
前期准备:CentOS VM(至少2核),并安装好Docker
Step1:运行Rancher Server
[root@rancher-rke ~]# sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:v2.4.0-rc3Unable to find image 'rancher/rancher:v2.4.0-rc3' locallyTrying to pull repository docker.io/rancher/rancher ...v2.4.0-rc3: Pulling from docker.io/rancher/rancher423ae2b273f4: Pull completede83a2304fa1: Pull completef9a83bce3af0: Pull completeb6b53be908de: Pull completeb365c90117f7: Pull completec939267bea55: Pull complete7669306d1ae0: Pull complete25e0f5e123a3: Pull completed6664495480f: Pull complete99f55ceed479: Pull completeedd7d0bc05aa: Pull complete77e4b172baa4: Pull complete48f474afa2cd: Pull complete2270fe22f735: Pull complete44c4786f7637: Pull complete45e3db8be413: Pull complete6be735114771: Pull completedfa5473bfef3: Pull completeDigest: sha256:496bd1d204744099d70f191e86d6a35a5827f86501322b55f11c686206010b51Status: Downloaded newer image for docker.io/rancher/rancher:v2.4.0-rc3a145d93e8fa66a6a08b4f0e936dafc4b9717a93c59013e78118a4c5af8209a53[root@rancher-rke ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESa145d93e8fa6 rancher/rancher:v2.4.0-rc3 "entrypoint.sh" About a minute ago Up About a minute 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp distracted_albattaniStep2:访问Rancher URL并安装RKE}-安全扫
设置密码和URL
设置Rancher密码和URL作为host IP
添加一个新集群并选择From existing nodes (Custom)(从现有节点添加)
选择默认选项并选择etcd、控制平面和worker,因为我们将在一个VM上安装这一切。
复制以上命令并运行在VM实例上
[root@rancher-rke ~]# **sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.4.0-rc3 --server :-安全无
现在点击集群,并从【工具】菜单栏中,选择CIS安全扫描。
当前CIS安全扫描仅针对RKE集群,有两个扫描配置文件:宽松(Permissive)和严格(Hardened)。
Permissive(宽松):该配置文件具有一组将被跳过的测试,因为它们对于刚开始使用Kubernetes的用户来说没有必要。Hardened(严格):此配置文件不会跳过任何测试。该配置针对高阶用户以及安全专家。-安全扫
对于每种配置类型,其中一些测试会被标记为不适用,因为它们不适用于RKE集群。
现在我们选择“宽松”配置文件并运行扫描。结果是所有标准RKE集群都通过。
为了看到更多关于测试执行的细节,点击该测试,然后就能显示整个测试列表,包含失败/跳过/通过的信息。
现在,我们使用“严格”配置文件来执行相同的测试,我们将会看到上次跳过的测试失败。
如你所见,根据CIS基准测试,失败的结果提供了描述以及补救步骤。这十分有效,因为你不仅可以根据CIS基准了解集群中哪些东西会崩溃,而且还可以根据建议来修复集群。
加强集群安全性的后续步骤
尽管一键单击就能运行CIS安全扫描,但是能够自动化执行则更好。也可以在Rancher中进行配置。定期进行安全扫描可以让你高枕无忧,也是团队的一针定心剂。如果集群中的确出现了某些不合规的情况,你也能够更快找到它。-安全无
现在,如果集群中出现某些不合规的情况怎么办?解决方案很简单:查看Rancher安全加固指南()咨询。