第六章 云和容器化
虽然在传统的本地基础架构中追求软件物料清单 (SBOM) 和软件透明度具有挑战性,但在使用云服务和云原生架构时,挑战就大不相同了。在本章中,我们将讨论围绕云和容器化增长的一些指标,以及云计算背景下的软件透明度和供应链安全问题。
在讨论技术时,拥有一个共享的词汇表通常会有所帮助。话虽如此,云计算最常用的定义来自 NIST 800-145 (https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf),其中指出:
云计算是一种模型,用于实现对可配置计算资源(例如网络、服务器、存储、应用程序和服务)共享池的无处不在、便捷、按需的网络访问,这些资源可以快速配置和发布,且管理工作或服务提供商交互最少。此云模型由五个基本特征、三个服务模型和四个部署模型组成。
进一步扩展,这些特征包括按需自助服务、广泛的网络访问、资源池、快速弹性和可衡量的服务。云还具有三种服务模式:基础设施即服务 (IaaS)、平台即服务 (PaaS) 和软件即服务 (SaaS)。每种服务模式都有自己独特的共享责任模式,以及对软件如何到达下游消费者的相关影响。云计算有四种主要部署模式:私有云、社区云、公共云和混合云,每种模式都对多租户和安全等主题有影响。
与云计算相关的每一种独特模型仍然以某种形式涉及软件,并要求下游消费者对他们所消费的服务和相关软件的安全性有一定程度的保证。
6.1 共担责任模型
如果不涉及共享责任模型 (SRM),关于云的安全性和风险的讨论就不完整。许多企业领导者仍然会问“云安全吗?”,这是一个错误的问题。更合适的问题是“作为安全团队和组织,我们是否确保了我们在云消费中...
6.2 云原生安全的4C
将云原生生态系统情境化的一种有用方法是通过 Kubernetes 文档中描述的“云原生安全 4C”,此处讨论的图 6.2 中所示的容器编排器。 图6.2 在此特定于容器及其编排的上下文中,您拥有...
6.3 容器
云原生生态系统延续了物理服务器和虚拟机 (VM) 等传统计算模型,广泛使用容器。因此,当涉及到容器及其相关的编排系统(如 Kubernetes)时,我们必须讨论容器和相关的软件供应链问题。 随着...
6.4 Kubernetes
容器编排通常被定义为自动执行操作工作以运行容器化工作负载和服务。虽然有几种潜在的容器编排工具可供选择,但 Kubernetes 在采用和使用方面无疑是行业领导者 (https://kuberne...
6.5 无服务器模型
在VMs和容器的计算抽象和演化的基础上,一些组织根据它们的用例进一步采取了他们的采用过程,并已经开始使用所谓的无服务器模型。更高级的说法是,无服务器模型允许开发团队构建和运行云本地的应用程序,而...
6.6 SaaSBOM及API复杂度
为所包含的实体创建一个SBOM可能会很复杂,例如在本地交付的软件或容器映像。为具有云和SaaS等无数相互关系的动态且快速变化的环境创建SBOM可能是另一个级别的难度。 关于SaaS的SBOM的概...
6.7 在DevOps和DevSecOps中的应用
随着云和云原生架构的出现并继续流行,另一个趋势发生了:从传统的瀑布式软件开发到DevOps时代,或者最近的DevSecOps时代的转变。在不进行哲学辩论的情况下,DevOps可以概括为一套弥合软...
6.8 小结
总之在《2022年DevOps状态报告》中、DORA团队的软件工件供应链水平(SLSA)和NIST的SSDF确定了与保护软件供应链相关的流程和实践。我们探讨了DevOps和DevSecOps为何...