网络与安全
请将代理监听器、Admin 监听器、指标端点、etcd 和托管 Cloud 连接视为彼此独立的信任区域。
网络边界
可以参考下表决定每个网络中允许访问哪些内容:
| 暴露面 | 承载内容 | 暴露范围 |
|---|---|---|
| 代理监听器 | 面向调用方的 AI 流量,例如 /v1/chat/completions | 预期调用方或入口层 |
| Admin 监听器 | Admin API、Admin 健康检查、OpenAPI 和 playground | loopback、私有子网或仅管理员可访问网络 |
| 指标监听器 | Prometheus 指标 | 可信监控网络 |
| 配置存储 | 自托管部署中位于 etcd 的动态网关资源 | 仅 AISIX 和配置管理系统 |
| 托管 Cloud 连接 | 与 AISIX Cloud 控制面之间经过 mTLS 认证的网关通信 | 到 AISIX Cloud 控制面的出站 mTLS 路径 |
只向调用方暴露代理监听器。Admin、指标、OpenAPI、playground 和 etcd 应保留在私有网络中。指标端点不做认证,并通过专用指标监听器提供。
当网络位置要求加密传输或双向认证传输时,请使用 TLS 或 mTLS。如果启用 etcd TLS,启动配置必须指向网关进程可读取的证书文件。
绑定特权端口(80/443)
AISIX 容器镜像以非 root 用户(UID 10001)运行,并为网关二进制文件授予 CAP_NET_BIND_SERVICE 文件能力。Kubernetes securityContext 中同一能力写作 NET_BIND_SERVICE,不带 CAP_ 前缀。因此监听器可以在不以 root 运行容器的情况下绑定 80、443 等特权端口。该行为在 普通 Docker 和 Kubernetes 中一致,也适用于通过 hostNetwork: true 直接在节点上暴露代理端口的 Pod:
# Pod spec 片段:通过 host network 在节点 80 端口暴露代理监听器
spec:
hostNetwork: true
containers:
- name: aisix
image: api7/aisix
# config mounts proxy.addr: "0.0.0.0:80"
NET_BIND_SERVICE 属于 Docker 和 containerd 的默认能力集合,因此默认部署无需额外配置。如果 Pod security context 丢弃了全部能力,请把 NET_BIND_SERVICE 加回来;否则容器会在启动时报 exec: Operation not permitted。这是因为二进制文件带有 effective bit 的文件能力,当内核无法授予该能力时会拒绝执行,而不是在没有能力的情况下继续运行:
securityContext:
capabilities:
drop: ["ALL"]
add: ["NET_BIND_SERVICE"]
这与 restricted Pod Security Standard 兼容,因为该标准允许只加回 NET_BIND_SERVICE。如果你只是需要让网关可通过节点的 80 端口访问,而不需要完整 host networking,也可以使用 hostPort: 80 映射到容器内的普通代理端口,避免容器内部绑定特权端口。
凭证边界
调用方 API Key 和上游服务提供方凭证有不同的存储和转发规则:
| 凭证或密钥 | AISIX 如何使用 | 需要保护的内容 |
|---|---|---|
| 调用方 API Key | 以哈希形式存储;明文由调用应用持有 | 应用密钥存储和 API Key 轮换流程 |
| 服务提供方密钥 | 用于认证上游服务提供方请求 | 配置存储、Admin 访问和备份 |
| 可观测性导出器凭证 | 发送到配置的遥测目标,或为该目标解析 | 动态资源存储和可观测性配置访问权限 |
| 托管证书包 | 用于将托管网关认证到 AISIX Cloud | 运行时状态目录、信任根和托管引导流程 |
在自托管部署中,服务提供方凭证可能存放在配置存储中。OTLP HTTP 导出器请求头可以存储在动态配置里;对象存储、阿里云 SLS 和 Datadog 导出器使用网关本地解析的凭证引用。请将 etcd、备份和 Admin API 访问路径视为携带密钥的暴露面。在托管部署中,AISIX Cloud 控制服务提供方密钥处理,并将运行时配置投射到托管网关。
AISIX 使用调用方 API Key 认证调用方,并使用服务提供方凭证认证上游请求。透传默认会剥离敏感入站请求头。服务提供方密钥的剥离设置会影响转发内容,因此除非特定上游集成要求,否则应继续剥离 authorization、cookie 和 x-api-key 等携带凭证的请求头。
安全基线
路由生产流量前,请确认以下控制项:
- 代理监听器只能被预期调用方或入口访问。
- 自托管部署中的 Admin 监听器是私有的。
- 指标端点是私有的。
- 自托管部署中的 etcd 是私有、持久化、有备份且受访问控制的。
- 服务提供方密钥 secret 和导出器凭证被视为敏感运维数据。
- 当部署要求加密传输或双向认证传输时,已配置监听器 TLS、etcd TLS 或托管 mTLS。
- 托管网关身份通过基于证书的引导路径验证。
- 备份和可观测性流水线不会暴露动态资源载荷或服务提供方凭证。
下一步
你已经了解在暴露 AISIX 前需要保护的网络和凭证边界。接下来阅读 TLS 与 mTLS 了解传输安全。