确保Kubernetes控制平台安全的十个提示

译文
云计算 云原生
Kubernetes控制平台如今成为网络犯罪分子的诱人目标,而了解和掌握一些网络安全的提示可以帮助用户高枕无忧。

译者 | 李睿

审校 | 重楼

51CTO读者成长计划社群招募,咨询小助手(微信号:TTalkxiaozhuli)

在调研机构最近发布的一份调查报告中,94%的受访者表示经历过与Kubernetes相关的安全事件。错误配置是最常见的Kubernetes漏洞,70%的受访者表示存在这一漏洞。那么,对于网络犯罪分子具有吸引力的目标是什么?Kubernetes控制平台。

企业的团队必须加强节点、主节点、核心组件、API和面向公众的pod的边界安全。否则,它们无法保护集群免受现有和潜在漏洞的侵害。以下是可以帮助企业保护Kubernetes控制平台的10个最佳实践,并将加快部署过程。

一、保护Kubernetes控制平台的10个提示

1.使用Kubernetes基于角色的访问控制(RBAC)  

利用基于角色的访问控制(RBAC)设置可以访问Kubernetes API的用户权限。用户会发现在Kubernetes 1.6及更高版本中默认启用了RBAC。由于Kubernetes汇集了授权控制器,因此在启用RBAC时可以禁用以往的基于属性的访问控制(ABAC)。

在设置权限时,选择特定于命名空间的权限而不是集群范围的权限。即使企业的团队成员忙于调试,也不要给任何人提供集群管理员的权限。否则,集群的安全性可能会受到影响。

2.实施隔离

不要将Kubernetes节点直接暴露给公共网络。与其相反,节点的最佳位置是与企业网络没有直接连接的独立网络。

另一个重要的隔离最佳实践是分离Kubernetes控制和数据流量。用户希望它们通过同一管道,因为对数据平台的开放访问将导致对控制平台的开放访问。

3.避免将对象部署到默认命名空间  

在Kubernetes中,命名空间提供了一种隔离集群内资源组的机制。因此,对于许多用户分布在多个团队或项目中的环境,它们都是很好的用例。

所有没有指定名称空间的对象最终都会使用默认名称空间。这使得在最关键的工作负载附近部署恶意容器更加容易。因此,建议为部署中的对象创建命名空间。

4.避免使用禁止的类型

避免使用被禁止的类型,例如NodePort或LoadBalancer。与其相反,应该通过ClusterIP公开服务。通过这种方式,可以避免某些恶意行为者发现集群基础设施组件。

5.加密机密数据

在Kubernetes的基本实现中,人们是否知道机密数据在默认情况下是不加密的?但是,如果用户使用Kubernetes管理的服务(如GKE),机密数据将在静止时加密。

为什么加密机密数据很重要?任何拦截键值存储的人都可以访问集群中的所有内容。这包括所有纯文本的集群机密数据。因此,加密集群状态存储是保护集群免受静态数据泄露的最佳方式。

6.安全访问Etcd

对Etcd的访问等同于根权限。这就是为什么它是一个关键的控制平台组件的原因,也是控制平台内最重要的安全部件。

确保与Etcd的通信是加密的,并且客户端使用基于证书的身份验证。为了限制攻击面,在理想情况下,只有API服务器有权访问Etcd。

7.不要在容器中挂载容器运行时套接字

为什么要关心部署是否在容器中安装了容器运行时(CRI)套接字?docker.sock、container.sock和crio.sock增加了网络攻击者获得主机和相应容器运行时的根访问权限的机会。要避免这种情况,需要删除/var/run/<CRI>.sock hostPath volume。

8.在没有只读根文件系统的情况下运行容器?三思而后行

容器是否在没有只读根文件系统的情况下运行?使用只读文件系统可防止恶意二进制文件写入系统或系统接管。通过在Pod securityContext定义中将readOnlyRootFilesystem设置为true,可以确保容器仅使用只读文件系统。

9.确保安全然后访问Kubernetes控制平台

要获得额外的安全功能层,例如多因素身份验证,可以获得第三方身份验证提供商的帮助。为了完全保护Kubernetes控制平台访问,避免在API服务器级别管理用户。与其相反,使用云计算提供商提供的解决方案,例如AWS身份和访问管理(IAM)。如果无法获得云计算供应商IAM,可以选择OpenID Connect(OIDC)以及熟悉的单点登录(SSO)提供商。

10.创建滚动更新策略

为了确保EKS安全,需要制定滚动更新策略。而滚动更新允许部署更新,并最小化应用程序停机时间,这要归功于增量pod更新。

另一点是在运行时运行漏洞扫描。用户的集群面临供应链攻击的风险。要处理它们,需要了解真正进入集群的是什么,即使用户在持续集成(CI)/持续交付(CD)期间扫描了所有部署构件。基于代理的安全解决方案在这里运行得很好,甚至比“无代理”还更好。

二、使用工具实现Kubernetes控制点安全

随着Kubernetes生态系统的发展,其安全问题也在不断发展。不幸的是,跟上它们的变化是很耗时的,一旦漏洞累积起来,企业的安全人员就不得不同时对许多项目进行优先级排序。

Kubernetes安全工具根据行业最佳实践、Kubernetes建议和CIS Kubernetes基准检查集群,然后自动对它们进行优先级排序,以便使用户从一开始就处于正确的轨道上。

用户可以根据配置和安全最佳实践扫描Kubernetes集群,并了解如何优化安全。

文章链接:https://dzone.com/articles/kubernetes-control-plane-10-tips-for-airtight-k8s

责任编辑:武晓燕 来源: 51CTO技术栈
相关推荐

2021-11-29 13:36:34

云计算AWS云平台网络安全

2009-12-10 00:44:42

2010-01-06 09:17:57

软件重用

2024-04-07 08:12:54

设计模式工具

2023-12-22 16:48:00

Kubernetes容器集群

2011-10-31 10:49:53

2018-05-28 06:44:42

网络安全时间响应安全

2023-11-12 22:29:13

2020-05-29 11:48:01

安全运维信息安全网络安全

2022-05-26 11:11:19

Kubernetes容器云安全

2019-01-28 00:44:19

灾难恢复即服务DRaaS存储

2023-09-20 22:52:12

Kubernetes快捷方式

2012-11-21 13:52:27

2011-08-01 09:20:16

2022-11-03 15:26:52

2011-05-30 10:35:26

2011-03-23 15:44:50

2022-12-20 12:06:06

开源项目APP

2022-03-10 08:16:14

Kubernetes软件供应链

2020-02-17 08:00:02

云计算云开发Kubernetes
点赞
收藏

51CTO技术栈公众号