安全加固参考
基础设施安全是一个重要的话题,组织会仔细审查以保持对最新监管和法律要求的合规性。了解敏感信息存储的位置和方式,对于实施强大的安全措施并防范组织中未经授权的访问、数据泄露或恶意攻击至关重要。

图中显示的具体细节可能会因系统的部署方式而异。
本文档提供了一份参考,说明 API7 网关中敏感信息的位置、存储方式及其保护机制。有关用于加固生产部署的推荐配置步骤和可启用功能,请参阅企业功能分类下的配套指南安全加固。
部署模型(AWS)
以下是在 AWS 中托管 API7 网关的部署模型。
客户管理的部署
在客户管理的部署模型中,控制面(CP)和数据面(DP)均部署在你的 AWS 环境中。

混合管理的部署
在混合管理的部署模型中,控制面(CP)托管在 API7 的 AWS 环境中,而数据面(DP)托管在你的 AWS 环境中。

数据存储
- 业务数据存储在数据库中。
- 网关指标存储在 Prometheus 中。
- 网关访问日志和错误日志默 认本地存储在每个网关实例上,但如果需要,也可以转发到外部日志服务。
具体而言,数据库存储以下类型的业务数据:
- 网关配置数据:定义网关行为的实体,例如服务、路由、消费者、SSL 证书以及其他核心资源。
- 管理和运维数据:管理和治理相关的信息,包括控制面管理员、RBAC 策略、SSO 身份认证配置和审计日志。
控制面(CP)
数据库连接凭证
数据库连接凭证存储在控制面的配置文件中。它们也可以存储在环境变量中,并注入到配置文件里。
插件资源
插件配置中的敏感字段由插件 schema 中的 encrypt_fields 标识。控制面会在将这些字段保存到数据库之前进行加密。获得授权的 Admin API 读取方仍可收到已解密的凭据值。如果数据库或备份遭到入侵,不应依赖这种加密保护凭据。
每个网关组都有独立的密钥环。控制面使用上述相同的应用层字段加密方式存储密钥环,因此数据库或备份遭到入侵时,密钥环也无法获得保护。
SSL 资源
对于 SSL 证书,私钥会进行静态加密。后续读取会返回元数据和公共证书,但不会返回私钥。创建或更新响应可能回显刚提交的私钥,因此也要保护这些响应。
控制台连接
控制台连接默认使用 TLS。如果未配置证书,API7 会使用自签名证书。
审计
API7 会对受支持的请求和响应结构中的已知敏感字段进行脱敏。若捕获的请求或响应 JSON 不属于这些结构,内容会未经脱敏直接存储。应将审计日志视为敏感数据,并保护控制面数据库,防止直接修改或删除日志。
用户凭证
内置用户密码和访问令牌经加盐后,以 PBKDF2 派生哈希存储。用户名会保留,用于查找账户。
加密算法
在字段不可逆的情况下,哈希算法将采用加盐的 PBKDF2。
在字段可逆的情况下,加密算法将采用 AES。
数据面(DP)
在客户端与 API7 网关之间,以及 API7 网关与上游服务之间,你可以配置 TLS 或 mTLS 来确保通信的安全。
DP 与 CP 之间的通信
控制台生成的部署通过 7943 端口上的 mTLS 连接 DP Manager。在这条路径上,长轮询、心跳和 Prometheus 指标流量均已加密;控制面存储服务器和 CA 证书,每个数据面实例存储客户端证书。DP Manager 也接受通过实例 Token 身份认证的 7900 端口 HTTP 连接。7900 端口上的流量未加密,应仅允许可信网络访问。