24 监控与安全之AWS WAF与安全组

在上篇文章中,我们探讨了AWS Shield与DDoS保护的相关内容,了解了如何保护我们的应用程序免受分布式拒绝服务的攻击。本篇将深入研究AWS的另一重要安全组件——AWS WAF(Web Application Firewall)以及安全组的配置与使用,帮助用户更好地保护其应用程序与数据。

AWS WAF概述

AWS WAF 是一种网络安全服务,能够帮助保护Web应用程序免受常见的网络攻击。利用AWS WAF,用户可以创建规则以过滤HTTP和HTTPS请求。AWS WAF通过定义特定的规则集来识别和拦截恶意流量。

主要功能

  1. 基于规则的流量过滤:用户可以创建自定义规则,基于IP地址、HTTP头、URI字符串、请求参数等信息进行请求拦截。
  2. 集成AWS服务:AWS WAF与Amazon CloudFront、Application Load Balancer、API Gateway等服务无缝集成。
  3. 实时监控:提供实时的请求日志记录和分析工具,帮助用户监控流量模式并及时响应异常流量。

案例:创建简单的WAF规则

假设您有一个在线电商网站,您希望阻止来自特定IP地址的请求。以下是如何在AWS WAF中创建一个简单的IP阻止规则的步骤:

  1. 登录AWS控制台,选择WAF & Shield服务。
  2. 创建Web ACL(访问控制列表)。
  3. 添加规则,选择“IP地址匹配条件”,并输入要屏蔽的IP地址。
  4. 将Web ACL与CloudFront分配关联。

这可以通过AWS CLI实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
aws wafv2 create-web-acl \
--name "my-web-acl" \
--scope "CLOUDFRONT" \
--default-action Allow={} \
--description "My Web ACL" \
--region "us-east-1" \
--rules '[
{
"Name": "BlockMaliciousIP",
"Priority": 1,
"Statement": {
"IPSetReferenceStatement": {
"ARN": "arn:aws:wafv2:us-east-1:123456789012:regional/ipset/my-ip-set"
}
},
"Action": {
"Block": {}
},
"VisibilityConfig": {
"SampledRequestsEnabled": true,
"CloudWatchMetricsEnabled": true,
"MetricName": "BlockMaliciousIP"
}
}
]'

AWS安全组概述

安全组是AWS的虚拟防火墙,可以控制进入和离开EC2实例的网络流量。安全组基于状态的,因此您只需定义入站和出站规则,AWS会自动跟踪已允许的流量。

主要功能

  1. 入站与出站规则:用户可以创建规则,指定允许或拒绝特定协议、端口和IP地址。
  2. 动态变化:当安全组规则修改时,所关联的所有实例会立即更新。
  3. 高度集成:安全组可以与EC2、RDS、Lambda等服务紧密集成,为各类应用提供网络安全保障。

案例:配置安全组

假设您想配置一个安全组以允许HTTP(端口80)和SSH(端口22)流量进来,并阻止所有其他流量。以下是实现的步骤:

  1. 在AWS控制台中,导航到EC2服务。
  2. 选择“Security Groups”,点击“Create Security Group”。
  3. 配置安全组名称,描述,并添加以下入站规则:
    • Type: HTTP, Protocol: TCP, Port: 80, Source: 0.0.0.0/0
    • Type: SSH, Protocol: TCP, Port: 22, Source: 您自己的IP地址
  4. 保存规则并关联到您的EC2实例。

这同样可以通过AWS CLI实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
aws ec2 create-security-group \
--group-name MySecurityGroup \
--description "My security group for allowing HTTP and SSH"

aws ec2 authorize-security-group-ingress \
--group-name MySecurityGroup \
--protocol tcp \
--port 80 \
--cidr 0.0.0.0/0

aws ec2 authorize-security-group-ingress \
--group-name MySecurityGroup \
--protocol tcp \
--port 22 \
--cidr <Your_IP_Address>/32

监控与日志

使用AWS WAF和安全组,用户可以有效地监控Web应用程序的流量和安全性。然而,监测流量和日志记录同样重要。利用Amazon CloudWatch和AWS CloudTrail,您可以设置报警,实时监控不寻常的活动和流量模式。

案例:设置CloudWatch报警

假设您想监控WAF中的拦截请求并在超过阈值时得到通知,可以设置CloudWatch报警。例如,如果拦截请求超过100次,可以通过电子邮件通知您:

1
2
3
4
5
6
7
8
9
10
aws cloudwatch put-metric-alarm \
--alarm-name "WAFRequestAlarm" \
--metric-name "BlockedRequests" \
--namespace "AWS/WAF" \
--statistic "Sum" \
--period 60 \
--threshold 100 \
--comparison-operator "GreaterThanThreshold" \
--evaluation-periods 1 \
--alarm-actions <SNS_Topic_ARN>

在设置报警与监控之后,确保您及时分析这些数据显示的信息,从而做出相应的调整。

小结

本篇我们深入讨论了AWS WAF和安全组的基本概念、功能以及具体实用案例。在后续的文章中,我们将进一步探讨AWS的计费与成本管理,包括AWS的定价模型与计费方式。通过了解和运用这些工具,您可以更好地保护您的Web应用程序与数据,提高安全性。在保护和监控的同时,也要注意费用的管理,以实现性能与成本的最佳平衡。

24 监控与安全之AWS WAF与安全组

https://zglg.work/aws-cloud-zero/24/

作者

IT教程网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论