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

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

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

数据存储
- 业务数据存储在数据库中。
- 网关指标存储在 Prometheus 中。
- 网关访问日志和错误日志默认本地存储在每个网关实例上,但如果需要,也可以转发到外部日志服务。
具体而言,数据库存储以下类型的业务数据:
- 网关配置数据:定义网关行为的实体,例如服务、路由、消费者、SSL 证书以及其他核心资源。
- 管理和运维数据:管理和治理相关的信息,包括控制面管理员、RBAC 策略、SSO 身份认证配置和审计日志。
控制面(CP)
数据库连接凭证
数据库连接凭证存储在控制面的配置文件中。它们也可以存储在环境变量中,并注入到配置文件里。
插件资源
插件配置中的敏感字段在插件 Schema 的 encrypted_fields 中指定。这些字段中的信息会使用 AES256 进行加密,并保存到数据库中。
用于加密敏感信息的密钥环因网关组而异,并且在保存到数据库之前也会被加密。
SSL 资源
对于 SSL 证书,元数据以明文保存,而证书则经过 AES 加密并保存到数据库中。
使用 API 或控制台查看 SSL 资源时,你只能看到元数据。
控制台连接
控制台连接默认使用 TLS。如果未配置证书,API7 会使用自签名证书。
审计
在将日志保存到数据库之前 ,审计日志中的敏感信息(如密码)会被脱敏处理。禁止对审计日志进行任何额外的修改。
用户凭证
用户凭证(包括用户名和密码以及访问令牌)在保存到数据库之前,会进行加盐并使用 PBKDF2 加密。
加密算法
在字段不可逆的情况下,哈希算法将采用加盐的 PBKDF2。
在字段可逆的情况下,加密算法将采用 AES。
数据面(DP)
在客户端与 API7 网关之间,以及 API7 网关与上游服务之间,你可以配置 TLS 或 mTLS 来确保通信的安全。
DP 与 CP 之间的通信
DP 和 CP 之间的通信可以使用 mTLS 保护,长轮询、心跳和 Prometheus 指标流量会通过此加密通道传输。CP 存储服务器和 CA 证书。DP(每个网关实例)存储客户端证书。