文档首页/ API网关 APIG/ 最佳实践/ API安全/ 使用WAF对APIG进行安全防护
更新时间:2024-11-27 GMT+08:00

使用WAF对APIG进行安全防护

企业为了保护APIG及后端服务器免受恶意攻击,可在APIG和外部网络之间部署WAF。

图1 后端服务器访问原理

方案一(推荐):WAF侧注册对外访问域名并配置证书,通过APIG实例的分组调试域名访问后端服务

推荐原因:API分组通过域名方式对外提供服务,具备更强的可扩展性

  1. 在APIG实例中,新建API分组,并记录域名,将API添加在新建的分组中。

    1. 登录APIG控制台,在左侧导航栏中选择“API管理 > API分组”。
    2. 单击“创建分组 > 直接创建”,填写分组名称完成创建。
    3. 单击已创建分组名称,进入分组详情。
    4. 在“分组信息”页签中,查看调试域名并记录。该调试域名唯一且不可修改,每天最多可以访问1000次。
    5. 在“API运行”页签中,单击“创建API > 创建API”,即可添加API。

  1. 在WAF侧添加防护域名。进入WAF控制台,单击“网站设置 > 添加防护网站”,即可配置防护域名。配置“源站地址”时,需要填写API分组的域名,并添加证书添加域名后,还需执行放行回源IP、本地验证、修改域名DNS解析设置。详细操作步骤请参考网站接入WAF

    客户从公网客户端访问WAF时,使用的是WAF对外访问域名,WAF转发给APIG时同样使用该对外访问域名,APIG收到访问该域名的请求无次数限制。

  2. 在APIG实例中,为API分组绑定已创建的防护域名。

    1. 进入APIG控制台,在左侧导航栏中选择“API管理 > API分组”。
    2. 单击已创建的分组名称。
    3. 在“分组信息”页签中的“域名管理”区域,单击“绑定独立域名”。
    4. 在弹窗中添加已创建的防护域名即可。

  3. 在APIG实例中,将“real_ip_from_xff”开关打开,并设置参数运行值为“1”。

    1. 在APIG控制台的左侧导航栏中,选择“实例管理”。
    2. 在“配置参数”页签中,设置“real_ip_from_xff”参数。

      客户从公网客户端访问WAF时,WAF会在HTTP头部“X-Forwarded-For”中记录用户的真实IP,APIG需要据此解析出用户的真实IP。

方案二(备选):使用DEFAULT分组实现转发功能,WAF侧通过IP访问后端服务

  1. 在APIG实例中,查看入口地址。通过IP调用访问APIG实例,无访问次数限制。

    1. 登录APIG控制台,在左侧导航栏中选择“实例管理”。
    2. 单击实例名称或“查看控制台”。
    3. 在“基础信息”页签中,查看入口地址。
      • 虚拟私有云访问地址为VPC内网地址。
      • 弹性IP地址为公网地址。

  1. 在DEFAULT分组中添加API。

    1. 在APIG控制台的左侧导航栏中,选择“API管理 > API分组”。
    2. 单击“DEFAULT”分组名称。
    3. 单击“创建API > 创建API”,即可添加API。

  1. 在WAF侧添加防护域名。进入WAF控制台,单击“网站设置 > 添加防护网站”,即可配置防护域名。配置“源站地址”为API网关实例的入口地址,并添加证书。添加域名后,还需执行放行回源IP、本地验证、修改域名DNS解析设置。详细操作步骤请参考网站接入WAF

    • 如果WAF与APIG在同一VPC下,“源站地址”可以填写私网地址。
    • 如果APIG绑定弹性IP,“源站地址”可以填写公网地址。

  2. 在APIG实例中,为DEFAULT分组绑定已创建的防护域名。

    1. 在APIG控制台的左侧导航栏中,选择“API管理 > API分组”。
    2. 单击“DEFAULT”分组名称。
    3. 在“分组信息”页签中的“域名管理”区域,单击“绑定独立域名”。
    4. 在弹窗中添加已创建的防护域名。

  3. 在APIG实例中,将“real_ip_from_xff”开关打开,并设置参数运行值为“1”。

    1. 在APIG控制台的左侧导航栏中,选择“实例管理”。
    2. 在“配置参数”页签中,设置“real_ip_from_xff”参数。

      客户从公网客户端访问WAF时,WAF会在HTTP头部“X-Forwarded-For”中记录用户的真实IP,APIG需要据此解析出用户的真实IP。