GlobalSign 博客

确保容器安全性:使用SSL/TLS证书保护软件供应链

容器在DevOps中的受欢迎程度和作用持续上升,这是因为它们具有许多优点,并且在开发人员和运维团队之间的协作方面具有兼容性。根据Gartner的“The CTO Guide to Containers and Kubernetes”,容器和Kubernetes正在成为DevOps团队事实上的技术。Gartner预计,到2027年,超过90%的全球组织将在生产环境中运行容器化应用程序。

容器是软件的标准单元,它以操作系统级虚拟化的形式打包代码及其所有依赖项、配置文件和库,以便应用程序在一个计算环境到另一个计算环境中快速、可靠地运行。每个容器都可以按照自己的节奏独立运行、测试和部署,而不会影响其他容器环境。它们很容易在不同团队之间迁移,并且切换计算环境不会影响容器生产的性能或源代码。

让我们看看容器的好处,以及如何在DevOps中使用SSL/TLS证书保护容器。

DevOps中容器的好处

容器提供的不仅仅是DevOps团队所期望的速度。它们有效地提供了持续集成/持续部署(CI/CD)管道,在组织中易于使用,以及自动化测试,使开发人员有更多的时间进行进一步的实验和创新。容器化的许多特性和功能包括:

  • 与现有技术的敏捷和灵活集成
  • 可以在任何系统上运行,例如Mac, Windows, Cloud和Linux
  • 更快的部署、自动打补丁和应用扩展时间
  • 不依赖于系统配置,系统一致性更高
  • 轻量级通过共享机器的操作系统内核,不需要每个应用程序都有操作系统
  • 高度可移植,无需更改代码即可跨任何系统使用

Docker为容器创建了行业标准,因此它们可以移植到任何地方。Docker提供了业界最强的默认隔离功能,是最常用的容器服务,此外还有Linux和CRI-O。

容器编排简化了多容器系统

DevOps可以在一个或多个应用周期内运行数百个容器和微服务。相关和不相关的集装箱舱和集群需要耗时的管理来提高效率和安全性。容器编排通过自动化部署、管理、扩展和联网,使DevOps团队可以管理容器集群的运维复杂性。

Docker Swarm和Kubernetes是最常用的协调器。

  • Docker Swarm有助于容器的集群和调度;将Docker集群管理为单个虚拟系统
  • Kubernetes是谷歌开发的一个开源工具,它支持自动化、管理、调度和网络应用程序,这些应用程序由单个容器定义,用于快速生产软件模块

云原生应用开发利用了像Kubernetes这样的容器和编排框架,在可移植性、可扩展性和性能方面具有相当大的优势。

容器编排简化了操作并增加了安全性,有效地管理了以下任务:

  • 配置和部署
  • 配置和调度
  • 流量路由和负载均衡
  • 高效的资源分配
  • 根据需要扩展容器,以平衡基础设施之间的工作负载
  • 容器运行状况监视
  • 容器之间的安全交互

安全风险和集装箱必须安全的原因

开发人员经常使用开源软件优化容器化应用程序的构建。然而,这可能会导致许多安全漏洞。由于容器很容易成为安全目标,因此确保容器管道的安全至关重要,以便容器保持可靠和可信。

通过PKI证书进行签名和信任认证,为DevOps团队提供了容器及其代码的安全性、身份和合规性的最佳保证。容器和容器集群连接受益于SSL/TLS证书安全的身份验证和端到端加密能力。

集装箱脆弱性因素:

  • 威胁暴露的范围——单个容器威胁暴露可能影响整个基础设施,因为所有容器共享一个公共操作系统。所有流向容器的流量和数据都应该使用SSL/TLS证书进行身份验证和加密。
  • 网络——单个容器威胁暴露可能影响整个基础设施,因为所有容器共享一个公共操作系统。所有流向容器的流量和数据都应该使用SSL/TLS证书进行身份验证和加密。
  • Unauthenticated Docker API ——默认情况下,Docker(以及扩展Docker Swarm)的API中没有身份验证或授权,而是依赖Unix套接字/var/run/ Docker的文件系统安全。Sock,只能由root用户访问。通过TCP使用Docker API需要进行安全保护,确保根权限不会被任意授予任何人。

Kubernetes中的SSL/TLS要求

Docker容器越来越多地被DevOps团队采用,作为部署和管理应用程序的更有效的解决方案,但需要SSL / TLS证书来确保容器、主机和客户端之间的通信安全。使用SSL/TLS证书的容器安全性的一些关键用例包括映像签名、安全客户端和守护进程API。

Kubernetes为DevOps团队提供了在物理或虚拟机集群中调度和运行容器的平台。Kubernetes架构将集群划分为组件或微服务,它们一起工作以维护集群定义的状态。

使用SSL/TLS来保护Kubernetes环境的不同用例和要点:

  1. 在负载均衡器上——在负载均衡器上终止TLS的最常见用例是使用公开可信证书。这个用例部署起来很简单,并且证书被绑定到负载均衡器本身。
  2. 在入口——如果对端到端加密没有严格要求,则可以将该过程卸载给入口控制器或NLB。这有助于DevOps团队优化性能、配置和工作负载管理。
  3. 在pod上——在Kubernetes中,pod是最小的可部署计算单元,并封装了一个或多个应用程序。从客户端到Kubernetes pod的端到端加密提供了一个安全通信模型,其中SSL/TLS终止于Kubernetes集群中的pod。
  4. pods之间的相互SSL/TLS——这为Kubernetes集群内流动的数据提供了安全的加密传输。

使用SSL/TLS证书保护DevOps容器增加了必要的保护层,以确保通信通道的机密性、完整性和身份验证。它有助于降低安全风险,促进遵守法规,并促进容器环境中的信任。

点击这里下载GlobalSign电子书“您的DevOps之旅:与GlobalSign合作提高软件供应链的安全性”。

了解有关如何保护容器化环境的更多信息

近期博客