陈奇网络工作室

Kubernetes安全三个步骤:如何通过RBAC和强身份验证确保外部安全

云计算

当然,K8s已成为云中容器组织系统的标准,但如果缺乏对K8s环境安全问题的了解,各种组件将暴露在网络群集内外的***中。 本文介绍了如何通过强身份验证保护企业K8s集群不受外部影响。

这是关于Kubernetes安全性的三系列文章中的第一篇。 本系列文章依次介绍如何保护企业的Kubernetes群集免受外部**、内部**和资源消耗或noisy neighbors问题的影响。

当然,Kubernetes已成为云容器组织系统的标准,根据cloudnativecomputingfoundation ( cncf )的定义,“在APP应用容器的部署、扩展和主机群集之间但是,如果缺乏对Kubernetes环境安全问题的了解,各种组件就会暴露在网络群集内外的***中。

锁定API服务器,Kubelets

Kubernetes环境具有许多可从外部访问的组件,包括APP应用程序编程接口( API )服务器、kubelet和数据存储库。 如果这些组件没有正确锁定和保护,可能会导致数据泄露和系统故障。

Kubernetes为开发、运输和安全团队提供了可用于APP应用程序与Kubernetes平台交互的API结构。 Kubelet是在节点上运行的用于读取容器清单的服务,它验证定义的容器是否已启动并正在运行。 Kubernetes利用etcd分布式密钥库来存储和复制供Kubernetes在整个群集中使用的数据。 基本上,最经常收到***的Kubernetes系统是完全没有访问控制的系统。

据Goins介绍,Kubernetes易于部署,默认情况下没有内置多少确保安全的东西。 例如,到了2017年年中,容器组织系统具有基于角色的访问控制( RBAC )功能。

Kubernetes 1.8版的一个亮点是基于角色的访问控制( RBAC ),它是管理kubernetes资源周围权限的授权机制。 使用RBAC,您可以配置无需重新启动群集即可更新的灵活授权策略。

“在许多Kubernetes部署中,compromise允许用户使用root权限安装和运行所需的软件。 ”Goins说,“***和网络罪犯希望进入一个系统,升级权限,然后转移到其他系统,开始收集信用卡和个人识别数据等信息。 ”。

2018年12月在Kubernetes发现的第一个安全漏洞——特权升级漏洞( CVE-2018-1002105 ),当时由Rancher Labs共同创始人和CFO Darren shepherd发现。 该漏洞说明了用户如何通过Kubernetes API服务器与后端服务器建立连接。 建立连接后,***方可通过网络连接直接向kubelets等后端集群服务器发送任何请求。 该漏洞使任何用户在任何计算节点上都具有完全的管理员权限。 随后,发布了用于修复支持的Kubernetes版本的修补程序,并在1.10.11、1.12.3和1.12.3版中提供。

企业该如何从外部保护K8s集群***

Goins建议Kubernetes用户首先要做的事情是完全关闭外部API访问,或者将此功能封装在某种强身份验证中并设置保护。 为了减少外部***威胁,信息技术/安全管理员必须确保只有必要的Kubernetes服务器才能暴露在外。 此外,还必须设置身份验证,并为所有公开的服务器设置相应的网络安全策略。

Handy Tecchnologies的Alexander Uricoli在博客中写道:“除非在kubelet中指定某些标志( flags ),否则在默认操作模式下接受未经认证的API请求。” 在这个博客中,Uricoli分析了***是如何***同时分析了个人服务器上的Kubernetes集群:

3359 medium.com/handy-tech/analysis-of-a-kubernetes-hack-back door ing-through-kube let-823 be 53 d 67 c

Uricoli说:“似乎有人找到了将加密挖掘软件放在运行的容器中来运行此过程的方法。” Kubernetes API服务器已发布到互联网,但受证书验证的保护。

因此,同事的服务器公开了kubelet端口( tcp 10250和tcp 10255 )。 Uricoli指出,尽管问题已经明确,但这样的***应该关注Kubernetes部署的几个问题。 如果用户可以通过网络节点访问节点,则kubelet API是通往群集的API后门,功能完全正常且未经验证。 如果用户已经很难通过webhook、RBAC或其他方法启用身份验证和授权,则kubelet也应该牢牢锁定。

互联网安全中心( CIS )建议用户为kubelet连接部署HTTPS。 CIS在建立Kubernetes 1.11安全配置的指导方针中表示:“从API服务器到kubelets的连接可能包含敏感数据和密钥等。 因此,在API服务器和kubeletes之间的任何通信中使用移动加密( in-transit )非常重要。 ”

Kubernetes用户必须禁用对API服务器的匿名请求。 启用后,未被其他配置的身份验证方法拒绝的请求将被视为匿名请求,API服务器将处理这些请求。 根据CIS,Kubernetes的用户需要通过身份验证来授权访问,拒绝匿名请求,并在需要时提供可控制的访问。

Goins指出,加强内部集群用户防御的安全控制——RBAC、隔离和权限——与保护Kubernetes不受外部***的影响同等重要。

“如果有人使用内部用户帐户从外部访问集群,您将立即获得完全访问权限。 ”他说。 所以,这并不是说为了防止来自外部的***,需要内部统制。 如果你不采取这些措施的话,就是说受到***的时候,你受到了很大的伤害。

结束语

Rancher Kubernetes平台的下载量超过1亿次,我们知道安全问题对用户的重要性。 它还提到了通过Rancher平台在生产环境中运行docker和Kubernetes的数千万用户。

2018年底Kubernetes报道的第一个重大安全漏洞CVE-2018-1002105是由Rancher Labs共同创始人和首席执行官Darren Shepherd发现的。

2019年1月Kubernetes发现仪表板和外部IP代理安全漏洞时,Rancher Labs也响应了业界第一个用户,以确保所有Rancher 2.x和1.6.x用户都不会完全受到漏洞的影响

今后,Rancher将与用户共享更多的容器和Kubernetes安全技巧。 以下博客分享了三种保护Kubernetes免受内部***影响的方法。 这是一种基于角色的访问、Kubernetes特性(逻辑隔离或名称空间)和Rancher资源,如Project。 请关注~

详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3