云原生安全自动化:最后一块拼图

发表时间: 2021-09-05 17:19

雷锋网按:基础设施即代码(IaC)将成为本文重点讨论的对象,它的出现,源自云原生时代不仅是开发者体验的核心,也是补齐云原生体系的最后一块版图。

近年来,DevOps在云原生领域越来越朝着自动化方向演进。基础设施即代码(IaC)现在通常用于启动服务器、自动配置、设置存储和跨服务应用标准网络功能。使用新的工具和能力来简化整个应用程序生命周期的操作,开发团队显著提高了其部署的敏捷性。

但是,在这种新范式中,谁对安全负责?更多的工具提升了开发人员全周期的所有权。然而,应用开发人员有很多事情要负责。此外,他们没有一个完整的窗口来了解细粒度的漏洞、以及每天出现大量新的合规性要求。IT安全工程师通常不了解不扩展的DevOps工具连续体的复杂性。如果没有更好地协作,强大的云原生命令可能会失控,需要修复。

Oak9 的联合创始人兼 CPO Om Vyas 在最近的采访中,谈论了他们团队如何应对云原生部署环境下安全性的问题。按照他的说法,安全需要为IaC采用与DevOps相同的自动化策略。

云原生中的IaC问题

十年前的软件交付方式与如今大有不同。部门之间往往是孤立的,IT和运营部门只能管理本地部署的硬件。这使得工程师能够使用防火墙锁定一切以控制运行时环境。同时,IT可以更直接地控制访问、网络策略、数据流和通信边界。

快进到如今的云原生架构,工程师拥有触手可及的巨大能力。开发人员可以通过使用 Terraform 立即启动像EC2这样的实例,用编辑器管理Kubernetes上的计算集群,调用无服务或其他各种功能。在引入新功能时,如果基础设施自动化正在改变现有架构,那么安全实施是什么?

保护IaC的一般方法

AWS、Azure 和 GCP 使启动存储、计算和网络资源变得非常容易,但是前提是建立在不考虑IaC 的安全影响对开发团队再次造成困扰的可能性。例如,混淆弹性负载均衡器之间的细微差别可能会暴露敏感数据。当然,一些组织正在构建适当的 IaC 抽象和模块。要做到这一点,必须要对文化转变、可观测性和全周期发展进行思考。

  • 文化转变

与大多数 IT 变革一样,提高安全性首先需要进行文化转变。技术是次要的,拥抱文化转变需要增加程序员、DevOps、SRE 和安全专业人员之间的协作,以决定自主的领域。

文化转变可能包括重新调整部署流程,或决定何时让安全团队参与新功能的发布。它还可以包括制定新的代码分析工具和工作流程标准化。

  • 可观测性

如果从根本上改变了应用程序的架构,那么团队需要知道哪些安全领域受到了影响。一个棘手的部分是在不增加开发人员工作流程的情况下,添加更多安全检查点,关键就在于实现自动化。

  • 全周期开发

开发人员继续围绕代码库承担延长生命周期的责任,有人称这种趋势为全周期发展。在应用生命周期内,为开发人员提供自主权确实会带来生产力优势。它可以减少对外部批准的需求并实现更快的软件更改。

但是,这种自主权并不意味着其他人不参与安全过程。安全的责任不应该仅仅在于开发人员和 SRE 团队,安全是整个组织的共同责任。

安全和IaC的未来

对于改变底层架构的新功能,团队需要提前了解潜在的安全影响和风险因素。例如,在添加分析仪表板时,如何知道无服务功能具有对数据库的正确访问级别?是公开的吗?是静态加密的吗?有适当的密钥管理系统吗?如何确保每次更改都不会产生额外风险?

围绕这些因素提高安全意识并不是可以马虎的事情。与DevOps的实践类似,采用安全思维往往在最后一环才能感受其带来的巨大收益。此外,随着多云采用率的提高,如果企业想要在所有软件部门应用与云无关的一致保护,则需要实时响应自身的安全理念。

最后再提一点,随着这种基础设施自动化的持续演进,预计未来很快还会从IaC 转向更多低代码/无代码的能力,这通常称为 ClickOps。而有可能将是未来新的发展方向。

(雷锋网编译)雷锋网雷锋网