本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
如何Amazon WAF使用亚马逊 CloudFront 功能
创建 Web ACL 时,可以指定Amazon WAF要检查的一个或多个 CloudFront 发行版。 Amazon WAF根据您在 Web ACL 中确定的标准,开始检查和管理针对这些发行版的 Web 请求。 CloudFront 提供了一些增强Amazon WAF功能的功能。本章介绍几种可以配置的方法,CloudFront 以便 CloudFront 更好地协同Amazon WAF工作。
主题
Amazon WAF与 CloudFront 自定义错误页面一起使用
默认情况下,当根据您指定的条件Amazon WAF阻止 Web 请求时,它会将 HTTP 状态代码403 (Forbidden)返回 CloudFront,并将该状态代码 CloudFront 返回给查看者。然后,查看器显示简要且采用稀疏格式的默认消息,如下所示:
Forbidden: You don't have permission to access /myfilename.html on this server.
您可以通过定义自定义响应来替换Amazon WAF Web ACL 规则中的此行为。有关使用Amazon WAF规则自定义响应行为的更多信息,请参阅对Block操作的自定义响应。
注意
您使用Amazon WAF规则自定义的响应优先于您在 CloudFront 自定义错误页面中定义的任何响应规范。
如果您希望通过 CloudFront显示自定义错误消息(可能使用与网站其他部分相同的格式),则可以配置为 CloudFront 向查看器返回包含自定义错误消息的对象(例如,HTML 文件)。
注意
CloudFront 无法区分您的源返回的 HTTP 状态码 403 和请求被阻止Amazon WAF时返回的 HTTP 状态码 403。这意味着,您无法根据 HTTP 状态代码 403 的不同原因返回不同的自定义错误页面。
有关 CloudFront 自定义错误页面的更多信息,请参阅亚马逊 CloudFront 开发者指南中的生成自定义错误响应。
对于在您自己的 HTTP 服务器上运行的应用程序,将 Amazon WAF 与 CloudFront 结合使用
Amazon WAF使用时 CloudFront,您可以保护在任何 HTTP Web 服务器上运行的应用程序,无论是在亚马逊弹性计算云 (Amazon EC2) 中运行的 Web 服务器还是您私下管理的 Web 服务器。您也可以配置 CloudFront 为要求在 CloudFront和您自己的 Web 服务器之间以及查看者与之间使用 HTTPS CloudFront。
需要在 CloudFront 和你自己的网络服务器之间使用 HTTPS
要要求在 CloudFront 和您自己的 Web 服务器之间使用 HTTPS,您可以使用 CloudFront 自定义源功能并为特定来源配置原始协议策略和原始域名设置。在您的 CloudFront 配置中,您可以指定服务器的 DNS 名称以及您在从源中获取对象时 CloudFront 希望使用的端口和协议。您还应确保自定义源服务器上的 SSL/TLS 证书与您已配置的源域名匹配。当您在外部使用自己的 HTTP Web 服务器时Amazon,您必须使用由受信任的第三方证书颁发机构 (CA)(例如,Comodo 或 Symantec)签署的证书。 DigiCert有关需要 HTTPS 才能在 CloudFront与您自己的 Web 服务器之间进行通信的更多信息,请参阅《亚马逊 CloudFront 开发者指南》中的 “需要 HTTPS 才能 CloudFront 与您的自定义源进行通信” 主题。
需要在查看者和之间使用 HTTPS CloudFront
要要求在查看器和之间使用 HTTPS,您可以更改 CloudFront分发中一个或多个缓存行为的查看器协议策略。 CloudFront有关在观众和之间使用 HTTPS 的更多信息 CloudFront,请参阅亚马逊 CloudFront 开发者指南中的 “需要 HTTPS 才能 CloudFront在查看者之间进行通信” 主题。您也可以自带 SSL 证书,这样观众就可以使用您自己的域名(例如 https://www.mysite.com)通过 HTTPS 连接到您的 CloudFront 发行版。有关更多信息,请参阅《Amazon CloudFront 开发人员指南》中的配置备用域名和 HTTPS 主题。
选择 CloudFront 响应的 HTTP 方法
在创建 Amazon CloudFront Web 发行版时,您可以选择要处理并转发 CloudFront 到源的 HTTP 方法。可从以下选项中进行选择:
GET,HEAD— 您 CloudFront 只能使用从源中获取对象或获取对象标头。GETHEAD,OPTIONS— 您 CloudFront 只能使用从源获取对象、获取对象标头或检索源服务器支持的选项列表。GET、HEAD、OPTIONS、PUT、POST、PATCH、DELETE— 您可以使用获 CloudFront 取、添加、更新和删除对象,以及获取对象标头。此外,您可以执行其他POST操作,例如从 Web 表格提交数据。
您还可以使用 Amazon WAF 字节匹配规则语句来允许或阻止基于 HTTP 方法的请求,如 字符串匹配规则语句 中所述。如果您想使用 CloudFront 支持的方法组合,例如GET和HEAD,则无需配置Amazon WAF为阻止使用其他方法的请求。如果您想允许组合使用 CloudFront 不支持的方法,例如GETHEADPOST、和,则可以配置 CloudFront 为响应所有方法,然后使用Amazon WAF来阻止使用其他方法的请求。
有关选择 CloudFront 响应方法的更多信息,请参阅《亚马逊 CloudFront 开发者指南》中 “您在创建或更新 Web 发行版时指定的值” 主题中的 “允许的 HTTP 方法”。