第一章:简介

云原生应用由多个松散耦合的组件(称为微服务,通常以容器形式实现)组成,在需要零信任概念的无边界网络环境中运行(企业内部或云),并由来自不同地点的用户访问(例如,校园、家庭办公室等)。云原生应用不只是指在云中运行的应用。它们还指具有设计和运行时架构的一类应用,如微服务,以及用于提供所有应用服务(包括安全)的专用基础设施。将 零信任原则 纳入这类应用提供了一些技术,其中对所有受保护资源的访问是通过基于身份的保护和基于网络的保护(如微分)来强制执行的。

由于业务原因,云原生应用程序需要敏捷和安全的更新和部署技术,以及应对网络安全事件的必要弹性。因此,它们需要一种与传统的单层或多层应用不同的应用开发、部署和运行时监控范式(统称为软件生命周期范式)。DevSecOps(开发、安全和运维)是这类应用的促进范式,因为它通过(a)持续集成、持续交付 / 持续部署(CI/CD)管道(在第 3 节中解释)等基本要素促进了敏捷和安全的开发、交付、部署和运维;(b)整个生命周期的安全测试;以及(c)运行时的持续监控,所有这些都由自动化工具支持。事实上,满足上述目标的范式最初被赋予了 DevOps 这个术语,以表明它试图消除开发和运维之间的隔阂,并促进(或推动)加强合作。后来,DevSecOps 这个词是由社区的一部分人创造的,以强调安全团队在整个过程中的作用。因此,DevSecOps 这个术语表示一种文化和一套带有自动化工具的实践,以推动负责交付软件的关键利益相关者(包括开发、运维和安全组织)之间加强协作、信任、分担责任、透明度、自主性、敏捷性和自动化。DevSecOps 拥有必要的基本要素和其他构建模块,以满足云原生应用的设计目标。

应该注意的是,整个社区对 DevSecOps 一词并无共识。如前所述,该术语主要是为了强调一个事实,即必须在软件开发生命周期的所有阶段(即构建、测试、打包、部署和运行)对安全进行测试和整合。社区中的一部分人继续使用 DevOps 这个术语,理由是没有必要定义一个新的术语,因为安全必须是任何软件生命周期过程的一个组成部分。

本章大纲