现在,越来越多的企业采纳基础架构即代码(Infrastructure as Code,简写为IaC)技术。IaC是一种通过代码(而非手动流程)来治理和配置基础架构的办法。通过应用IaC技术,企业能够不便地配置和治理云基础架构,实现敏捷性,同时也能够在开发的晚期阶段嵌入安全性,缩小被攻打的危险。然而,如果IaC使用不当,就会带来一些平安危险,从而引发数据泄露等问题。作为SonarQube受权合作伙伴,创实信息关注代码防护畛域,帮忙您晋升代码的平安防护。在本文中,您将找到如何解决IaC我的项目中的代码异味、谬误和破绽的办法,帮忙您编写洁净的代码。
全新的技术……雷同的挑战
科技的平凡之处在于总会发明出有价值的新技术。尽管基础架构即代码(IaC)并不是全新的技术,但它依然给人一种眼前一亮的感觉,并且它的受欢迎水平还在飞升。对于首次接触这个概念的开发人员,以下的简短总结可供参考:
基础架构即代码(IaC)是通过机器可读的定义文件(而非物理硬件配置或基于GUI的配置工具)来治理和配置基础架构的过程。这些定义文件能够通过申明式(WHAT)或命令式(HOW)办法在版本控制系统(例如Git零碎)中进行保护。申明式办法定义了冀望的状态,零碎执行实现该冀望状态所需的操作。命令式办法定义了须要以适当的程序执行,以实现所需状态的特定命令。IaC工具侧重于应用申明式办法(例如AWS CDK、Terraform)。
IaC的卓越之处在于为开发人员的可实现目标提供了一种全新的路径。这是一种功能强大的技术,可使开发人员和云平台工程师以更大的灵活性和独立性进行工作。
“仅有技术是不够的。”——史蒂夫·乔布斯(Steve Jobs)
权限越大,责任就会越大。就如同源代码一样,IaC也可能存在谬误和破绽。这些可能对您的基础架构和企业名誉造成重大负面影响。
谁负责平安防护?
这里提出了一个叫做独特责任模型的概念。平安防护是云服务提供商(例如Amazon Web Services (AWS)、Microsoft Azure或Google Cloud Platform (GCP))与客户独特承当的责任。在这种“共享模型”中,云服务提供商负责提供“云服务平安防护”。这意味着云服务提供商负责爱护传统服务的平安防护,包含物理主机防护、网络安全和虚拟化操作平安。
客户负责“恪守云端平安防护”,这意味着平台和资源配置均由您间接管制。当您启动云基础架构时,您就间接管制了操作环境,而与您是否应用服务器启动云基础架构无关。
但并非所有云开发人员都已意识到了这一点或曾经了解了这一点的重要性。轻微的谬误能够裸露很多问题。乐观的方面在于IaC只是代码工具,通过SonarSource,咱们获知了一些帮忙人们编写洁净且具备防护性代码的办法!
应用Sonar爱护您的IaC
咱们在Sonar解决方案中增加了规定,用于检测IaC我的项目中的代码异味、谬误和破绽。如果您曾经在工作中应用IaC,或者只是想探索其价值,那么你可能正在开发云原生应用程序,而这正是Sonar真正大展身手的中央。通过应用Sonar,您能够查找并修复IaC中存在的问题,并且Sonar还能够扫描你的云原生应用程序中的源代码。无论是在后端运行的JavaScript还是作为微服务一部分的AWS Lambda函数,Sonar都能对品质和防护问题进行检测并帮忙你解决这些问题。
以下是通过IaC特定规定查看到的问题示例:
Azure中具备辅助地位的作用域权限破绽
AWS中的身份验证破绽
咱们晓得人们并不总是应用繁多的云提供商进行部署,所以咱们有AWS、Azure和谷歌等平台的规定覆盖范围。咱们在IaC/云原生畛域才刚刚起步,咱们曾经增加了几十条规定,并且曾经为客户发明了很多价值。
轻松开始
请拜访Sonarpedia查看CloudFormation和Terraform规定。
想要亲自体验SonarQube或试用SonarCloud,请分割SonarQube中国官网受权合作伙伴——创实信息 ,咱们提供SonarQube产品的征询、销售、 施行、培训及技术支持服务。
作者简介:
克林特·卡梅伦(CLINT CAMERON)
SonarSource产品营销经理
本文转载自 创实信息