如何使用ASM网关对接阿里云WAF

本文涉及的产品
Web应用防火墙 3.0,每月20元额度 3个月
.cn 域名,1个 12个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: Web应用防火墙(Web Application Firewall,简称WAF)为您的网站或App业务提供一站式安全防护。WAF可以有效识别Web业务流量的恶意特征,在对流量清洗和过滤后,将正常、安全的流量返回给服务器,避免网站服务器被恶意入侵导致性能异常等问题,从而保障网站的业务安全和数据安全。ASM网关支持对接WAF,并且可以通过自定义访问日志格式来查看WAF对回源请求添加的Header,更方便线上运维。本文将介绍ASM网关如何对接WAF,以及如何使用ASM的自定义访问日志能力进行调试。

前提条件

已创建ASM实例。具体操作,请参见创建ASM实例

已创建ACK集群。具体操作,请参见创建Kubernetes托管版集群

添加集群到ASM实例。具体操作,请参见添加集群到ASM实例

已部署入口网关服务。具体操作,请参见添加入口网关服务

已经部署了httpbin应用,暴露在网关的80端口。

步骤1:将ASM网关接入WAF

进入WAF控制台,创建WAF3.0实例(如果已经有WAF实例,可以忽略)。

点击“接入管理”菜单,选择“CNAME接入”,然后点击“接入”按钮。

填写有效域名(中国内地的WAF会校验域名是否备案)。然后按照上图填写配置即可。点击下一步。

image.png

在“服务器地址”处选择“IP”,然后填写ASM网关的公网地址。然后勾选“启用流量标记”,如图所示添加三个Header(该配置会在通过WAF发往ASM网关的请求中添加对应的三个Header)。

image.png

点击上图的提交,进入如下界面。

image.png

记录WAF提供的CNAME地址。点击“完成”,至此已经将ASM网关和WAF对接完成。

步骤2(可选):自定义ASM访问日志格式

由于经过WAF校验的请求可能会携带一些特殊的Header。比如步骤1中配置在请求中携带了一个自定义Header和两个标识请求源IP、源端口的Header。在将线上应用接入WAF时,如果不能在请求链路上看到这个Header,将会给链路联调造成极大困难。此时,可以使用ASM可观测能力的自定义访问日志功能。

ASM的自定义访问日志功能支持打印请求中的自定义Header,配置完成之后就可以在网关和Sidecar的日志中,看到请求的这个Header值,下面将演示如何配置。

image.png

步骤3:测试

使用WAF提供的CNAME地址,用如下方式访问httpbin应用的/status/418路径。

curl-HHost:${WAF处配置的域名}"http://${WAF提供的CNAME地址}/status/418"-v*   Trying x.x.x.x:80...
* Connected to geszcfxxxxxxxxxxxxxxxxxxxxppbeiz.aliyunwaf1.com (x.x.x.x) port 80 (#0)> GET /status/418 HTTP/1.1
> Host:xxxx
> User-Agent: curl/7.84.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 418 Unknown
< Date: Wed, 22 Feb 202305:07:23 GMT
< Content-Length: 135< Connection: keep-alive
< Set-Cookie: acw_tc=0bc1599a16770424432844282e82xxxxxxxxxxxxxxxxxxx1ad989e7e5245f;path=/;HttpOnly;Max-Age=1800< server: istio-envoy
< x-more-info: http://tools.ietf.org/html/rfc2324
< access-control-allow-origin: *
< access-control-allow-credentials: true< x-envoy-upstream-service-time: 1< 
-=[ teapot ]=-       _...._
     .'  _ _ `.    | ."` ^ `". _,    \_;`"---"`|//      |       ;/      \_     _/        `"""`* Connection #0 to host geszcxxxxxxxxxxxxxxxxxxxxcppbeiz.aliyunwaf1.com left intact

可以看到,成功访问了httpbin的/status/418路径。

此处并没有使用原始域名访问。如需使用原始域名访问,需要您自行修改域名解析规则,将原始域名解析到WAF提供的CNAME地址上去。

接下来查看ASM控制台上的日志。点击“可观测管理中心”菜单,进入“日志中心”页面,在“网关日志”标签页下,搜索418,可以看到如下日志:

image.png

可以看到,网关的日志中已经打印出了WAF添加的Header值。

对接完成之后,您可以在WAF控制台上配置其他更高级的防护能力,保护您的网站不受攻击。如果您还有其他自定义Header需要全链路观测的话,可以仿照步骤2中的方式配置。

目录
相关文章
|
13天前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 11 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
4月前
|
运维 Kubernetes 安全
利用服务网格实现全链路mTLS(一):在入口网关上提供mTLS服务
阿里云服务网格(Service Mesh,简称ASM)提供了一个全托管式的服务网格平台,兼容Istio开源服务网格,用于简化服务治理,包括流量管理和拆分、安全认证及网格可观测性,有效减轻开发运维负担。ASM支持通过mTLS提供服务,要求客户端提供证书以增强安全性。本文介绍如何在ASM入口网关上配置mTLS服务并通过授权策略实现特定用户的访问限制。首先需部署ASM实例和ACK集群,并开启sidecar自动注入。接着,在集群中部署入口网关和httpbin应用,并生成mTLS通信所需的根证书、服务器证书及客户端证书。最后,配置网关上的mTLS监听并设置授权策略,以限制特定客户端对特定路径的访问。
148 2
|
15天前
|
Kubernetes 测试技术 微服务
结合阿里云ASM泳道与Kruise Rollout进行全链路灰度发布
本文将介绍如何结合阿里云ASM泳道与Kruise Rollout进行低成本,自动化的全链路灰度发布。
|
1月前
|
Kubernetes 大数据 调度
使用Kmesh作为阿里云服务网格ASM Sidecarless模式数据面
阿里云服务网格ASM支持Sidecar和Sidecarless两种模式,本文介绍了如何在阿里云ACK集群中部署Kmesh作为Sidecarless数据面并连接ASM控制面。
|
1月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 10 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
4月前
|
人工智能 缓存 Cloud Native
用 Higress AI 网关降低 AI 调用成本 - 阿里云天池云原生编程挑战赛参赛攻略
《Higress AI 网关挑战赛》正在火热进行中,Higress 社区邀请了目前位于排行榜 top5 的选手杨贝宁同学分享他的心得。本文是他整理的参赛攻略。
544 74
|
2月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 09 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
3月前
|
Cloud Native 关系型数据库 Serverless
基于阿里云函数计算(FC)x 云原生 API 网关构建生产级别 LLM Chat 应用方案最佳实践
本文带大家了解一下如何使用阿里云Serverless计算产品函数计算构建生产级别的LLM Chat应用。该最佳实践会指导大家基于开源WebChat组件LobeChat和阿里云函数计算(FC)构建企业生产级别LLM Chat应用。实现同一个WebChat中既可以支持自定义的Agent,也支持基于Ollama部署的开源模型场景。
645 28
|
1月前
|
Kubernetes 调度 容器
使用Kmesh作为阿里云服务网格ASM Sidecarless模式数据面
阿里云服务网格ASM支持Sidecar和Sidecarless两种模式,其中Sidecarless模式如Istio Ambient、ACMG和Kmesh等,可减少延迟和资源消耗。Kmesh基于eBPF技术,通过内核空间拦截流量,结合Waypoint Proxy处理L7流量,实现高效的服务治理。本文介绍了如何在阿里云ACK集群中部署Kmesh并连接ASM控制面,包括安装步骤、检查服务状态和流量调度示例。
|
4月前
|
人工智能 Cloud Native 安全
统一多层网关好处多,阿里云云原生 API 网关打造全能型网关
本文分享了作为一款全能型网关【云原生 API 网关】是如何帮助企业落地统一网关架构的。
8049 11
下一篇
DataWorks