【云计算网络安全】解析 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࿰…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
