零基础5分钟上手亚马逊云科技 - 网络安全分析最佳实践

news2024/11/13 9:47:01

简介:

欢迎来到小李哥全新亚马逊云科技AWS云计算知识学习系列,适用于任何无云计算或者亚马逊云科技技术背景的开发者,通过这篇文章大家零基础5分钟就能完全学会亚马逊云科技一个经典的服务开发架构方案。

我会每天介绍一个基于亚马逊云科技AWS云计算平台的全球前沿云开发/架构技术解决方案,帮助大家快速了解国际上最热门的云计算平台亚马逊云科技AWS最佳实践,并应用到自己的日常工作里。本次介绍的是如何分析亚马逊云科技VPC网络环境中的流量日志,配置网络安全控制防火墙,组织特定IP访问,提升网络安全性的全部方案。本方案架构图如下:

方案所需基础知识 

什么是 VPC?

Amazon VPC (Virtual Private Cloud) 是 AWS 提供的一项服务,允许用户在云中创建和管理自己的虚拟网络。通过 VPC,用户可以自定义网络配置,例如 IP 地址范围、子网、路由表和网关等,并对云资源进行隔离和保护。这为用户提供了类似于传统数据中心的网络控制能力,但在云中运行和管理。

什么是 VPC Flow Log?

VPC Flow Log 是 AWS 提供的监控工具,用于捕获和记录 VPC 中网络接口的 IP 流量信息。它可以记录流入和流出 VPC 的数据包详情,例如源 IP 地址、目标 IP 地址、端口号、协议等。Flow Log 的数据可以存储在 Amazon CloudWatch Logs、S3 或 Kinesis 中,用于流量分析、安全审计和问题排查。

什么是网络 ACL?

网络 ACL(访问控制列表)是一种可选的安全层,用于控制进出 VPC 子网的网络流量。ACL 类似于防火墙规则,可以基于 IP 地址、协议和端口号设置允许或拒绝流量的规则。网络 ACL 对所有进出子网的流量进行筛选,提供了额外的安全保护。

为什么要分析 VPC Flow Log 以确保网络安全?

检测异常行为

通过分析 VPC Flow Log,可以识别出异常的流量模式,如未经授权的访问、潜在的攻击行为或数据泄露等。这有助于及时发现并响应安全威胁。

流量审计和合规性

VPC Flow Log 为网络流量提供了详细的记录,便于审计和报告,帮助企业满足行业标准和法规要求,如 PCI DSS 或 HIPAA。

入侵检测与防御

借助 Flow Log,可以监控和检测潜在的入侵行为,例如端口扫描、DDoS 攻击等,并据此调整防御策略,保护关键资源。

优化网络配置

分析 Flow Log 数据,可以帮助优化网络配置,改进网络 ACL 和安全组规则,减少不必要的流量,提高整体网络的性能和安全性。

本方案包括的内容

1. 为亚马逊云科技VPC网络环境开启网络日志Log,并储存至S3存储桶

2. 读取和分析VPC网络流量日志

3. 创建网络安全控制防火墙阻止异常流量。

项目搭建具体步骤 

1. 首先登录亚马逊云科技控制台,创建一个S3文件存储桶“vpc-flowlogs-1212”

2. 接下来进入VPC服务主页。

3.点击左侧Your VPCs页面,选中我们的VPC网络环境,点击下方“Flow Logs”页面,点击“Create Flow Log”创建VPC流量日志。

4. 我们将Flow log命名为“my-vpc-flowlogs”,并选择筛选条件为“Accept”记录所有成功的流量请求。

5. 选择Destination存储方式为存储到S3桶中,填入我们之前创建的S3桶ARN ID,最后点击Create Flow log开启该流量日志。

6. 开启后我们进入到S3服务页面,点击进入我们存储VPC flow log的S3桶。

7. 点击进入路径“vpc-flowlogs-1212” -> "AWSLogs" ->"账户ID" -> "vpcflowlogs" -> "AWS账户所在区域" -> "当天日期" ,即可看到我们开启的VPC Flow log日志。点击Download下载该日志文件。

8. 打开该日志文件,我们可以看到所有的流量请求记录,本次测试中“67.220.242.47”为我们模拟攻击IP。

9. 返回VPC服务主页,点击左侧栏中的“Network ACLs” VPC安全控制防火墙,选中我们VPC正在使用生效Network ACLs,再右侧的Edit Inbound Rules配置防火墙规则.

10. 点击“Add New Rule”,为ACLs添加入站规则。

 11. 我们为该规则添加Number编号为10,流量类型为“All Traffic”所有流量,流量源头为“67.220.242.47/32”,防火墙对流量的操作为“Deny”阻止,最后点击保存。

12. 回到VPC flow log配置界面,将记录的流量类型从接收流量,改为被阻止流量请求“Reject”,更新该Flow log配置。

13. 我们再返回到存储VPC Flow Log的S3存储桶中,下载刚刚更新的Flow log日志。

14. 这里我们可以看到在我们更新ACLs网络控制防护墙后,来自异常访问的IP:“67.220.242.47/32”的所有请求均被阻止。

如何利用Python代码创建VPC Flow Log?

以下是使用 Python boto3 创建 VPC Flow Log,并将其日志保存在 S3 桶中的代码示例:

import boto3

# 创建 boto3 客户端
ec2 = boto3.client('ec2')

# 定义参数
vpc_id = 'vpc-0123456789abcdef0'  # 替换为你的 VPC ID
s3_bucket_name = 'my-flow-logs-bucket'  # 替换为你的 S3 桶名称
flow_log_name = 'MyVPCFlowLog'

# 创建 VPC Flow Log 并将其保存到 S3
response = ec2.create_flow_logs(
    ResourceIds=[vpc_id],
    ResourceType='VPC',
    TrafficType='ALL',  # 可选值:ALL, ACCEPT, REJECT
    LogDestinationType='s3',
    LogDestination=f'arn:aws:s3:::{s3_bucket_name}',
    LogFormat='${version} ${resource-id} ${interface-id} ${account-id} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${packets} ${bytes} ${start} ${end} ${action} ${log-status}',
    TagSpecifications=[
        {
            'ResourceType': 'vpc-flow-log',
            'Tags': [
                {
                    'Key': 'Name',
                    'Value': flow_log_name
                },
            ]
        },
    ]
)

# 输出 Flow Log ID
flow_log_id = response['FlowLogIds'][0]
print(f"VPC Flow Log created successfully. Flow Log ID: {flow_log_id}")

代码解释:

  1. 创建 EC2 客户端

    • 使用 boto3.client('ec2') 创建 EC2 客户端以与 VPC 相关的资源进行交互。
  2. 参数定义

    • vpc_id: 指定要创建 Flow Log 的 VPC ID。
    • s3_bucket_name: 指定用来存储 Flow Log 的 S3 桶名称。
    • flow_log_name: Flow Log 的名称标签。
  3. create_flow_logs 方法

    • ResourceIds: 指定要创建 Flow Log 的资源 ID,这里是 VPC ID。
    • ResourceType: 资源类型为 VPC。
    • TrafficType: 指定要记录的流量类型。ALL 记录所有流量,ACCEPT 只记录被接受的流量,REJECT 只记录被拒绝的流量。
    • LogDestinationType: 日志的目标类型为 S3。
    • LogDestination: 指定日志的目标为 S3 桶的 ARN。
    • LogFormat: 指定日志的格式,这里包括常见的日志字段。
    • TagSpecifications: 为 Flow Log 添加名称标签。
  4. 打印 Flow Log ID

    • 成功创建 Flow Log 后,返回 Flow Log 的 ID 并打印出来。

以上就是在亚马逊云科技上分析网络流量,并保护网络安全的最佳实践全部步骤。欢迎大家关注0基础5分钟上手AWS系列,未来获取更多国际前沿的AWS云开发/云架构方案!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2073302.html

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

相关文章

【逐行注释】基于CV/CT模型的IMM|MATLAB程序|源代码复制后即可运行,无需下载

订阅专栏后可以直接查看完整的源代码(和注释),无需付费下载或其他的操作。代码复制到MATLAB上面可以得到和我一样的运行结果。 文章目录 程序概述完整代码与逐行注释运行结果解释按模块分析代码程序概述 基于EKF的多模型交互。以CV和CT两个模型进行交互,这里对代码进行逐…

Django后台管理Xadmin使用DjangoUeditor富文本编辑器

Django后台管理Xadmin使用DjangoUeditor富文本编辑器 一、下载 点击github下载 https://github.com/twz915/DjangoUeditor3 1、下载完后解压到跟xadmin同一层级目录: 2、解压后名称可能为DjangoUeditor3-master,需要改为DjangoUeditor 3、进入DjangoUeditor目录,把Djan…

Visiual Studio如何添加C语言的依赖和一些快捷键

Debug 和 Release 项目输出设置 Debug: 调试版本,包含调试信息,并且把进行任何优化,便于程序员调试。Debug模式下生成两个文件,除了 .exe 或者 .dll文件外,还有一个 .pdb 文件,这个文件记录了代码中断点等…

查找数学类文献的专业数据库有哪些 如何获取这些数据库资源

一、MathSciNet(美国数学会《数学评论》) MathSciNet数据库是美国数学学会出版的《数学评论》Mathematical Reviews和Current Mathematical Publications的网络版,包含《数学评论》自1940年出版以来的所有评论文章,包括期刊、图书…

【Node】【4】事件循环和EventEmitter类

事件循环 事件驱动:node中程序的执行是由事件的发生和相应的事件处理器(eventHandler)来驱动的编程范式。 程序监听并响应发生的事件。每个异步事件都生成一个事件观察者,在执行某个事件(主题)结束的时候…

SVN项目的文件泄露分析和漏洞修复

说明:本文仅是用于学习分析自己搭建的SVN漏洞内容和原理,请勿用在非法途径上,违者后果自负,与笔者无关;本文开始前请认真详细学习《‌中华人民共和国网络安全法》‌及其相关法规内容【学法时习之丨网络安全在身边一图了解网络安全法_中央网络安全和信息化委员会办公室】 …

信息学奥赛初赛天天练-75-NOIP2016普及组-完善程序-二分答案、二分查找、贪心算法、贪心策略

文章PDF链接: https://pan.baidu.com/s/1SVcGU_rApvoUWrUoviPCiA?pwdht2j 提取码: ht2j 复制这段内容后打开百度网盘手机App,操作更方便哦 1 完善程序 (单选题 ,每小题3分,共30分) 郊游活动 有 n名同学参加学校组织的郊游活动&#xff0c…

gateway的学习

1.网关的作用 1.负载均衡 2.过滤器的使用 1.通过配置文件实现的过滤器 2.代码逻辑层面实现全局过滤器 //全局过滤器代码逻辑实现 Component //Order(1):注解配置过滤器的执行顺序 public class GlobalFilter implements GatewayFilter, Ordered {/*** 处理当前请求,…

RocketMQ~高性能设计与实现(零拷贝技术)、多种集群模式

与Kafka类似,RocketMQ也使用了零拷贝技术、对于分区,其也有分队列的思维在。 零拷贝技术 传统的IO读写其实就是readwrite的操作,整个过程会分为如下几步 用户调用read()方法,开始读取数据,此时发生一次上下文从用户…

Storage:Keeping memories in the brain(存储:把记忆保存在大脑中)

Once you’ve encoded information, you now need to store it. Unfortunately, forgetting is a major part of how our brains work.Most of us can’t remember what we had for dinner Tuesday, three weeks ago.However, we can all remember our first kiss. 一旦完成了信…

工厂模式和策略模式的区别和各自的实现

工厂模式和策略模式是两种不同的设计模式,它们分别解决的是创建对象和定义算法家族的问题。 工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一,它提供了一种创建对象的方式,使得创建对象的过程与使…

如何发布年会通知?

在组织年会等重要活动时,确保每位参与者都能及时接收到通知至关重要。本文将指导您如何利用云分组平台发布年会通知,并通过查询功能为参与者提供座位号等信息。一、电脑端上传查询信息 1. 登录云分组官网 访问官网并通过微信扫码登录。2. 进入查询菜单 在…

通过因子分析识别消费者偏好的潜在因素的案例

因子分析是一种统计方法,用于研究变量之间的潜在关系。它是一种降维技术,通过识别较少数量的因子(或称为维度、成分)来解释多个观测变量之间的相关性。这些因子是不可观测的潜在变量,它们被认为是原始变量的潜在原因。…

厦门凯酷全科技有限公司抖音小店的新蓝海开启电商新篇章

在数字经济的浪潮中,电子商务以其独特的魅力和无限潜力,正以前所未有的速度改变着我们的消费方式和商业模式。作为这股浪潮中的佼佼者,厦门凯酷全科技有限公司凭借其敏锐的市场洞察力和前瞻性的战略布局,成功在抖音小店这一新兴平…

乐凡北斗卫星通信终端,多场景应用

北斗卫星通信终端在民生保障、抗险减灾、野外搜救、海洋渔业、交通运输、边境巡防等多个领域都有广阔的应用空间。在不同场景下,乐凡北斗卫星通信终端发挥着各自独特而关键的作用,其强大的定位功能和北斗三代短报文功能保障了信息的高效传递和任务的顺利…

Context-dependence:Why your environment matters(情境依赖:为什么环境很重要)

Consider an everyday situation:You get up from your desk to have a cup of tea.Once you arrive in the kitchen, you forget what you wanted.However, when you get back to your desk, you suddenly remember. 考虑一个日常会遇到的情况:你从桌旁起身想要倒杯茶&#xf…

内存管理篇-09伙伴系统初始化一:memblock管理

1.伙伴系统的初始化概述 硬件初始化:计算机加电后进行硬件检测。加载引导程序,将Linux内核加载到内存中。 内核初始化:内核被加载后开始初始化各个子系统。进行CPU架构相关的初始化。初始化内存控制器和其他设备驱动。 内存管理初始化&…

Chat App 项目之解析(四)

Chat App 项目介绍与解析(一)-CSDN博客文章浏览阅读76次。Chat App 是一个实时聊天应用程序,旨在为用户提供一个简单、直观的聊天平台。该应用程序不仅支持普通用户的注册和登录,还提供了管理员登录功能,以便管理员可以…

Nature Communications | 全球草地土壤碳储量随植物多样性的增加而增加

在许多生态系统中物多样性与土壤有机碳(SOC)储量呈正相关。最可能的原因是植物多样性积极影响植物生产力,从而影响土壤的有机碳输入量。大多数关于植物多样性对植物生产力和有机碳储量影响的证据都是基于控制植物物种丰富度的小规模实验。然而,那些短期的…

Flink入门(五)--Flink算子

Map DataStream → DataStream 一个接受一个元素并产生一个元素的函数。 示例 dataStream.map { x > x * 2 } FlatMap DataStream → DataStream 一个接受一个元素并产生零个、一个或多个元素的函数。 例如 dataStream.flatMap { str > str.split(" ") }…