【云计算网络安全】解析 Amazon 安全服务:构建纵深防御设计最佳实践

文章目录
- 一、前言
- 二、什么是“纵深安全防御”?
- 三、为什么有必要采用纵深安全防御策略?
- 四、以亚马逊云科技为案例了解纵深安全防御策略设计
- 4.1 原始设计缺少安全策略
- 4.2 外界围栏构建安全边界
- 4.3 访问层安全设计
- 4.4 实例层安全设计
- 4.5 数据层安全设计
- 4.6 监控层安全设计
- 五、文末总结
一、前言
本文内容来源于亚马逊云科技的“亚麻拉松”,由印度讲师 Himanshu Sangshetti(由于名字太长,下文简称其 Sangshetti)主讲。博主在此基础上进行了详细归纳总结,并结合自身理解进一步拓展,深入解析了云计算网络安全中的“纵深防御”理念。文章不仅还原了讲解中的精彩内容,还通过实际案例展示了如何在亚马逊云科技的服务中设计和实现多层次的安全防御策略,为读者提供了全面且实用的网络安全知识。
二、什么是“纵深安全防御”?
“纵深防御” (Defense In Depth,或者常见缩写DiD) 是一种网络安全策略,它使用多种安全产品和实践来保护组织的网络、Web 资产和资源。它有时与“分层安全”一词互换使用,因为它依赖于多个控制层(物理、技术和管理)的安全解决方案,来防止攻击者访问受保护的网络或本地资源。
最初,纵深防御是指一种军事战略,牺牲一条防线来阻止敌方部队。尽管名称相似,但该方法与我们所说的安全策略并不相似,在纵深防御安全策略中,多个产品协同工作以阻止攻击者和其他威胁。
三、为什么有必要采用纵深安全防御策略?
纵深安全防御策略的指导原则是,单一安全产品无法完全保护网络免受可能面临的每一次攻击。但是,实施多种安全产品和实践可以帮助检测和预防出现的攻击,使组织能够有效地缓解各种威胁。随着组织扩展其网络、系统和用户,这种方法变得越来越重要。
分层安全的另一个优点是冗余。如果外部攻击者破坏了一道防线或内部威胁危及组织网络的一部分,则其他安全措施可以帮助限制和减轻对整个网络的损害。相比之下,仅使用一种安全产品会产生单点故障;如果它受到损害,整个网络或系统可能因此遭到破坏或损坏。
四、以亚马逊云科技为案例了解纵深安全防御策略设计
整个 Sangshetti 这个讲解过程中,其实就是以现实生活中我们去一个公司园区的某个建筑中的某个房间为示例,结合亚马逊的相关云服务来构建纵深防御策略的设计。
4.1 原始设计缺少安全策略

Sangshetti 最开始举例了一个原始应用,你可以认为是一个毛坯房,这个房子只是提供了居住,或者使用,但是大门或者窗户等都是不健全的,所有人都可以随意进入,这也可以类比你最开始设计出来的程序,几乎没有什么安全可言。
4.2 外界围栏构建安全边界
直接看下图更加直观,在网络层面最开始就构建了安全策略。以这个进入建筑园区来举例,你可以认为这个网络安全层可以是园区的封闭范围,外接没有其他入口进入,进入的入口只有一个大门。无论是你送外卖还是送快递,还是员工亦或者其他人员,只能通过这一个大门进入。

拆解一下网络安全的组件,其中包括VPC,Security Groups以及Network ACLs,其实这3件套就已经是垂直的网络安全设计了,外层VPC构建独立的私有网络,可以控制以及划分一个独立的网络,你可以认为是上面讲的园区边界,在这里举例中,如下图构建了4个子网,每个私有子网都包含自己的 NACL以及SG,SG为自己的防火墙可以控制自己的入栈出栈,而NACL可以是一个过滤器,来进行额外的网络控制。(由于篇幅原因,以后关于SG与NACL我可以单独写一篇文章来讲解一下)

4.3 访问层安全设计
这里非常简单的一个例子是,如果你是园区员工,那么你就有进入的权限,并且有相应公司大楼的访问权限,类似给了你一个进入大楼的工牌,这个工牌有相应授权给你的权限,这个亚马逊核心服务就是 IAM,这既可以基于权限,又可以基于你的角色来分配访问权限。除了 Amazom IAM还有另外一个服务: Amazom Cognito,Amazon Cognito为安全的应用程序访问提供用户身份验证、授权和用户池管理。

在这里看下图可以看到在我们访问层前面多了一个web层,这个地方增加了Amazon Shield以及 Amazon WAF服务,你可以试想一下,即使你有访问权限,身份也得到了授权,会有一种可能发生的情况是,突然园区入口处来了一大群人,这里面只有你一个人有访问权限,但是所有人都要去核验身份或或者冲去前台,那么会发生什么,一定会发生大量的拥堵以及人手不够的情况,这个时候我们就需要WAF以及Shield了,Amazon WAF通过过滤恶意流量来保护web应用程序免受SQL注入和跨站点脚本等常见威胁;Shield 可以抵御 DDoS攻击。

4.4 实例层安全设计
在这里园区内每个建筑都有楼层和房间,就像应用程序有多个服务器或实例一样。IAM的角色权限可以控制来访人具体可以访问什么地方(亚马逊的具体什么服务),而对于这些EC2实例或者其他实例 Amazon Systems Manager确保他们能够得到管理、打补丁和安全控制等。Amazon Systems Manager 可以简化修复补丁、配置管理实例监控等操作任务。

4.5 数据层安全设计
假设你是园区内的员工,通过了上述所有的访问进入到了公司内,并且打开了公司内的某台电脑,此时你要访问电脑内的数据,而你要访问的电脑用户名密码如何来存储,或者你要访问 1000 台电脑,他们的用户名密码都不同,你如何或者这些敏感数据,这些敏感数据如何进行存储管理?亚马逊云科技的 Amazon KMS 提供了加密敏感数据,它可以加密密秘钥和进行安全管理等;而 Amazon Secrets Manager 服务则可以用于安全地存储、管理和轮换敏感信息(如数据库凭证、API 密钥等),以确保应用程序的安全性和合规性。

4.6 监控层安全设计
类比我们全文的园区例子,这里的监控层你可以认为是从你在园区大门,到经过园区的街道,到进入园区内的某栋大楼,再到你进入自己的公司以及办公室,每一个地方都有一个监控摄像头。

在亚马逊云科技服务中心,GuardDuty 可以用来检测威胁, CloudTrail 用于记录每个活动事件,而 Security Hub 则提供了所有报警和所有发现的集中视图,这3个服务组合起来就形成了一个安保监控团队。

五、文末总结
这次的亚麻拉松活动中 Sangshetti 的这一部分总结起来是通过办公园区安全的生动类比,讲解了亚马逊云科技在纵深安全防御中的多层安全设计。从网络层的边界保护到访问层的身份管理,再到实例层的权限控制和数据层的敏感信息加密,每一层设计都紧密衔接。无论是 WAF、Shield 的流量防护,还是GuardDuty 的威胁检测,所有服务共同构筑了一个全面、稳固的安全体系,为企业的网络安全提供了强有力的保障。
相关文章:
【云计算网络安全】解析 Amazon 安全服务:构建纵深防御设计最佳实践
文章目录 一、前言二、什么是“纵深安全防御”?三、为什么有必要采用纵深安全防御策略?四、以亚马逊云科技为案例了解纵深安全防御策略设计4.1 原始设计缺少安全策略4.2 外界围栏构建安全边界4.3 访问层安全设计4.4 实例层安全设计4.5 数据层安全设计4.6…...
【Andriod ADB基本命令总结】
笔者工作当中遇到安卓机器的数据访问和上传,特来简单总结一下常用命令。 1、ADB命令简介与安装 简介: ADB (Android Debug Bridge) 是一个强大的命令行工具,用于与 Android 设备进行交互,常用于开发、调试、测试以及设备管理等操作。它是 Android 开发工具包(SDK)的一部…...
ChatGPT如何辅助academic writing?
今天想和大家分享一篇来自《Nature》杂志的文章《Three ways ChatGPT helps me in my academic writing》,如果您的日常涉及到学术论文的写作(writing)、编辑(editing)或者审稿( peer review)&a…...
Day 27 贪心算法 part01
贪心算法其实就是没有什么规律可言,所以大家了解贪心算法 就了解它没有规律的本质就够了。 不用花心思去研究其规律, 没有思路就立刻看题解。 基本贪心的题目 有两个极端,要不就是特简单,要不就是死活想不出来。 学完贪心之后再去看动态规划,就会了解贪心和动规的区别。…...
使用Python实现目标追踪算法
引言 目标追踪是计算机视觉领域的一个重要任务,广泛应用于视频监控、自动驾驶、机器人导航、运动分析等多个领域。目标追踪的目标是在连续的视频帧中定位和跟踪感兴趣的物体。本文将详细介绍如何使用Python和OpenCV实现一个基本的目标追踪算法,并通过一…...
某科技研发公司培训开发体系设计项目成功案例纪实
某科技研发公司培训开发体系设计项目成功案例纪实 ——建立分层分类的培训体系,加强培训跟踪考核,促进培训成果实现 【客户行业】科技研发行业 【问题类型】培训开发体系 【客户背景】 某智能科技研发公司是一家专注于智能科技、计算机软件技术开发与…...
如何通过高效的缓存策略无缝加速湖仓查询
引言 本文将探讨如何利用开源项目 StarRocks 的缓存策略来加速湖仓查询,为企业提供更快速、更灵活的数据分析能力。作为 StarRocks 社区的主要贡献者和商业化公司,镜舟科技深度参与 StarRocks 项目开发,也为企业着手构建湖仓架构提供更多参考…...
Linux V4L2框架介绍
linux V4L2框架介绍 V4L2框架介绍 V4L2,全称Video for Linux 2,是Linux操作系统下用于视频数据采集设备的驱动框。它提供了一种标准化的方式使用户空间程序能够与视频设备进行通信和交互。通过V4L2接口,用户可以方便地实现视频图像数据的采…...
【前端】JavaScript 中 arguments、类数组与数组的深入解析
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 💯前言💯什么是 arguments 对象2.1 arguments 的定义2.2 arguments 的特性2.3 使用场景 💯深入了解 arguments 的结构3.1 arguments 的内部结构arguments 的关键属性…...
Android 布局菜单或按钮图标或Menu/Item设置可见和不可见
设置可见和不可见 即 设置 显示和隐藏;是双向设置;什么情况显示,什么情况隐藏分判断的条件 它不同于删除和屏蔽,删除和屏蔽,覆盖是单向的,不可逆转的。它间接等于单向的隐藏!!&…...
|| 与 ??的区别
?? : 空值合并运算符, 用于在左侧操作数为 null 或 undefined 时返回右侧操作数 let name null // null 或者 undefinedlet defaultName defaultNamelet displayName name ?? defaultNameconsole.log(displayName) // defaultName || : 逻辑或,…...
wordpress获取文章总数、分类总数、tag总数等
在制作wordpress模板的时候会要调用网站的文章总数分类总数tag总数等这个数值,如果直接用count查询数据库那就太过分了。好在wordpress内置了一些标签可以直接获取到这些数值,本文整理了一些常用的wordpress网站总数标签。 文章总数 <?php $count_…...
pytest 通过实例讲清单元测试、集成测试、测试覆盖率
1. 单元测试 概念 定义: 单元测试是对代码中最小功能单元的测试,通常是函数或类的方法。目标: 验证单个功能是否按照预期工作,而不依赖其他模块或外部资源。特点: 快速、独立,通常是开发者最先编写的测试。 示例:pytest 实现单…...
C#里怎么样自己实现10进制转换为二进制?
C#里怎么样自己实现10进制转换为二进制? 很多情况下,我们都是采用C#里类库来格式化输出二进制数。 如果有人要你自己手写一个10进制数转换为二进制数,并格式化输出, 就可以采用本文里的方法。 这里采用求模和除法来实现的。 下…...
Kafka-Consumer理论知识
一、上下文 之前的博客我们分析了Kafka的设计思想、Kafka的Producer端、Kafka的Server端的分析,为了完整性,我们接下来分析下Kafka的Consumer。《Kafka-代码示例》中有对应的Consumer示例代码,我们以它为入口进行分析 二、KafkaConsumer是什…...
Js-对象-04-Array
重点关注:Array String JSON BOM DOM Array Array对象时用来定义数组的。常用语法格式有如下2种: 方式1: var 变量名 new Array(元素列表); 例如: var arr new Array(1,2,3,4); //1,2,3,4 是存储在数组中的数据࿰…...
React 第八节组件生命周期钩子-类式组件,函数式组件模拟生命周期用法
概述 React组件的生命周期可以分为三个主要阶段: 挂载阶段(Mounting):组件被创建,插入到DOM 树的过程; 更新阶段(Updating):是组件中 props 以及state 发生变化时&#…...
Dubbo源码解析-服务调用(七)
一、服务调用流程 服务在订阅过程中,把notify 过来的urls 都转成了invoker,不知道大家是否还记得前面的rpc 过程,protocol也是在服务端和消费端各连接子一个invoker,如下图: 这张图主要展示rpc 主流程,消费…...
svn 崩溃、 cleanup失败 怎么办
在使用svn的过程中,可能出现整个svn崩溃, 例如cleanup 失败的情况,类似于 这时可以下载本贴资源文件并解压。 或者直接访问网站 SQLite Download Page 进行下载 解压后得到 sqlite3.exe 放到发生问题的svn根目录的.svn路径下 右键呼出pow…...
【Linux系列】NTP时间同步服务器搭建完整指南
在分布式系统和高可用环境中,时间同步是至关重要的。特别是对于银行、金融等关键业务系统,精准的时间同步不仅关系到系统的稳定性,还直接影响交易处理、日志管理、日终结算等功能。本文将介绍NTP(Network Time Protocol࿰…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
基于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…...
