Kubernetes部署的五个最佳安全实践


容器的使用在企业环境中持续增长,增加了对管理和编排容器的方法的需求。毫无疑问,Kubernetes(K8s)已经成为云原生环境容器编排的市场领导者。

由于Kubernetes在管理容器化工作负载的工作人员和工作内容方面发挥了关键作用,因此应该很好地理解和管理安全性。因此,必须对所有部署使用正确的部署体系结构和安全最佳做法。

由于Kubernetes部署由许多不同的组件组成(包括Kubernetes的主节点和节点,承载Kubernetes的服务器,使用Kubernetes的容器运行时,集群内的网络层以及在承载在Kubernetes上的容器内运行的应用程序),因此保护Kubernetes需要DevOps/开发人员解决与这些组件相关的安全挑战。

在本文中,我将讨论用于管理Kubernetes部署的DevOps和开发专业人员的五种最佳安全实践。将这些安全措施集成到CI/CD pipeline将协助各组织在开发过程的早期发现和补救安全问题,以便更快和更短的周期,同时确保安全和有保障的部署。

你可能还喜欢:Simple, Secure Role Based Access Control (RBAC) For REST APIs

为了克服这些挑战,以下是应对K8安全挑战的五个最佳安全实践:

  1. 授权:Kubernetes提供了几种不相互排斥的授权方法。建议将RBAC用于控制如何使用权限访问Kubernetes API的授权策略。ABAC是一种额外的授权机制,它提供了强大和细粒度的策略,但它更复杂,并且几乎没有操作约束(例如,API服务器在权限更改后重新启动)。
  2. Pod安全性:由于每个Pod都包含一组一个或多个容器,因此控制它们的部署配置至关重要。Kubernetes Pod安全策略是集群级资源,允许用户通过控制权限,卷访问和经典Linux安全选项(如seccomp和SELinux配置文件)来安全部署其Pod。
  3. 保护生产环境:随着公司将更多的部署转移到生产中,这种迁移增加了运行时易受攻击的工作负载的数量。通过应用上面描述的解决方案,并确保您的组织保持健康的DevOps/DevSecOps文化,可以克服这个问题。
  4. 保护Kubernetes上的CI/CD管道:运行CI/CD允许在将工作负载部署到K8集群中之前对其进行构建,测试和部署。必须在CI/CD过程中对安全性进行烘烤,以允许开发人员快速发现和减轻潜在的漏洞和错误配置。

    否则,攻击者可以在部署这些映像时获得访问权限,并在K8生产环境中利用这些漏洞。在CI/CD阶段检查映像和部署配置的代码可以达到这个目的。
  5. 将服务Mesh添加到网络安全层:服务Mesh以统一的,不可知论的方式处理与微服务相关联的常见任务。服务网格根据策略自动平衡服务间流量。它还提供了许多安全性,可靠性和可观察性方面的好处,可以帮助管理集群通信,并通过“零信任”安全模型增强网络稳定性。

服务网格是K8安全基础设施的一个强大补充。它通过自动处理服务发现和连接来支持一个安全的云原生环境,这样开发人员和单个微服务都不必这样做。与Kubernetes一起使用,service mesh支持服务级别的应用安全,而不仅仅是网络级别的应用安全。当与基于身份的工作负载保护结合使用以保护容器和微服务时,service mesh支持最高级别的安全性。

作为领先的编排平台,Kubernetes正在AWS,Google云平台和Azure中积极使用。有了正确和全面的安全基础设施,它将以前所未有的效率和敏捷性改变应用程序在云中的部署方式。

多亏了在这一领域所做的大量工作,下一代安全平台现在提供了直观和集中的方式来管理Kubernetes微服务,使之成为现实。


进一步阅读