跳至内容

如何使用 AWS WAF 限制,使流量不直接流向应用程序负载均衡器,而是通过 API Gateway?

2 分钟阅读
0

我想使用 AWS WAF 来限制对应用程序负载均衡器的直接访问。我还想使用 AWS WAF 来仅允许通过 Amazon API Gateway 直接访问。

解决方法

要使用 AWS WAF 限制,使流量不直接流向应用程序负载均衡器,而是通过 API Gateway,请按照以下步骤操作。

添加自定义 HTTP 标头

配置 API Gateway,在其发送给应用程序负载均衡器的请求中,添加带有机密值的自定义 HTTP 标头。

完成以下步骤:

  1. 打开 API Gateway 控制台
  2. 在导航窗格中,选择 APIs
  3. 选择您的 REST API。
  4. Resources(资源)中,选择您的 HTTP 方法。例如,GET
  5. 选择 Integration Request(集成请求)选项卡,然后选择 Edit(编辑)。
  6. 展开 URL request headers parameters(URL 请求标头参数)部分,然后选择 Add request headers parameter(添加请求标头参数)。
    对于 Name(名称),输入标头的名称。例如,custom-header
    对于 Mapped from(映射自),输入机密标头值。
    **注意:**确保将机密标头值用单引号括起来。例如,'secret-value'。
  7. 选择 Save(保存)。

创建保护包和规则

创建与应用程序负载均衡器关联的空 AWS WAF 保护包。然后,创建一条规则来阻止没有机密值自定义 HTTP 标头的请求。

注意:如果您已经有与应用程序负载均衡器关联的现有保护包,请继续创建规则

创建保护包

完成以下步骤:

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中,选择 AWS WAF
  3. 选择 Resources & protection packs(资源和保护包)。
  4. Protection packs(保护包)下,选择 Create protection pack(创建保护包)。
  5. Tell us about your app(向我们介绍您的应用程序)下,选择一个或多个 App categories(应用程序类别)。
  6. 选择您的 App Focus(应用程序焦点)。
  7. Select resources to protect(选择要保护的资源)下,选择 Add resources(添加资源)。
  8. 选择 Add regional resources(添加区域资源)。从列表中选择您的应用程序负载均衡器。
  9. Choose protection pack(选择保护包)下,选择 **Build your own pack from all of the protections AWS WAF offers(从 AWS WAF 提供的所有保护中自建保护包)。**忽略右侧窗格。
  10. Name and describe(名称和描述)下,输入保护包的名称。
  11. 选择 Create protection pack(创建保护包)。

创建规则

完成以下步骤:

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中,选择 AWS WAF
  3. 选择 Resources & protection packs(资源和保护包)。
  4. Protection packs(保护包)下,选择关联的保护包,然后选择 **Rules(规则)旁边的 View and edit(查看和编辑)。**这将打开右侧窗格。
  5. 在右侧窗格中,选择 Add rule(添加规则)。
    选择 Custom rule(自定义规则),然后选择 Next(下一步)。
    再次选择 Custom rule(自定义规则),然后选择 Next(下一步)。
  6. 要设置规则,请配置以下值:
    对于 Action(操作),请选择 Block(阻止)。
    对于 Rule Name(规则名称),输入规则名称
    对于 If a request(如果请求),选择 doesn't match the statement (NOT)(与语句不匹配 (NOT))。
    对于检查 (Inspect),选择单个标头 (Single Header)
    对于 Header field name(标头字段名称),输入自定义标头名称。例如,custom-header
    对于匹配类型 (Match type),选择完全匹配字符串 (Exactly matches string)
    对于 String to match(要匹配的字符串),请输入机密标头值。
    **注意:**确保将机密标头值用单引号括起来。例如,'secret-value'。
  7. 选择 Create rule(创建规则)。
  8. 如果保护包中有多个规则,请在右侧窗格中选择 Edit rule order(编辑规则顺序)。
    通过将最近创建的规则置于最上面,将其移至最高优先级。
  9. 选择 Save rule order(保存规则顺序)。

相关信息

如何将 API Gateway REST API 与应用程序负载均衡器进行集成?

AWS 官方已更新 5 个月前