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

简介:

欢迎来到小李哥全新亚马逊云科技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, REJECTLogDestinationType='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.rhkb.cn/news/405944.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Zotero 常用插件介绍

1. Zotero 插件安装方法 下载以 .xpi 结尾的插件;打开 Zotero → 工具 → 插件 → 右上小齿轮图标 → Install Add-on From File ... → 选择下载好的 .xpi 插件安装 → 重启 Zotero 2. 常用插件介绍 2.1. Scholaread - 靠岸学术 Zotero 英文文献相关插件&#xf…

前端调用后端,出现跨域报错怎么办

我前端是vue,后端是其他同事写的python,因为部署在不同的机器上,我前端如果直接调用他的python,axios请求就会出现跨域报错,如下 blocked by CORS policy 云云 怎么办呢,网上探索了一下午,才找…

[数据集][目标检测]机械常用工具检测数据集VOC+YOLO格式4713张8类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):4713 标注数量(xml文件个数):4713 标注数量(txt文件个数):4713 标注…

HoloLens 和 Unity 空间坐标系统 Coordinate systems

坐标系统 Spatial coordinate systems 所有的 3D 图形应用程序都使用笛卡尔坐标系统来推理虚拟物体的位置和朝向。 这些坐标系建立三个垂直轴:X、Y 和 Z。 添加到场景的每个对象在其坐标系中都有一个 XYZ 位置。 Windows 调用在物理世界中具有实际意义的坐标系统…

线程池介绍

1.线程池简介 import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; public class CallableDemo {public sta…

视频美颜SDK与直播美颜工具的架构设计与性能优化

本篇文章,小编将深入讲解视频美颜SDK与直播美颜工具的架构设计,并分享一些性能优化的实践经验。 一、视频美颜SDK的架构设计 视频美颜SDK的核心在于其模块化的设计思路。通常,视频美颜SDK由以下几个主要模块组成: 1.图像预处理…

自主身份:Web3如何重新定义个人数据所有权

随着数字时代的快速发展,个人数据成为了一种新型的资产,深刻影响着我们的生活。然而,在Web2时代,个人数据往往被科技巨头所掌控,用户在享受互联网服务时,无意中失去了对自己数据的控制权。Web3的到来&#…

伦敦银行情的软件有什么选择?

普通投资者做伦敦银交易,多以技术分析为主、基本分析为辅的方法作为自己的交易策略,既然提到技术分析,那么伦敦银行情的软件就至关重要,因为我们需要通过这些软件才能看到行情并进行分析,那看伦敦银行情的软件有什么好…

Vue 旋转动画效果

目录 前言效果演示具体代码实现 前言 这里记录一个旋转动画&#xff0c;在鼠标经过的时候停止&#xff0c;鼠标离开继续旋转。 实现思路&#xff1a; 利用keyframes关键字定义一个旋转动画 效果演示 具体代码实现 <template><div class"container"><…

FLUX.1 当前支持FLUX.1的Lora模型

首先&#xff0c;我们来梳理一下本次Xlabs-AI团队放出的七款Lora模型&#xff0c;分别是 写实、Furry&#xff08;但是目前该模型还不支持ComfyUI&#xff09;、MJV6、动漫、迪斯尼、风景和艺术风格。每种模型都经过精心训练&#xff0c;能够为 Flux 模型带来卓越的风格转换能…

设计模式笔记02(java版)

文章目录 创建者模式单例设计模式 ★单例模式的结构单例模式的实现饿汉式-方式1&#xff08;静态变量方式&#xff09;饿汉式-方式2&#xff08;静态代码块方式&#xff09;懒汉式-方式1&#xff08;线程不安全&#xff09;懒汉式-方式2&#xff08;线程安全&#xff09;懒汉式…

教程:postman的平替hoppscotch,又叫postwoman,hoppscotch的docker-compose安装过程

目录 1. 背景2. 前期准备2.1 准备docker-compose文件&#xff0c;两个版本&#xff0c;一个3合1&#xff0c;一个分开2.1.1 3合1版本&#xff08;推荐&#xff09;2.1.2 独立版本 2.2 准备安装nginx-proxy-manager&#xff08;可选&#xff09;2.2 准备.env文件2.2.1 默认ip的.…

[数据集][目标检测]木材缺陷检测数据集VOC+YOLO格式2383张10类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2383 标注数量(xml文件个数)&#xff1a;2383 标注数量(txt文件个数)&#xff1a;2383 标注…

c++习题25-判断字符串是否回文

目录 一&#xff0c;题目 二&#xff0c;思路 三&#xff0c;代码 一&#xff0c;题目 描述 输入一个字符串&#xff0c;输出该字符串是否回文。回文是指顺读和倒读都一样的字符串。 输入描述 输入为一行字符串&#xff08;字符串中没有空白字符&#xff0c;字符串长度不…

第十二届青少年蓝桥杯Python组省赛试题

一、选择题 1.设s’Hello Lan Qiao’,执行print(s[4:11])输出的结果为()。 *选择题严禁使用程序验证 A、lo Lan Qi B、lo Lan Q C、o Lan Qi D、o Lan Q 提示&#xff1a;切片 2.循环语句for i in range(8,-4,-2):执行了几次循环()。 *选择题严禁使用程序验证 A、4 B、5 C、6…

Manim动画:相机的移动(MovingCameraScene)

1.相机的移动(MovingCameraScene) MovingCameraScene 是 Manim 中的一个类&#xff0c;用于创建可以移动的相机场景。这个类继承自 Scene&#xff0c;并提供了关于相机移动的额外功能。 MovingCameraScene(camera_class<class manim.camera.moving_camera.MovingCamera>…

Cobalt Strike 4.8 用户指南-第二节-用户界面

2.1、概述 Cobalt Strike用户界面分为两部分。界面顶部显示会话或目标的可视化。界面底部显示与你交互的每个 Cobalt Strike 功能或会话的选项卡。可以单击这两个部分之间的区域并根据自己的喜好调整它们的大小。 # 2.2、工具栏 顶部的工具栏提供对常见 Cobalt Strike功能的快…

Day23 第十站 文件IO的多路复用

#include <myhead.h>void insert_client(int *client_arr,int *len,int client) {//client_arr[n]{3,4} len&client_count,client_count2;//添加 5 client_arr[2(*len)]5(client)client_arr[*len]client;(*len); } int find_client(int *client_arr,int len,int clie…

【Python开发实践】在线商城系统——需求及需求分析

项目背景及需求 这个练习项目的设置背景是一家图书销售公司&#xff0c;为了扩大销售渠道&#xff0c;想要开通网上商城&#xff0c;利用在线博客和电子商城来销售图书。 具体需求如下&#xff1a; 每个商品可以留言 实现在线购物车处理和订单处理 实现对产品、购物车和订单的…

python依赖包安装失败的解决办法(适用于conda安装)

版权声明&#xff1a;本文为博主原创文章&#xff0c;如需转载请贴上原博文链接&#xff1a;python依赖包安装失败的解决办法&#xff08;适用于conda安装&#xff09;-CSDN博客 前言&#xff1a;这个问题之前一直困扰着我&#xff0c;因为最近要升级Anaconda-Navigator&#x…