现在,越来越多的企业采纳基础架构即代码(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 产品营销经理
本文转载自 创实信息