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

图中显示的具体细节可能会因系统的部署方式而异。
本文档提供了一份参考,说明了 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(每个网关实例)存储客户端证书。