1. API网关概述
API 网关是微服务架构的流量入口与策略执行点,承担着请求路由、流量治理、安全认证与协议转换等职责。在云原生与零信任安全趋势下,API 网关已从简单的反向代理演变为权限矩阵与合规边界的核心控制面。
1.1 API 网关的定义
API 网关是一个位于客户端与后端服务集群之间的中间层服务,它封装了内部系统的架构细节,为所有 API 调用提供统一的接入点。网关对外暴露稳定的 API 接口,对内负责将请求转发至对应的微服务实例,并在这一过程中执行横切关注点(Cross-Cutting Concerns)策略。
| 维度 | 说明 |
|---|---|
| 逻辑位置 | 客户端与后端服务之间的反向代理层 |
| 核心职责 | 请求路由、协议转换、安全策略执行、流量控制 |
| 架构角色 | 微服务架构的“门面”与“安全边界” |
| 部署形态 | 独立进程、Sidecar 代理、Kubernetes Ingress/API Gateway CRD |
关键认知:API 网关不是简单的反向代理,而是策略执行点(PEP, Policy Enforcement Point)。在权限矩阵与合规边界设计中,网关是身份认证、授权决策、审计日志的第一道防线。
1.2 核心功能
API 网关的功能体系可归纳为三大核心能力:路由、限流与认证。这三者构成了权限矩阵与合规边界的基础设施。
1.2.1 请求路由
网关根据请求的路径、方法、Header 等条件,将流量分发至对应的后端服务。路由规则支持精确匹配、前缀匹配、正则匹配及权重路由。
# 典型路由规则示例(Kong Gateway 格式)
routes:
- name: user-service
paths:
- /api/v1/users
methods: [GET, POST, PUT, DELETE]
service: user-svc:8080
- name: order-service
paths:
- /api/v1/orders
methods: [GET, POST]
service: order-svc:8081
1.2.2 流量限流
限流保护后端服务免受过载与恶意攻击。常见算法包括令牌桶、漏桶、滑动窗口。网关层限流可基于客户端 IP、API Key、用户 ID 等维度实施。
| 限流算法 | 特点 | 适用场景 |
|---|---|---|
| 令牌桶 | 允许突发流量,平滑速率 | 通用 API 限流 |
| 漏桶 | 强制恒定速率,丢弃超量请求 | 严格流量整形 |
| 滑动窗口 | 精确统计时间窗口内的请求数 | 秒杀、抢购场景 |
1.2.3 认证与授权
网关是身份认证的集中执行点,支持 JWT、OAuth2、API Key、mTLS 等多种认证机制。授权决策通常结合权限矩阵(RBAC/ABAC)在网关层或通过策略代理(如 OPA)完成。
安全基线:所有进入微服务集群的请求必须经过网关认证。网关拒绝未认证请求,避免后端服务重复实现认证逻辑,降低攻击面。
1.3 在微服务架构中的位置与价值
在微服务架构中,API 网关位于客户端与内部服务网格之间,是南北向流量的唯一入口。它解决了微服务架构中的几个关键挑战:
- 客户端简化:客户端只需与网关通信,无需感知后端服务拆分细节,减少客户端适配成本。
- 安全收敛:认证、授权、加密等安全策略在网关层统一实施,避免每个微服务重复实现安全逻辑。
- 运维治理:限流、熔断、灰度发布、请求日志等运维能力集中管控,提升可观测性与稳定性。
- 协议适配:网关可完成 HTTP/gRPC/WebSocket 等协议转换,兼容异构服务通信。
架构陷阱:API 网关不应承担业务逻辑。将业务逻辑下沉至网关会导致网关臃肿、难以维护,并破坏微服务的独立部署能力。网关应保持轻量,仅执行横切关注点策略。
1.4 权限矩阵与合规边界的起点
API 网关是构建权限矩阵与合规边界的天然锚点。在后续章节中,我们将基于网关层逐步展开:
- 身份认证:在网关层验证调用方身份,拒绝未认证请求。
- 权限矩阵:结合 RBAC/ABAC 模型,在网关层或通过策略代理执行细粒度授权。
- 合规边界:通过网关审计日志、请求追踪、数据脱敏等能力,满足 GDPR、等保、PCI-DSS 等合规要求。
- 零信任架构:网关作为策略决策点(PDP),对每一次请求进行显式验证,不信任任何网络位置。