我是 AWS WAF 的新手,并且无法为托管在某个专用服务器上的应用程序设置它。我没有找到任何信息如何在不迁移到 aws 服务器的情况下设置它,但我发现 WAF 与 CloudFront 集成。但无论如何,我只找到很少的信息来解释如何将此 CDN 与我的 Web 应用程序集成。因此,主要问题是:是否可以将 AWS WAF 与托管在某个专用服务器上的应用程序一起使用?如果可能的话 - 您能否提供一些设置指南和/或文档?
2 回答
是的,您可以将 WAF 与 AWS 之外的服务器一起使用。
WAF 与 CloudFront 配合使用,CloudFront 不需要源服务器在 AWS 生态系统中。
创建分配时,您指定 CloudFront 将文件请求发送到何处。CloudFront 支持使用多个 AWS 资源作为源。例如,您可以指定 Amazon S3 存储桶或 MediaStore 容器、MediaPackage 通道或自定义源,例如 Amazon EC2 实例或您自己的 HTTP Web 服务器。 (重点补充)
将 CloudFront 配置为与您的外部服务器一起使用与将其配置为与 EC2 中的服务器一起使用没有什么不同。您的 DNS 条目(例如www.example.com
)更改为指向 CloudFront,CloudFront 使用您创建的新名称连接到您的服务器(例如origin.example.com
)。CloudFront 将请求代理到您的服务器,除非处理给定请求的边缘站点碰巧有权访问它在处理同一页面的先前请求时缓存的相同资源的副本——这就是 CloudFront 获取内容的方式,通过在处理通过的请求时对其进行缓存。(您不会将任何内容预加载到 CloudFront 中。)如果 CloudFront 有一个缓存副本,您的服务器将看不到任何内容,并且 CloudFront 会将对象从其缓存中返回给浏览器。但 CloudFront 并不是严格意义上的 CDN,即使他们以这种方式进行营销。它是一个由反向代理和高可靠性/低延迟传输组成的全球网络。
您需要采取措施确保 Web 服务器拒绝未通过 CloudFront 发出的请求。请参阅使用自定义标头限制对自定义源上的内容的访问以及可在 Web 服务器防火墙上使用的 CloudFront IP 地址列表。
一旦您的站点通过 CloudFront 运行,您所做的就是在分配上激活 WAF。CloudFront 与 WAF 紧密集成,因此只要设置 WAF 规则,就可以进行非常简单的更改。
您不能将 AWS WAF 与在 AWS 之外运行的服务一起使用。
您可以在 Amazon CloudFront 上部署 AWS WAF,作为 CDN 解决方案的一部分,在您的 Web 服务器或 EC2 上运行的源服务器前端的应用程序负载均衡器 (ALB),或在您的 API 的 Amazon API Gateway 上部署。