跳到主要内容
版本:3.10.x

企业功能概览

API7 网关基于 Apache APISIX 构建并运行相同的代理引擎,因此路由、上游、消费者和插件的行为相同。API7 网关在此基础上增加了网关外围的管理层:用于同时治理多个网关实例的控制面、面向运维人员和系统的身份与权限模型、记录每次配置变更的审计日志,以及用于向消费者发布 API 的开发者门户。

本页先列出该管理层提供的功能,再对两个产品进行逐项比较,帮助你判断哪一个更符合需求。

网关组

网关组将一个或多个网关实例组合成共享配置的逻辑单元,使一个控制面能够治理多个环境和地域。

组织和 RBAC

组织用于管理用户、角色和许可证,RBAC 则控制谁可以操作哪些网关组和资源。

权限策略和权限边界

权限策略定义允许的操作和资源,权限边界则限制用户无论持有何种角色都不能超过的权限上限。

控制台单点登录

通过 OIDC、SAML、LDAP 或 CAS 使用企业身份提供商登录控制台,并映射身份提供商中的角色。

审计日志

记录每项控制台、Admin API 和 ADC 操作,包括操作人、时间、资源和源 IP,且记录不可更改。

高可用性

控制面不可访问时,网关实例仍可继续处理流量,配置也可以回退到对象存储。

自定义插件

从控制台上传和管理自定义 Lua 插件,再将其分配给指定网关组和服务。

凭证

凭证将身份认证与消费者解耦,使一个消费者可以持有多个凭证,并在不中断服务的情况下轮换凭证。

匿名消费者

允许未通过身份认证的调用方以具名消费者身份访问受保护路由,通常使用低于已认证层级的限流配置。

密钥提供者

可在任意插件字段中引用 HashiCorp Vault 或 AWS Secrets Manager 中的密钥,或将密钥加密存储在 API7 网关中。

告警和联系人

超过 20 种内置事件(例如实例不健康或证书即将过期)可通过电子邮件或 Webhook 通知团队。

安全加固

敏感字段使用每个网关组独立的密钥环进行静态加密,审计日志会被脱敏,控制面到数据面的流量使用 mTLS。

合规

通过经过 FIPS 验证的 OpenSSL 3.0 实现 FIPS 140-2 Level 1,并以数据脱敏和 WAF 集成支持法规要求。

API 门户

将 API 作为产品发布,并允许开发者注册应用、订阅以及管理自己的凭证。

Apache APISIX 与 API7 网关对比

Apache APISIX 会在每个版本中持续增加功能,请查看你所运行版本的 Apache APISIX 文档

流量处理

两个产品运行相同的数据面引擎和插件集,因此代理、负载均衡、身份认证、转换和可观测性的行为相同。

功能Apache APISIXAPI7 网关
协议HTTP、HTTPS、gRPC、TCP/UDP相同
内置插件完整的插件集,可在插件中心浏览相同
自定义插件开发Lua、适用于 Java、Go 和 Python 的外部插件运行器,以及 WasmLua;可从控制台上传并分配给网关组。自定义插件可访问完整的网关运行时,且不在沙箱中运行
流量身份认证key-authjwt-authbasic-authhmac-authldap-authopenid-connectforward-auth相同
凭证credential 资源,允许一个消费者持有多个凭证相同,并可通过控制台管理
灰度发布traffic-split 插件,支持基于权重或条件的发布相同的插件,可通过控制台配置

大规模管理网关

功能Apache APISIXAPI7 网关
Admin API支持支持,与 APISIX 兼容,并限定到网关组作用域
Web 界面内置控制台,通过 :9180/ui/ 提供且默认启用。它使用 Admin API Key 进行身份认证,因此任何能调用 Admin API 的人员都可以使用提供用户账户、角色和 SSO 的控制台,每项操作均可追溯并记录审计日志
声明式 CLIADC 是由 API7 维护的 Apache-2.0 工具,可将 Apache APISIX 作为后端;控制台路线图也将其用于 GitOps 工作流。内置 apisix CLI 用于控制进程,而不是配置。独立模式还支持从磁盘加载声明式 YAML使用相同的 ADC 连接 API7 网关后端,并增加服务端验证、应用前差异预览,以及用于在网关组之间迁移配置的导出功能
配置存储需要自行部署和运维的 etcd 集群PostgreSQL、MySQL 或 SQL Server。DP Manager 通过嵌入式 kine 提供兼容 etcd v3 的 API,因此无需运维 etcd 集群
部署角色traditional、解耦的控制面和数据面,或无 etcd 的 standalone解耦的控制面和数据面,支持 Helm Chart、OpenShift、AMD64 和 ARM64 上的 Docker,以及离线安装
多集群和多环境面向单个集群设计。控制台路线图明确表示没有管理多个网关环境的计划通过网关组让一个控制面管理多个组,每个实例只属于一个组

治理谁可以更改什么

这是两个产品差异最大的部分。Apache APISIX 保护其代理的流量,但不对配置网关的运维人员建模。Apache APISIX 控制台路线图明确表示,没有增加控制台登录、用户管理或按用户划分权限的计划。

功能Apache APISIXAPI7 网关
管理员身份静态 X-API-KEY,具有 adminviewer 两个内置角色,其中 viewer 仅能执行读取方法用户账户以及可自定义的角色
管理员单点登录不提供OIDC、SAML、LDAP 和 CAS,并可映射身份提供商中的角色;已提供 Keycloak、Microsoft Entra ID、Google 和 Okta 的文档
用户预配不提供SCIM,已提供 Okta 和 Microsoft Entra ID 的文档
细粒度授权上述两个静态角色权限策略可限定操作和资源的作用域,权限边界则限制用户无论持有何种角色都不能超过的有效权限;拒绝规则优先于允许规则
配置变更审计不提供。内置日志插件记录的是代理请求,而不是 Admin API 调用记录每项控制台、Admin API 和 ADC 操作,包括操作人、时间、事件类型、资源和源 IP。记录不可更改且会脱敏,保留 180 天,并可导出为 JSON 或 CSV

密钥

功能Apache APISIXAPI7 网关
密钥后端环境变量、HashiCorp Vault、AWS Secrets Manager 和 GCP Secret Manager环境变量、HashiCorp Vault 和 AWS Secrets Manager;GCP Secret Manager 仍在规划中
内置密钥存储不适用,密钥存储在上述后端中也可将密钥存储在 API7 网关中,并按照 FIPS 140-2 标准加密
运维保护措施不提供控制台会列出每个密钥提供者的引用位置,并阻止会产生悬空引用的编辑或删除操作;对提供者的变更会被审计

弹性与运维

功能Apache APISIXAPI7 网关
高可用性在负载均衡器后部署无状态网关实例,并自行保障 etcd 集群的高可用性使用相同的无状态实例;控制面通过数据库复制和多个控制台实例实现高可用,并提供多可用区与多地域部署文档
控制面中断时继续服务不适用实例继续使用最后已知配置提供服务;备用控制面可将配置导出到 AWS S3、兼容 S3 的存储或 Azure Blob Storage,供实例加载
告警通过 prometheus 提供指标、通过 opentelemetry 提供链路追踪,并为 Kafka、Elasticsearch、Splunk 等提供日志插件;告警规则需自行构建提供相同的遥测能力,并内置不健康实例数量、5xx 比率、证书将在 30 天内过期等事件,可发送到电子邮件或 Webhook 联系人

向开发者发布 API

功能Apache APISIXAPI7 网关
开发者门户不提供。控制台路线图明确表示没有充当开发者门户的计划提供用于发布 API 产品和审核订阅的 Provider Portal,以及供开发者注册应用、订阅、管理凭证和试用 API 的开发者门户;支持 SSO、SCIM 和动态客户端注册,并可作为内部、合作伙伴或公开门户运行

安全与支持

功能Apache APISIXAPI7 网关
静态加密data_encryption 使用 AES 加密标记为 encrypt_fields 的插件字段;默认启用并带有内置密钥环,配置存储到 etcd 时生效使用 AES256 加密标记为 encrypted_fields 的字段且默认启用,每个网关组使用独立密钥环;用户凭证使用 PBKDF2 加盐哈希
FIPS不提供通过经过 FIPS 验证的 OpenSSL 3.0 实现 FIPS 140-2 Level 1
合规认证不适用于开源项目API7.ai 已通过 SOC 2 Type II、ISO/IEC 27001:2022、HIPAA 和 GDPR;请参阅合规性
安全响应遵循 Apache Security Team 流程,提供 CVE 和公开的威胁模型在上述基础上,提供专门的安全团队,并将安全补丁向后移植到受支持版本
支持社区邮件列表、Slack 和 GitHub Issue提供有明确 SLA 的专属支持团队、版本升级协助和架构评审

如何选择

如果一个团队运行一个集群,且所有能够访问 Admin API 的人员都可以被信任去更改任何配置,那么 Apache APISIX 已经足够。

当需求超出这一范围时,API7 网关可解决随之出现的问题:多个团队共享一套网关基础设施、不同环境需要不同权限、审计人员需要知道谁在何时更改了某条路由、身份信息来自企业目录,以及外部开发者需要订阅 API。这些需求侧重于治理而非代理,因此两个产品共享数据面,但在数据面之上的管理能力有所不同。

后续步骤