关键在于分层协同:边缘防火墙专注南北向流量入口防护,服务网格(如Istio)聚焦东西向服务通信的零信任控制,二者职责清晰、能力互补、不可替代。

微服务架构下部署边缘防火墙和内部网格访问控制,关键不是“先边后网”或“先网后边”,而是分层协同:边缘防火墙管好南北向流量入口,服务网格(如Istio)专注东西向服务通信的细粒度控制。两者职责清晰、能力互补,不能互相替代。
边缘防火墙:守住第一道南北向防线
边缘防火墙应部署在微服务集群的最外层,即API网关之前或与之并列,承担公网流量的初步过滤和威胁拦截。它不处理服务间调用,只关注从互联网进入系统的请求。
- 启用基于威胁情报的IP/域名黑名单,实时阻断已知恶意源(如Azure防火墙内置Microsoft威胁情报)
- 配置TLS卸载+深度包检测(DPI),对HTTPS流量解密后做WAF规则匹配(SQL注入、XSS等)
- 设置精细化的访问控制策略:按地域、用户代理、URL路径、HTTP方法限制访问,例如只允许/api/v1/orders路径接受POST,其他路径仅限GET
- 与API网关联动——边缘防火墙做粗筛(如封禁IP段),API网关做精控(如JWT校验、速率限制)
服务网格:实现零信任的东西向通信控制
服务网格是微服务内部安全的核心载体,它把安全能力下沉到网络基础设施层,让每个服务实例自带身份、加密和授权能力,无需修改业务代码。
- 强制启用mTLS:所有服务间调用默认加密,通过证书双向验证身份。Istio中用PeerAuthentication资源全局开启STRICT模式
- 基于服务身份而非IP做授权:用AuthorizationPolicy定义谁(source.principals)能访问哪个服务(selector)、执行哪些操作(GET/POST)
- 集成身份上下文:将用户JWT中的sub、roles等声明透传至下游服务,支持RBAC细粒度鉴权(如“订单服务只允许role:admin调用DELETE”)
- 自动流量基线学习:网格可采集服务调用频次、延迟、错误率,识别异常调用链(如某服务突然高频调用数据库服务),触发告警或自动熔断
协同设计要点:避免能力重叠与盲区
边缘和网格之间需明确边界、共享元数据、统一可观测性,否则容易出现策略冲突或防护断层。
- 边缘防火墙不解析服务网格内部的gRPC或HTTP/2头部,也不校验服务账户证书;网格不处理原始TCP连接或未进网关的直连请求
- 共用统一身份中心:用户登录后由认证服务签发JWT,边缘层验证签名并提取claims,网格层通过Envoy Filter将claims注入请求头传递给业务服务
- 日志与追踪打通:边缘防火墙记录客户端IP、请求时间、拦截原因;服务网格记录服务名、实例ID、mTLS握手结果、授权决策。两者traceID对齐,便于全链路审计
- 策略变更需联动测试:例如新增一个服务暴露到公网,既要更新边缘防火墙的ACL,也要在网格中为其配置对应的AuthorizationPolicy和Sidecar注入策略
实际部署建议
中小规模团队可采用“云托管+声明式配置”快速落地:用Azure Firewall或阿里云云防火墙管理边缘策略,用Istio on Kubernetes管理网格;大型系统建议引入防火墙管理器(如Azure Firewall Manager)统一编排多区域边缘策略,并通过GitOps方式同步网格安全配置。











