容
器之所以具有广泛的吸引力,是因为容器可以让用户轻松地将应用程序及其所有依赖项打包到一个镜像中,无需更改即可从开发阶段进入测试和生产阶段。使用容器,可以更容易地确保在不同环境,例如物理服务器、虚拟机(VM)以及私有或公共云之间保持一致性,这有助于团队更快、更方便地开发和管理应用程序。
但是所有将容器作为基础设施服务的人员,可能都有这样的疑虑:“容器安全吗?”、“我们可以信任容器中的应用程序吗?”笔者认为确保容器安全就像保护任何正在运行的进程一样。在部署和运行容器之前,需要考虑容器方案各层技术栈的安全性。下文将系统地介绍容器解决方案不同层的10大安全问题,它们基本跨越了整个容器生命周期不同阶段,也是容器安全方案的10个关键安全要素。
1.容器主机操作系统与多租户
容器可以让开发人员用一个单元构建、推广应用程序及其依赖项。容器还可以通过在共享主机上启用多租户应用程序部署,最大程度地利用服务器。因此,容器使用者可以在单个主机上部署多个应用程序,根据需要启动和关闭各个容器。与传统的虚拟化不同,容器方案不需要hypervisor,更不需要在每个VM上单独部署操作系统。容器虚拟化的是应用程序进程,而不是硬件,所有容器共用一个主机操作系统。
为了充分保护、利用这种封装和部署技术,安全团队需要确保容器运行在受保护的操作系统中,确保主机内核免受容器逃逸的侵害,并确保容器各自之间的安全。
以Linux系统为例,容器本质上是具有隔离和资源限制的Linux?进程,是一个可以在共享主机内核上运行的沙箱应用程序。保护容器安全的方法应与保护Linux上任何正在运行的进程的方法相同。不使用特权这一点很重要,而且仍然是一个最佳保护方案。因此,在创建容器时授予最小权限。容器应以用户身份而不是root用户身份运行,并且要充分利用Linux中可用的多个安全级别,包括Linux命名空间、安全性增强Linux(SELinux)、Cgroup、capabilities机制和安全计算模式(sec
本文编辑:佚名
转载请注明出地址 http://www.yizhijiana.com/yzjxw/16167.html