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

创建 Web ACL 和规则

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

注意:如果您已经有与应用程序负载均衡器关联的现有 Web ACL,请继续创建规则 (Create a rule)

完成以下步骤以创建 AWS WAF Web ACL:

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中的 AWS WAF 下,选择 Web ACLs,然后选择创建 Web ACL (Create web ACL)
  3. 对于区域 (Region),选择您的应用程序负载均衡器所在的 AWS 区域。
  4. 对于名称 (Name),输入一个名称。
  5. 对于关联的 AWS 资源 (Associated AWS resources),选择您的应用程序负载均衡器,然后选择下一步 (Next)
  6. 对于添加规则和规则组 (Add rules and rule groups),接受默认值。
  7. 选择下一步 (Next),然后再次选择下一步 (Next)
  8. 对于请求采样选项 (Request sampling options),选择启用采样请求 (Enable sampled requests),然后选择下一步 (Next)
  9. 查看 Web ACL 配置。如果它符合您的规范,则选择创建 Web ACL (Create web ACL)

完成以下步骤以创建规则:

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中的 AWS WAF 下,选择 Web ACL
  3. 对于区域 (Region),选择您的应用程序负载均衡器所在的 AWS 区域。
  4. 选择关联的 Web ACL。
  5. 选择规则 (Rules),然后选择添加规则添加我自己的规则和规则组 (Add Rules, Add my own rules and rule groups)
  6. 对于名称 (Name),输入规则名称,然后选择常规规则 (Regular Rule)
  7. 对于如果请求 (If a request),选择与语句不匹配 (NOT) (doesn't match the statement (NOT))
  8. 语句 1 中,执行以下操作:
    对于检查 (Inspect),选择单个标头 (Single Header)
    标头字段名称 (Header field name) 中,输入自定义标头名称,例如:custom-header
    对于匹配类型 (Match type),选择完全匹配字符串 (Exactly matches string)
    对于要匹配的字符串 (String to match),请输入机密标头值,例如: 'secret-value'。
    **注意:**务必将值括在单引号中。
  9. 对于操作 (Action),选择阻止 (Block)
  10. 选择保存规则 (Save rule)
  11. 对于设置规则优先级 (Set rule priority),将规则设置为最高优先级。
  12. 选择保存 (Save)

相关信息

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

AWS 官方
AWS 官方已更新 9 个月前