API 网关暴露面是什么
API 网关在对外的暴露面收敛中承担双重角色:对外作为统一入口并集中做鉴权与限流,对内屏蔽实现细节与内部地址。它的治理重点不在网关本身,而在『网关之外的接口』:开发直连部署的服务、历史版本未真正下线的接口、按环境未关闭的调试页面,都会绕过网关既有的鉴权与限流。因此暴露面核查要以『实际可达路径』为准,而不是以网关配置清单为准。
基本信息
| 常见实现 | Kong、APISIX、Spring Cloud Gateway、云厂商 API 网关 |
|---|---|
| 核心职责 | 统一鉴权、限流、路由、版本管理、错误结构收敛 |
| 主要盲区 | 影子 API、未下线旧版本、调试页面未按环境关闭 |
| 核查方式 | 实际可达路径清单与网关配置清单定期比对 |
典型使用场景
- 接口版本迭代时公布下线时间表,并在到期后真正停止路由
- 把鉴权统一收到网关层,后端服务只接受来自网关的请求
- 按环境关闭 /swagger-ui、GraphQL Playground 等调试入口
- 统一错误响应结构,避免回显堆栈与内部地址
- 定期做端口与路径扫描,找出绕过网关直接可达的服务
治理清单
治理清单
1. 版本下线:deprecated 接口公布时间表并真正停止路由
2. 鉴权统一:网关层校验令牌,后端服务不直接对外
3. 调试接口:swagger-ui、graphql playground 按环境关闭
4. 错误收敛:统一错误结构,不回显堆栈与内部地址
5. 限流:按应用与接口设置速率与配额,异常自动告警
6. 比对:网关配置清单 vs 实际可达路径暴露比对维度
| 维度 | 核查方法 | 异常信号 |
|---|---|---|
| 路径可达性 | 对域名做路径枚举与日志分析 | 出现网关未登记的可达路径 |
| 后端直连 | 扫描应用网段端口 | 后端服务端口从非网关来源可达 |
| 调试页面 | 访问常见调试路径 | 生产环境返回 200 与交互页面 |
| 旧版本 | 按历史文档调用旧接口 | 标记下线但仍正常返回数据 |
影子 API 是常见盲区:开发为赶进度直连部署的接口天然缺少鉴权与限流,用日志与端口扫描双向比对最容易发现。
接口下线要有过渡期与公告:直接停用会让调用方在业务时段报错,反而促成绕过网关的私下通道。