当前位置: 首页 > news >正文

DevSecOps平台架构系列-亚马逊云AWS DevSecOps平台架构

目录

一、概述

二、AWS DevSecOps实施原则

2.1 尽早采用安全测试,加速问题反馈

2.2 优先考虑预防性安全控制

2.3 部署检测性安全控制时,确保有与之互补的响应性安全控制

2.4 安全自动化

2.5 总结

三、AWS DevSecOps关键组件

3.1 关键组件

3.2 关键安全组件

3.3 总结

四、AWS DevSecOps平台架构

4.1 AWS DevSecOps平台架构图

4.2 安全与流程融合过程

4.2.1 源码提交

4.2.2 工程构建

4.2.3 安全检测

4.2.4 发布

五、总结


一、概述

亚马逊云AWS也是较早开展DevSecOps实践的头部企业之一,在2017年AWS的技术博客中就曾讨论如何利用AWS Pipline构建DevSecOps平台能力。下面,带大家一起来了解一下AWS的DevSecOps平台架构。

二、AWS DevSecOps实施原则

2019年AWS的公开演讲中,蒂姆·安德森(Tim Anderson)讨论了AWS DevSecOps实施原则,其主要内容如下:

2.1 尽早采用安全测试,加速问题反馈

这和DevSecOps安全左移的理念一致,AWS意图通过安全测试的尽早加入,减少代码进入发布管道后才发现安全问题带来的返工成本。通过建立安全测试机制保障安全问题在研发早期发现。

2.2 优先考虑预防性安全控制

这一条原则还是讨论安全左移的重要性,AWS意图通过引入预防性安全控制,减少生产环境重大安全问题的发生。

2.3 部署检测性安全控制时,确保有与之互补的响应性安全控制

AWS认为,即使部署了预防性安全控制,也要考虑生产环境下预防失败的情况。当应急事件一旦发生时,能及时地采取补救措施。并且提倡用红蓝对抗验证和保障预防性安全控制、响应性安全控制的有效性。

2.4 安全自动化

AWS认为,DevSecOps中安全自动化是非常重要的组成部分,努力实现部署过程中的一切自动化,通过代码自动化地、快速地识别和修复安全问题。

2.5 总结

从上述的4个原则读者可以看出,AWS在DevSecOps的实施过程中是非常务实的,其关注的重点总结为三个词:安全左移、安全自动化、实战对抗,意图通过DevSecOps能力建设,快速地解决生产环境问题,并具备实战级的安全防护能力。

三、AWS DevSecOps关键组件

3.1 关键组件

和微软的Azure云一样,亚马逊云也有一系列的组件。这些组件无论是为AWS的云上业务,还是在AWS DevSecOps能力建设中,都起到了不可或缺的作用。如下所示为其中的部分关键组件。

3.2 关键安全组件

和Azure一样,AWS也有许多自研组件,这些组件主要围绕DevOps流程提供能力服务。对于安全工具,既有自研的,也有集成第三方工具,提供SaaS化能力。其中具有代表性的安全组件如下表所示。

3.3 总结

从这些自研和集成的组件可以看出,AWS的DevSecOps能力构建仍然沿用着平台建设的思路,对于管理流程、黄金管道、基础设施使用平台自研能力;对于静态安全检测、动态安全检测、开源组件安全等,以集成或插件的方式引入第三方安全能力,以完成DevSecOps平台能力的构建。

四、AWS DevSecOps平台架构

4.1 AWS DevSecOps平台架构图

AWS的DevSecOps平台架构是基于AWS DevOps能力之上构建的,除了安全检测工具使用第三方集成外,更多的安全能力是在原有的AWS产品中集成安全特性来解决的,其架构图如下图所示。

4.2 安全与流程融合过程

在架构图中可以看到,与DevOps相关的CodeCommit、CodePipeline、CodeBuild、CodeDeploy等组件均在架构扮演着重要的角色。下面通过其关键场景来讨论安全与流程的融合。

4.2.1 源码提交

当开发人员使用AWS Cloud9开发完代码之后,通过Git将代码提交到CodeCommit,生成一个触发CodePipeline的CloudWatch事件。

4.2.2 工程构建

CodeBuild将代码打包、构建,并将构建产物存储到AWS CodeArtifact或AWS S3上。

4.2.3 安全检测

  • 接着CodeBuild会调用静态检测工具SAST和组件分析工具SCA对代码进行扫描,如OWASP Dependency Check、SonarQube、Snyk等。
  • 如果SCA检测或SAST静态检测分析存在漏洞,CodeBuild会调用Lambda函数,通知到Security Hub。
  • 如果没有漏洞,CodeDeploy会将代码部署到测试环境。
  • 部署成功后,CodeBuild会调用OWASP ZAP工具触发动态安全扫描。
  • 动态检测如果发现漏洞,CodeBuild仍然会调用Lambda函数,通知到Security Hub。
  • 动态检测如果没有漏洞,则会触发审批流程,并向审批人发送一封电子邮件以推动上线发布流程。

4.2.4 发布

  • 得到审批人批准后,CodeDeploy将代码部署到生产环境。
  • 在整个运行过程中,CloudWatch Events捕获构建信息,通知用户;CloudTrail监控API调用,发送异常审计告警;AWS Config跟踪AWS服务配置更改情况,检查操作是否合规。

五、总结

亚马逊AWS云在过去的这些年里,一直不遗余力地推动其DevSecOps解决方案,甚至在业界公开的资料中,依托AWS云构建DevSecOps的案例也非常多。从这张架构图中,读者可以看出AWS云DevSecOps能力构建的主体思路和微软的Azure一样,其依托云产品本身构建的安全运营阶段能力仍需要读者去进一步的查阅其他资料去了解。总之,AWS云DevSecOps平台架构仍有着其鲜明的特点,主要如下:

  • 和本文开头提及的AWS云DevSecOps实施原则一样,AWS云非常注重安全测试能力的前置,无论是对静态安全检测工具SAST的引用,还是对动态安全检测工具DAST的第三方集成,本质都是通过安全测试工作前置尽早发现安全风险并消除。
  • AWS云自研的DevOps管道组件和云原生产品为DevSecOps构建提供了强大的基础能力。
  • Amazon CodeGuru、Amazon Cloud9、AWS Security Hub等自研工具,加上外部第三方工具的集成,帮助企业快速搭建DevSecOps平台化能力。

最后,附上AWS的官网地址,有兴趣的可以自己去借鉴学习下:

云安全_云安全产品_AWS云安全产品介绍-AWS云服务 (amazon.com)

好了,本次内容就分享到这,欢迎大家关注《DevSecOps》专栏,后续会继续输出相关内容文章。如果有帮助到大家,欢迎大家点赞+关注+收藏,有疑问也欢迎大家评论留言!

http://www.lryc.cn/news/329204.html

相关文章:

  • KaTex 常用公式编辑
  • 域攻防渗透之委派攻击
  • 优雅的使用ChromeDriver
  • react native hooks 页面出现重绘问题,如何解决
  • kafka安装并测试
  • flutter路由跳转
  • 微服务项目小结1
  • 【小熊猫 ide】更新支持mingw 支持c++20
  • ESD保护二极管ESD9B3.3ST5G 以更小的空间实现强大的保护 车规级TVS二极管更给力
  • SAP BTP云上一个JVM与DB Connection纠缠的案例
  • Linux进程的基本概念
  • 设计模式深度解析:AI如何影响装饰器模式与组合模式的选择与应用
  • JAVA面试大全之微服务篇
  • WiFiSpoof for Mac wifi地址修改工具
  • 14 - grace数据处理 - 泄露误差改正 - 空域滤波法(Mascon法)
  • openGauss MySQL兼容性增强
  • 【跟小嘉学 Linux 系统架构与开发】二、Linux发型版介绍与基础常用命令介绍
  • EMD关于信号的重建,心率提取
  • HEVC的Profile和Level介绍
  • Springboot Thymeleaf 实现数据添加、修改、查询、删除
  • 关于 UnityEditorWindow
  • 小狐狸JSON-RPC:wallet_addEthereumChain(添加指定链)
  • Pandas | value_counts() 的详细用法
  • 上岸美团了!
  • Gemma开源AI指南
  • LabVIEW智能家居安防系统
  • [蓝桥杯 2022 省 A] 求和
  • 【C++入门】输入输出、命名空间、缺省参数、函数重载、引用、内联函数、auto、基于范围的for循环
  • Docker + Nginx 安装
  • UE RPC 外网联机(1)