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》专栏,后续会继续输出相关内容文章。如果有帮助到大家,欢迎大家点赞+关注+收藏,有疑问也欢迎大家评论留言!
相关文章:
DevSecOps平台架构系列-亚马逊云AWS DevSecOps平台架构
目录 一、概述 二、AWS DevSecOps实施原则 2.1 尽早采用安全测试,加速问题反馈 2.2 优先考虑预防性安全控制 2.3 部署检测性安全控制时,确保有与之互补的响应性安全控制 2.4 安全自动化 2.5 总结 三、AWS DevSecOps关键组件 3.1 关键组件 3.2 关…...
KaTex 常用公式编辑
原文:https://blog.iyatt.com/?p7854 注:语法上和 Latex 差不多一样,我是因为 WordPress 上使用 WP Githuber MD 插件,才用的 KaTex(插件里面的 LaTex 模块有 bug,无法渲染) 希腊字母 大写代…...
域攻防渗透之委派攻击
出身寒微,不是耻辱,能屈能伸,方为丈夫。 约束性委派的利用 原理 非约束性委派被委派的机器会直接得到发布委派的用户的TGT,是十分不安全的,因此微软推出了约束性委派,还扩充kerberos协议,添加…...
优雅的使用ChromeDriver
在网页自动化测试中,我们经常需要控制浏览器执行各种操作。对于Python开发者来说,可以使用 Selenium 库来实现这一目的。Selenium需要与浏览器的驱动程序(Driver)配合使用,本文将介绍如何在Windows 11系统下载ChromeDriver并正确保存。 第一步:确定Chrome浏览器版本号 打开Ch…...
react native hooks 页面出现重绘问题,如何解决
在React Native应用中,使用Hooks导致页面出现频繁重绘或性能问题时,可以尝试以下策略来优化和解决问题: 减少不必要的状态更新: 使用 React.memo 高阶组件包裹那些不需要每次父组件状态改变时都重新渲染的子组件。它通过浅比较pro…...
kafka安装并测试
一. Linux下ZooKeeper的安装及使用 1、创建工作目录,下载安装包 #创建安装目录 mkdir -p /opt/zookeeper #移动到目录 cd /opt/zookeepe #下载zookeeper安装包 wget https://mirrors.aliyun.com/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz #解…...
flutter路由跳转
Navigator.of(context).push(); //路由跳转(模块方式) Navigator.of(context).push(MaterialPageRoute(builder: (BuildContext context) {return const Page() ;//Page()指页面}, )) Navigator.pushNamed(context, "/") //路由跳转(路由方式) Navigator.pop(cont…...
微服务项目小结1
01.微服务的概念 单体、分布式、集群 (面试用到)微服务把之前的大的应用,按照业务功能拆分成若干个小的模块,每个模块都是独立的开发,测试,上线,维护缺点: 开发成本高,众多服务出错的处理(容错),分布式事务…...
【小熊猫 ide】更新支持mingw 支持c++20
没有format 头文件 GCC版本对C++的支持情况即使我使用11,也没有format 头文件小熊猫 ide https://wwe.lanzoui.com/b01os0mwd最新11可以自己更新https://royqh1979.gitee.io/redpandacpp/docsy/docs/gcc13 才支持format [7GCC 13 has added support for std::format.](https:/…...
ESD保护二极管ESD9B3.3ST5G 以更小的空间实现强大的保护 车规级TVS二极管更给力
什么是汽车级TVS二极管? TVS二极管是一种用于保护电子电路的电子元件。它主要用于电路中的过电压保护,防止电压过高而损坏其他部件。TVS二极管通常被称为“汽车级”是因为它们能够满足汽车电子系统的特殊要求。 在汽车电子系统中,由于车辆启…...
SAP BTP云上一个JVM与DB Connection纠缠的案例
前言 最近在CF (Cloud Foundry) 云平台上遇到一个比较经典的案例。因为牵扯到JVM (app进程)与数据库连接两大块,稍有不慎,很容易引起不快。 在云环境下,有时候相互扯皮的事蛮多。如果是DB的问题,就会找DB…...
Linux进程的基本概念
冯诺依曼体系结构 我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。 截至目前,我们所认识的计算机,都是有一个个的硬件组件组成 输入单元:包括键盘 , 鼠标…...
设计模式深度解析:AI如何影响装饰器模式与组合模式的选择与应用
🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》《MYSQL应用》 💪🏻 制定明确可量化的目标,坚持默默的做事。 AI如何影响装饰器模式与组合模式的选择与应用 在今天这个快速发展的技术时代&#…...
JAVA面试大全之微服务篇
目录 1、Spring Cloud 1.1、什么是微服务?谈谈你对微服务的理解? 1.2、什么是Spring Cloud? 1.3、springcloud中的组件有那些? 1.4、具体说说SpringCloud主要项目...
WiFiSpoof for Mac wifi地址修改工具
WiFiSpoof for Mac,一款专为Mac用户打造的网络隐私守护神器,让您在畅游互联网的同时,轻松保护个人信息安全。 软件下载:WiFiSpoof for Mac下载 在这个信息爆炸的时代,网络安全问题日益凸显。WiFiSpoof通过伪装MAC地址&…...
14 - grace数据处理 - 泄露误差改正 - 空域滤波法(Mascon法)
@[TOC](grace数据处理 - 泄露误差改正 - 空域滤波法(Mascon法)) 空域法的基本思想是假设地面某区域的质量变化是由一系列位置已知、质量未知的质量块(小范围区域)引起的,那么将GRACE反演的结果归算到n个质量块上的过程就是泄露信号恢复的过程。个人理解是这样的:假定已知研…...
openGauss MySQL兼容性增强
MySQL兼容性增强 可获得性 本特性自openGauss 3.0.0版本开始引入。 特性简介 本特性主要从以下几方面增强openGauss与MySQL的兼容性(只列举部分典型语法,详情请参见《数据迁移指南》中“MySQL兼容性说明”章节):。 支持用户锁…...
【跟小嘉学 Linux 系统架构与开发】二、Linux发型版介绍与基础常用命令介绍
系列文章目录 【跟小嘉学 Linux 系统架构与开发】一、学习环境的准备与Linux系统介绍 【跟小嘉学 Linux 系统架构与开发】二、Linux发型版介绍与基础常用命令介绍 文章目录 系列文章目录[TOC](文章目录) 前言一、 Linux 发行版(Linux distribution)介绍二、Centos 虚拟机初始化…...
EMD关于信号的重建,心率提取
关于EMD的俩个假设: IMF 有两个假设条件: 在整个数据段内,极值点的个数和过零点的个数必须相等或相差最多不能超过一 个;在任意时刻,由局部极大值点形成的上包络线和由局部极小值点形成的下包络线 的平均值为零&#x…...
HEVC的Profile和Level介绍
文章目录 HEVCProfile(配置):Level(级别):划分标准 HEVC HEVC(High Efficiency Video Coding),也称为H.265,是一种视频压缩标准,旨在提供比先前的…...
Springboot Thymeleaf 实现数据添加、修改、查询、删除
1、引言 在Spring Boot中使用Thymeleaf模板引擎实现数据的添加、修改、查询和删除功能,通常步骤如下: 在Controller类中,定义处理HTTP请求的方法。创建Thymeleaf模板来处理表单的显示和数据的绑定。 2、用户数据添加 1、 在Controller类中…...
关于 UnityEditorWindow
想要使用UnityEditorWindow作为调试窗口吗? 这样做可以很方便的针对游戏中的重要对象做调试。 但是有一个很不方便的地方,OnGUI 的刷新频率不高,或者说需要鼠标点击之后才会重绘,如何解决这一问题? 可以如下操作&am…...
小狐狸JSON-RPC:wallet_addEthereumChain(添加指定链)
wallet_addethereumchain(添加网络) var res await window.ethereum.request({"method": "wallet_addEthereumChain","params": [{"chainId": "0x64", // 链 ID (必填)"…...
Pandas | value_counts() 的详细用法
value_counts() 函数得作用 用来统计数据表中,指定列里有多少个不同的数据值,并计算每个不同值有在该列中的个数,同时还能根据指定得参数返回排序后结果。 返回得是Series对象 value_counts(values,sortTrue, ascendingFalse, normalizeFal…...
上岸美团了!
Hello,大家好,最近春招正在如火如荼,给大家分享一份美团的面经,作者是一份某双非的硕(只如初见668),刚刚通过了美团的3轮面试,已经拿到offer,以下是他的一些分享。 一面&…...
Gemma开源AI指南
近几个月来,谷歌推出了 Gemini 模型,在人工智能领域掀起了波澜。 现在,谷歌推出了 Gemma,再次引领创新潮流,这是向开源人工智能世界的一次变革性飞跃。 与前代产品不同,Gemma 是一款轻量级、小型模型&…...
LabVIEW智能家居安防系统
LabVIEW智能家居安防系统 随着科技的飞速发展和人们生活水平的不断提升,智能家居系统以其便利性和高效性,逐渐成为现代生活的新趋势。智能家居安防系统作为智能家居系统的重要组成部分,不仅能够提高家庭的安全性,还能为用户提供更…...
[蓝桥杯 2022 省 A] 求和
[蓝桥杯 2022 省 A] 求和 题目描述 给定 n n n 个整数 a 1 , a 2 , ⋯ , a n a_{1}, a_{2}, \cdots, a_{n} a1,a2,⋯,an, 求它们两两相乘再相加的和,即 S a 1 ⋅ a 2 a 1 ⋅ a 3 ⋯ a 1 ⋅ a n a 2 ⋅ a 3 ⋯ a n − 2 ⋅ a n − 1 a n − 2 ⋅ a…...
【C++入门】输入输出、命名空间、缺省参数、函数重载、引用、内联函数、auto、基于范围的for循环
目录 命名空间 命名空间的定义 命名空间的使用 输入输出 缺省参数 函数重载 引用 常引用 引用的使用场景 内联函数 auto 基于范围的for循环 命名空间 请看一段C语言的代码: #include <stdio.h> #include <stdlib.h>int rand 10;int main…...
Docker + Nginx 安装
安装Docker 1.防火墙 2.yum源 3.安装基础软件 更新yum源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum clean all #清除yum源缓存 yu…...
企业网站建设的好处/网站流量数据分析
【H5】 svg画扇形饼图 效果图如下: 封装代码如下: 代码内有详细注解哦! <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widt…...
企业宣传片制作多少钱/班级优化大师头像
今天要总结的内容是C# 3.0的最新特性-扩展方法,它在LINQ查询中使用得也非常多,所以很有必要总结一下,以便于我们能更好地掌握LINQ。主要从以下几点来了解扩展方法。 1,什么叫扩展方法? 故名思义,扩展方法就…...
免费网站申请/百度手机助手app下载并安装
国战按计划进行,插7灵壁并在此集合,国战开始后很快就拿下寿春,并改7寿春雕像.这次好多了,绝大部分人都执行了命令,但还是有个别团友没有改7.吴攻寿春,被击退;龙攻许昌,也被击退.这种情况对我们很有利,许昌寿春两边刷,兄弟们想不上榜也难.可惜,人算不如天算,龙出重兵攻许昌,于是…...
北京做网站建设的公司/旺道网站排名优化
get命令 一、语法 get [-E] [-a] [-c] [-O base] rfile [-o lfile] 选项 说明 -o 指定输出文件的名字,不指定则使用原来的名字 -c 如果失败,持续获取 -E 获取之后,删除源文件 -a 使用ascii模式 -O 指定输出文件存放的目录 二…...
洛阳网站推广公司电话/模板建站网页
java中在上传文件或者下载文件的时候,或者获取配置文件的时候,经常需要获取工程中的文件的路径地址,这里介绍几种java中获取路径的方式 先说一个概念,classpath,就是在进行编译后,class文件,xml、properties等配置文件所在的目录。比如,如果是maven项目,…...
巴中网站制作公司/好口碑关键词优化地址
一、实现Comparator接口方法类似 Merge two sorted list 中介绍的,包括了有名类和匿名类两种方式具体使用:排序:Collections.sort(容器,comparator)Queue q new PriorityQueue(capacity,comparator)二、comparable 抽象类对于com…...