将 AWS WAF 与您的 Amazon Lightsail 实例集成 计算博客
- 11
AWS WAF与Amazon Lightsail实例的整合
关键要点
AWS提供了Web应用防火墙AWS WAF来提升应用程序的安全性。通过将AWS WAF与Amazon CloudFront和应用程序负载均衡器ALB结合,您可以加强Amazon Lightsail实例的安全。本文将介绍两种方法来整合AWS WAF与Lightsail实例:通过应用程序负载均衡器和通过CloudFront。AWS在安全方面始终处于优先考虑的地位。本文讲述如何通过整合AWS Web应用防火墙AWS WAF来提升您的Amazon Lightsail实例的应用程序安全性。Amazon Lightsail提供易于使用的虚拟私有服务器VPS实例,且每月价格实惠。
Lightsail通过Lightsail防火墙内置了安全功能。Lightsail防火墙是一种网络级防火墙,让您可以基于IP地址、端口和协议定义入站流量规则。开发者可以在Lightsail防火墙之上利用AWS WAF来预防SQL注入、跨站脚本XSS和分布式拒绝服务DDoS等攻击。
截至本文发布时,AWS WAF只能部署在Amazon CloudFront、应用程序负载均衡器ALB、Amazon API Gateway和AWS AppSync上。尽管如此,Lightsail无法直接作为这些服务的目标,因为Lightsail实例运行在AWS管理的Amazon虚拟私有云Amazon VPC中。通过利用VPC对等连接,您可以在Lightsail实例前部署上述服务,进而将AWS WAF与Lightsail实例集成。
解决方案概览
本文将向您展示两种将AWS WAF与Lightsail实例集成的方法。第一种方法使用附加到Internet的ALB的AWS WAF,第二种方法则使用附加到CloudFront的AWS WAF。通过遵循这两种解决方案之一,您可以利用AWS WAF提供的规则集合来保护在Lightsail上运行的应用程序。
解决方案1:ALB与AWS WAF
第一种解决方案使用VPC对等连接和ALB,使您能利用AWS WAF来保护Lightsail实例。本节将指导您创建Lightsail实例、配置VPC对等连接、创建安全组、设置负载均衡器的目标组,并将AWS WAF与负载均衡器集成。
创建Lightsail实例
在本指南中,您可以使用AWS免费套餐中的基于Linux的WordPress蓝图。
访问 Lightsail控制台,并创建实例。
验证您的Lightsail实例是否在线,并获取其私有IP地址,这在配置目标组时需要用到。
附加ALB到您的Lightsail实例
您必须启用VPC对等连接,因为您将在一个单独的VPC中使用ALB。
要启用VPC对等连接,请访问您的帐户的右上角,选择 帐户 下拉菜单,选择 帐户,然后选择 高级,最后选择 启用VPC对等连接。请记下选择的AWS区域,因为稍后会用到。对于本示例,选择“useast2”。
在AWS管理控制台中,搜索 VPC服务,选择 VPC对等连接 并验证所创建的对等连接。

在左侧导航窗格中选择 安全组,并创建一个安全组,允许HTTP流量端口80。这将用于稍后允许公共HTTP流量通过ALB。
进入Amazon Elastic Compute Cloud (Amazon EC2) 服务,在左侧面板中的负载均衡下选择目标组。创建一个 目标组,选择 IP地址 作为目标类型。
进入注册目标部分,选择 其他私有IP地址。添加您之前创建的Lightsail实例的私有IP地址。选择 包括待定下,然后 创建目标组请注意,如果您的Lightsail实例重新启动,则必须更新目标组,因为私有IP地址可能会更改。
在左侧面板中,选择 负载均衡器,选择 创建负载均衡器,并选择 应用程序负载均衡器。确保选择“面向Internet”方案,否则您将无法通过Internet连接到您的实例。
选择您要让ALB位于的VPC。在本示例中,选择默认VPC,并确保选择所有可用区AZs,以确保负载均衡器的高可用性。
选择在第3步创建的安全组,以确保公共互联网流量可以通过负载均衡器。
在监听器和路由下选择您在第5步创建的目标组。接下来选择 创建负载均衡器。
通过访问EC2服务中的 负载均衡器 菜单再次获取您负载均衡器的DNS名称。通过将DNS名称复制到浏览器中,验证您是否能够通过负载均衡器访问Lightsail实例。将AWS WAF集成到您的ALB中
现在您已成功使ALB路由到Lightsail实例,您可以限制该实例仅接受来自负载均衡器的流量,并创建AWS WAF web 访问控制列表ACL。
返回 Lightsail 服务,选择之前创建的Lightsail实例,然后选择 网络。删除允许公共访问的所有防火墙规则,在 IPv4防火墙 下添加一条规则,以限制到之前创建的ALB所在VPC的IP CIDR范围的流量。现在您可以将AWS WAF集成到ALB中。在控制台中,导航到 AWS WAF控制台,或者直接访问负载均衡器的集成部分,选择 创建Web ACL。选择 创建Web ACL,然后选择 添加AWS资源以添加之前创建的ALB。添加您想要的任何规则,这些规则将控制允许或拒绝访问您资源的流量。在此示例中,您可以添加WordPress应用程序管理规则。将所有其他配置保留为默认值并创建AWS WAF。
您可以在负载均衡器的集成部分验证您的防火墙是否已附加到ALB。
解决方案2:CloudFront与AWS WAF
现在您已为Lightsail实例设置了ALB和VPC对等连接,您可以选择向解决方案中添加CloudFront。这可以通过在ALB的监听器中设置自定义HTTP头规则,设置CloudFront分发以使用ALB作为源,并为新的CloudFront分发设置AWS WAF Web ACL来实现。此配置限制流量只能通过CloudFront访问您的应用程序,同时仍然受到WAF的保护。
surfshark中文下载访问CloudFront服务,点击 创建分发。
在 源域名 下,选择之前创建的负载均衡器。
向下滚动到 添加自定义头字段,点击 添加头部。
创建您的头部名称和值。请注意头部名称和值,因为稍后在演练中会用到。
向下滚动到缓存密钥和源请求部分。在缓存策略下,选择“缓存禁用”。滚动到 Web 应用程序防火墙 (WAF) 部分,选择 启用安全保护。将所有其他配置保留为默认值,并点击 创建分发。
等待CloudFront分发部署完成,并验证您是否能够通过 域名 下的DNS访问Lightsail应用程序。
访问 EC2服务,在左侧面板下的 负载均衡 中选择 负载均衡器。
选择您之前创建的负载均衡器,在监听者选项卡下选择您之前创建的监听者。在右上角选择 操作,然后选择 管理规则。
选择顶部的编辑图标,然后选择默认规则旁边的编辑图标。选择删除图标以删除默认操作。选择 添加操作,然后选择 返回固定响应。对于 响应代码,输入403,这将限制对CloudFront的访问。
对于 响应体,输入“访问