零底子5分钟上手亚马逊云科技 - 网络安全分析最佳实践
简介:接待来到小李哥全新亚马逊云科技AWS云盘算知识学习系列,适用于任何无云盘算大概亚马逊云科技技术背景的开辟者,通过这篇文章各人零底子5分钟就能完全学会亚马逊云科技一个经典的服务开辟架构方案。
我会天天介绍一个基于亚马逊云科技AWS云盘算平台的全球前沿云开辟/架构技术解决方案,帮助各人快速相识国际上最热门的云盘算平台亚马逊云科技AWS最佳实践,并应用到自己的一样平常工作里。本次介绍的是如何分析亚马逊云科技VPC网络情况中的流量日志,设置网络安全控制防火墙,组织特定IP访问,提升网络安全性的全部方案。本方案架构图如下:
https://i-blog.csdnimg.cn/direct/a687723f6ebd4c80bd800c5b4aebaa3b.png
方案所需底子知识
什么是 VPC?
Amazon VPC (Virtual Private Cloud) 是 AWS 提供的一项服务,允许用户在云中创建和管理自己的虚拟网络。通过 VPC,用户可以自界说网络设置,例如 IP 地址范围、子网、路由表和网关等,并对云资源举行隔离和保护。这为用户提供了类似于传统数据中心的网络控制能力,但在云中运行和管理。
https://i-blog.csdnimg.cn/direct/7e780b44c9bc419a90e7f473ef31f9a9.png
什么是 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”
https://i-blog.csdnimg.cn/direct/2e309f028a5242d1a03f5d8b2f4dae04.png
2. 接下来进入VPC服务主页。
https://i-blog.csdnimg.cn/direct/c107e73195db44d18035537f5e0c8067.png
3.点击左侧Your VPCs页面,选中我们的VPC网络情况,点击下方“Flow Logs”页面,点击“Create Flow Log”创建VPC流量日志。
https://i-blog.csdnimg.cn/direct/57984aae7c3f4a569925cbd91bd3db15.png
4. 我们将Flow log命名为“my-vpc-flowlogs”,并选择筛选条件为“Accept”记载所有成功的流量请求。
https://i-blog.csdnimg.cn/direct/6b97c4586f444dcf85ea415bd92c38a6.png
5. 选择Destination存储方式为存储到S3桶中,填入我们之前创建的S3桶ARN ID,最后点击Create Flow log开启该流量日志。
https://i-blog.csdnimg.cn/direct/a62ad8354eb845c088dedbaad09ab03c.png
6. 开启后我们进入到S3服务页面,点击进入我们存储VPC flow log的S3桶。
https://i-blog.csdnimg.cn/direct/e0bb74222bf248dea6f02cb8562577f5.png
7. 点击进入路径“vpc-flowlogs-1212” -> "AWSLogs" ->"账户ID" -> "vpcflowlogs" -> "AWS账户地点区域" -> "当天日期" ,即可看到我们开启的VPC Flow log日志。点击Download下载该日志文件。
https://i-blog.csdnimg.cn/direct/1d71efafa07a48ceadb0ffecb51764c8.png
8. 打开该日志文件,我们可以看到所有的流量请求记载,本次测试中“67.220.242.47”为我们模仿攻击IP。
https://i-blog.csdnimg.cn/direct/7d69d6c89f5d4bb781b36f1127d61d0c.png
9. 返回VPC服务主页,点击左侧栏中的“Network ACLs” VPC安全控制防火墙,选中我们VPC正在利用见效Network ACLs,再右侧的Edit Inbound Rules设置防火墙规则.
https://i-blog.csdnimg.cn/direct/b400b4d0fbec4432b9ebfac6c2d986ec.png
10. 点击“Add New Rule”,为ACLs添加入站规则。
https://i-blog.csdnimg.cn/direct/92e42dd36be846bf83ade5566d0bf661.png
11. 我们为该规则添加Number编号为10,流量类型为“All Traffic”所有流量,流量源头为“67.220.242.47/32”,防火墙对流量的操作为“Deny”制止,最后点击生存。
https://i-blog.csdnimg.cn/direct/b230f83de4c3450089a5cddf7e807a66.png
12. 回到VPC flow log设置界面,将记载的流量类型从吸收流量,改为被制止流量请求“Reject”,更新该Flow log设置。
https://i-blog.csdnimg.cn/direct/b3f4c18bed2d47298ce9f375e04093fc.png
13. 我们再返回到存储VPC Flow Log的S3存储桶中,下载刚刚更新的Flow log日志。
https://i-blog.csdnimg.cn/direct/4efa6f3b7e7f4594b8edf2a668967c48.png
14. 这里我们可以看到在我们更新ACLs网络控制防护墙后,来自异常访问的IP:“67.220.242.47/32”的所有请求均被制止。
https://i-blog.csdnimg.cn/direct/8395abf9b5934f8f84b0380edf098896.png
如何利用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=,
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']
print(f"VPC Flow Log created successfully. Flow Log ID: {flow_log_id}")
代码解释:
[*] 创建 EC2 客户端:
[*]利用 boto3.client('ec2') 创建 EC2 客户端以与 VPC 相关的资源举行交互。
[*] 参数界说:
[*]vpc_id: 指定要创建 Flow Log 的 VPC ID。
[*]s3_bucket_name: 指定用来存储 Flow Log 的 S3 桶名称。
[*]flow_log_name: Flow Log 的名称标签。
[*] create_flow_logs 方法:
[*]ResourceIds: 指定要创建 Flow Log 的资源 ID,这里是 VPC ID。
[*]ResourceType: 资源类型为 VPC。
[*]TrafficType: 指定要记载的流量类型。ALL 记载所有流量,ACCEPT 只记载被担当的流量,REJECT 只记载被拒绝的流量。
[*]LogDestinationType: 日志的目标类型为 S3。
[*]LogDestination: 指定日志的目标为 S3 桶的 ARN。
[*]LogFormat: 指定日志的格式,这里包罗常见的日志字段。
[*]TagSpecifications: 为 Flow Log 添加名称标签。
[*] 打印 Flow Log ID:
[*]成功创建 Flow Log 后,返回 Flow Log 的 ID 并打印出来。
以上就是在亚马逊云科技上分析网络流量,并保护网络安全的最佳实践全部步骤。接待各人关注0底子5分钟上手AWS系列,未来获取更多国际前沿的AWS云开辟/云架构方案!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]