当前位置: 首页 > 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》专栏,后续会继续输出相关内容文章。如果有帮助到大家,欢迎大家点赞+关注+收藏,有疑问也欢迎大家评论留言!

相关文章:

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进程的基本概念

冯诺依曼体系结构 我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。 截至目前,我们所认识的计算机,都是有一个个的硬件组件组成 输入单元:包括键盘 , 鼠标&#xf…...

设计模式深度解析: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,是一种视频压缩标准,旨在提供比先前的…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...