作者简介:肖文棣,OWASP中国广东分会负责人、网安加社区特聘专家,现任某外企安全架构师,负责应用安全设计、管理和评审等工作。
01IaC介绍
IaC是InfrastructureasCode的简称,即基础设施即代码。
在维基百科的定义中,基础设施即代码(IaC)是通过计算机可理解的定义文件而不是物理硬件配置或交互式配置工具来管理和配置计算机数据中心的过程。
此流程管理的IT基础架构既包括物理设备,也包括虚拟机,以及相关的配置资源。定义可能在版本控制系统中。定义文件中的代码可以使用脚本或声明式定义,而不是通过手动过程维护代码,但IaC更经常使用声明式方法。
基础设施即代码有四大原则:
1、再生性:环境中的任何元素可以轻松复制。
2、一致性:无论何时,创建的环境各个元素的配置是完全相同的。
3、快速反馈:能够频繁、容易地进行变更,并快速知道变更是否正确。
4、可见性:所有对环境的变更应该容易理解、可审计、受版本控制。
基础设施即代码有三大目标:
1、标准化。以代码来定义环境,实现开发环境、测试环境、生产环境的标准化。
2、自动化。以自动化工具来驱动代码准备环境。包括创建环境、更新环境以及销毁环境。
3、可视化。以监控来可视化环境信息。环境当前状态可视、环境变更历史可视、可追溯。
基础设施即代码实践是持续交付和DevOps的要求。下面是一个基础设施即代码的典型应用场景:
02IaC安全介绍
IaC安全指的是解决IaC中的配置问题,特别是云的配置问题。IaC的安全的最基本形式是能够识别错误配置和安全问题。
随着越来越多系统迁移到云环境,IaC的安全也变得越来越重要。下面有八个IaC的安全最佳实践:
1、扫描IaC代码,排除错误配置
IaC功能强大,但是同时也有安全风险。例如云环境中的错误配置,这些配置可能包括公开的S3存储桶、没有加密的数据库等。
使用类似SAST或者SCA的方法对IaC代码进行扫描,有助于尽早发现IaC的安全问题。
2、将自动化IaC安全扫描嵌入到开发流程中
现在的DevSecOps提倡安全左移,这个同样适合于IaC。参考OWASP的IaCCheatSheet(
转载请注明:http://www.0431gb208.com/sjszjzl/2535.html