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.mzph.cn/news/773325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新能源汽车充电桩主板各模块成本占比解析

汽车充电桩主板是汽车充电桩的重要组件,主要由微处理器模块、通信模块、控制模块、安全保护模块、传感器模块等多个模块构成。深入探究各模块在总成本中的比重,我们可以更好地优化成本结构、提高生产效率,并为未来的技术创新和市场需求变化做…

TypeScript【入门】

TypeSript ts是js的一个超集,解决js类型支持 js: 动态类型 ts:静态类型 代码执行的顺序是先编译在执行 发现错误更早 为什么要添加类型支持? 优势有什么? 全局安装 npm i -g typescript tsc -v 简化运行ts的步骤 typescript常用类型 类型…

C++类和对象、面向对象编程 (OOP)

文章目录 一、封装1.抽象、封装2.类和对象(0)学习视频(1)类的构成(2)三种访问权限(3)struct和class的区别(4)私有的成员变量、共有的成员函数(5)类内可以直接访问私有成员,不需要经过对象 二、继承三、多态1.概念2.多态的满足条件3.多态的使用条件4.多态原理剖析5.纯…

MySQL详细教程

文章目录 前言一、数据库管理1.查看已有的数据库2.创建数据库3.删除数据库4.进入数据库 二、 数据表管理1.查看当前数据库下的所有数据表2.创建数据表3.删除表4.查看表结构 三、常用数据类型1.整型tinyintintbigint 2.浮点型floatdoubledecimal 3.字符型char(m)varchar(m)textm…

linux在使用重定向写入文件时(使用标准C库函数时)使处理信号异常(延时)--问题分析

linux在使用重定向写入文件时(使用标准C库函数时)使处理信号异常(延时)–问题分析 在使用alarm函数进行序号处理测试的时候发现如果把输出重定向到文件里面会导致信号的处理出现严重的延迟(ubuntu18) #include <stdio.h> #include <stdlib.h> #include <unist…

7.3*3卷积核生成

1.卷积核 在数字图像处理中的各种边沿检测、滤波、腐蚀膨胀等操作都离不开卷积核的生成。下面介绍如何生成各种3X3的卷积核。为后面的数字图像操作打下基础。   由于图像经过卷积操作后会减少两行两列&#xff0c;因此在生成卷积核的时候一般会对图像进行填充&#xff0c;填充…

【CXL协议-ARB/MUX层(5)】

5.0 Compute Express Link ARB/MUX 前言&#xff1a; 在CXL协议中&#xff0c;ARB/MUX层&#xff08;Arbitration/Multiplexer layer&#xff09;是负责管理资源共享和数据通路选择的一层。CXL协议包含了几个子协议&#xff0c;主要有CXL.io、CXL.cache 和 CXL.memory。ARB/MU…

LeetCode 面试经典150题 383.赎金信

题目&#xff1a; 给你两个字符串&#xff1a;ransomNote 和 magazine &#xff0c;判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以&#xff0c;返回 true &#xff1b;否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。 思路&#x…

计算机网络——数据链路层(差错控制)

计算机网络——数据链路层&#xff08;差错控制&#xff09; 差错从何而来数据链路层的差错控制检错编码奇偶校验码循环冗余校验&#xff08;CRC&#xff09;FCS 纠错编码海明码海明距离纠错流程确定校验码的位数r确定校验码和数据位置 求出校验码的值检错并纠错 我们今年天来继…

【Linux】-Linux下的编辑器Vim的模式命令大全及其自主配置方法

目录 1.简单了解vim 2.vim的模式 2.1命令模式 2.2插入模式 2.3底行模式 3.vim各模式下的命令集 3.1正常&#xff08;命令模式下&#xff09; 3.1.1光标定位命令 3.1.2 复制粘贴 3.1.3 删除 3.1.4 撤销 3.1.5大小写转换 3.1.6替换 「R」&#xff1a;替换光标所到之处的字符&…

ComfyUI SDWebUI升级pytorch随记

目前使用的版本是去年10月的1.6版本&#xff0c;有点老。希望支持新的特性&#xff0c;于是乎开始作死。从升级torch开始。先看看已有的版本&#xff1a; (venv) rootubuntu-sd-server:~# pip show torch Name: torch Version: 2.0.1 Summary: Tensors and Dynamic neural net…

【贪心]【字符串】【分类讨论】420 强密码检验器

本文涉及知识点 贪心 字符串 分类讨论 LeetCode420 强密码检验器 满足以下条件的密码被认为是强密码&#xff1a; 由至少 6 个&#xff0c;至多 20 个字符组成。 包含至少 一个小写 字母&#xff0c;至少 一个大写 字母&#xff0c;和至少 一个数字 。 不包含连续三个重复字…

Reactor 模式全解:实现非阻塞 I/O 多路复用

Reactor网络模式是什么&#xff1f; Reactor网络模式时目前网络最常用的网络模式。如果你使用Netty&#xff0c;那么你在使用Reactor;如果你使用Twisted,那么你子啊使用Reactor;如果你使用netpoll&#xff0c;那么你在使用Reactor。 这里先给出答案&#xff1a;Reactor I/O多…

204基于matlab的图像融合

基于matlab的图像融合&#xff0c;包括三种方式&#xff0c;加权、PCA、IHS变换。比较三者融合后的图像差异。程序已调通&#xff0c;可直接运行。 204 matlab 图像融合 信息融合 - 小红书 (xiaohongshu.com)

【二叉树】Leetcode 94. 二叉树的中序遍历【简单】

二叉树的中序遍历 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2] 解题思路 中序遍历是一种二叉树遍历方式&#xff0c;按照“左根右”的顺序遍历二叉树节点。 1、递归…

python 处理png图片无损压缩

代码利用了Pillow库来处理图片的压缩&#xff0c;并使用了 glob 模块来搜索所有的 .png 文件。这个脚本应该能够按照当前的编写来完成预期的工作。 请注意&#xff0c;compress_level9 指定了Pillow保存PNG图片时采用的最大压缩等级。这确保了每张图片都被以可能的最小文件大小…

【Spring】Spring框架中的一个核心接口ApplicationContext 简介,以及入口 Run() 的源码分析

一、简介 ApplicationContext 是Spring框架中的一个核心接口&#xff0c;它是Spring IoC容器的实现之一&#xff0c;用于管理和组织应用程序中的各种Bean&#xff0c;同时提供了一系列功能来支持依赖注入、AOP等特性。 简单来说&#xff0c;ApplicationContext 是一个大型的、…

求两个单链表的差集

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 但行前路&#xff0c;不负韶华&#…

发车,易安联签约某新能源汽车领军品牌,为科技创新保驾护航

近日&#xff0c;易安联成功签约某新能源汽车领军品牌&#xff0c;为其 数十万终端用户 建立一个全新的 安全、便捷、高效一体化的零信任终端安全办公平台。 随着新能源汽车行业的高速发展&#xff0c;战略布局的不断扩大&#xff0c;技术创新不断引领其市场价值走向高点&am…

移动端Web笔记day03

移动 Web 第三题 01-移动 Web 基础 谷歌模拟器 模拟移动设备&#xff0c;方便查看页面效果&#xff0c;移动端的效果是当手机屏幕发生了变化&#xff0c;页面和页面中的元素也要跟着等比例变化。 屏幕分辨率 分类&#xff1a; 硬件分辨路 -> 物理分辨率&#xff1a;硬件…