其他
前言安全的系统都是相似的,不安全的系统各有各的风险。云原生技术架构在带来颠覆性技术架构变革的同时,也带来了新的安全要求和挑战。在过去几年以及未来数年内,云原生架构会成为黑客攻击和利用的重点。作为网络安全工作者,你不能保护你看不到的资产,同样你也防御不了你不知道的漏洞和攻击。因此,我们对云原生技术架构面临的安全挑战进行了简单的梳理,作为一个系列的序章。什么是云原生云原生(CloudNative)是一个组合词,Cloud+Native。Cloud表示应用程序位于云中,而不是传统的数据中心;Native表示应用程序从设计之初即考虑到云的环境,原生为云而设计,在云上以最佳姿势运行,充分利用和发挥云平台的弹性+分布式优势。在具体的技术实践中,容器(包括编排工具Kubernetes)、DevOps、微服务形成了云原生时代的“三驾马车”。其中,容器是基础设施,DevOps侧重流程,微服务是软件架构。三者作为铁三角互相补充,但又以容器技术为底层基础。这也是为什么我们后面讨论云原生的优势或风险时容器都占了大部分,我们的产品设计时也是以容器安全为起点。按照Gartner在2021年发布的调查报告,在91个参与调查的企业或组织中,60%目前正在使用容器技术,27%正在试点/测试,12%计划采用。受访者来自世界各地,其中大部分来自欧洲(49%)和北美(33%)。而在国内,根据信通院的统计数据,2020年43.9%的国内用户已在生产环境中采纳容器技术,超过七成的国内用户已经或计划使用微服务架构进行业务开发部署等。云原生相关技术受到如此重视和普及,是因为它所能带来的实实在在的收益。云原生的优势拥抱变化应对风险唯一不变的就是变化。软件生命周期中面临的变化可能来自于三个方面,功能需求变化、架构调整/代码重构、业务访问量的增减。DevOps采用小步快跑的方式,从MVP(最小化可行产品)逐渐丰富功能特性,每一次迭代后都可以重新审视来自用户的需求变化并迅速做出应对。容器平台支持极速的弹性扩缩容,可以快速响应用户访问量增减带来的性能需求变化。而微服务则可以灵活地应对架构的调整、扩展、复用。提升研发和交付效率提升效率的一个重要方法论是标准化,从而自动化,进而智能化。由于容器镜像采用了“不可变基础设施”的理念,提供了完整的运行时环境,确保了执行环境的一致性,也就是“标准化”。K8S和CI/CD的接合则促进了“自动化”,使得应用迁移更加容易,支持一键快速部署,提升交付效率。降低成本微服务架构,可以支持组件复用,避免重复造轮子。而容器技术的采用,可以有效地提升企业数据中心硬件服务器的资源利用率(10%~30%)。此外,由于同一个镜像在开发环境、测试环境或生产环境的表现具备一致性,使其更不容易出现故障,从而提高MTBF(平均故障间隔时间)。即使偶尔故障,也会由于容器天然支持故障自愈的高可用特性,运维成本得到大大降低。