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

安全加固

安全加固是通过实施配置、控制措施和最佳实践来降低漏洞风险,保护系统免受未经授权的访问或攻击的过程。在 API 网关场景中,安全加固尤为重要,因为网关通常是众多后端服务、数据源和敏感业务逻辑的统一入口。加固网关安全可以缩小潜在攻击面,确保只有经过授权且完成身份认证的请求才能访问关键资源。此外,在规划稳健的安全措施时,了解敏感信息的存储位置和存储方式也很重要,有助于保护组织免受未经授权的访问、数据泄露或恶意攻击。API 网关的安全加固不仅是保护敏感数据的必要措施,也有助于维持系统性能、满足监管合规要求并建立信任。

提示

本页介绍可以启用的安全加固特性以及推荐的生产配置。有关敏感数据存储位置、保护数据的加密算法以及组件通信方式的详细参考信息,请参阅安全加固参考

下图展示了 API7 网关的各种组件及其交互方式:

API7 网关组件架构图,包括控制台、DP Manager、数据库和数据面网关实例,以及连接这些组件的加密通道(HTTPS、mTLS)

安全加固特性

  • 控制台与 DP Manager 之间的通信默认使用 HTTPS。
  • 敏感数据会在审计日志写入数据库前进行脱敏,且禁止对审计日志进行任何额外修改。
  • 用户凭证(包括用户名和密码)以及访问 Token 会先加盐,再使用 PBKDF2 加密,然后保存到数据库中。
  • Redis 密码等敏感插件配置会在插件schema 的 encrypted_fields 中指定。这些字段中的信息会使用 AES256 加密,然后保存到数据库中。
  • 用于加密敏感信息的密钥环按网关组区分,并且在保存到数据库前也会进行加密。

安全加固措施

以下是一些可选的额外措施,你可以使用它们来增强 API7 网关的安全性。

保护数据面通信

为了确保客户端与 API7 网关之间,以及 API7 网关与上游服务之间交换的数据具备机密性和完整性,可以使用 API7 网关中的 SSL 配置为通信启用 TLS 或 mTLS(双向 TLS)。

启用 TLS 后,客户端与 API7 网关之间,或 API7 网关与上游服务之间传输的数据都会被加密,从而防止数据被拦截或篡改。这可以确保未经授权的第三方无法读取或修改传输中的数据,为可能不安全的网络提供安全通信通道。

使用 mTLS 时,通信双方(API7 网关与其客户端或上游服务)会相互进行身份认证。这种双向认证对于高安全性环境尤其有价值,因为验证双方身份可以防止未经授权的访问。mTLS 常用于保护与敏感后端系统的通信,或保护内部服务之间对数据安全要求较高的通信。

使用密钥环加密数据

data_encryptionconfig.yaml 中的可配置选项,默认值为 false。将其设置为 true 后,API7 网关会在数据保存到数据库前,加密 encrypt_fields 中指定的敏感插件字段和 TLS 证书私钥。

keyring 是用于保护指定敏感数据的一组加密密钥。定期轮换密钥环是推荐的安全实践,可以降低密钥泄露风险、维护数据完整性,并符合加密密钥管理最佳实践。

config.yaml
  data_encryption:
enable: false
keyring:
- qeddd145sfvddff3

轮换密钥时请注意:如果 API7 网关已经在运行并且存在已加密数据,请不要删除旧密钥。应将新密钥添加到数组顶部,以便正确解密已加密的数据。直接删除旧密钥可能导致已加密数据无法恢复。

在密钥管理器中管理密钥

为了增强安全性并简化敏感数据管理,API7 网关允许你将密钥存储在 HashiCorp Vault 和 AWS Secrets Manager 等密钥管理器中。密钥管理器为 API Token、凭据和加密密钥等敏感信息提供集中式加密存储库。

例如,Redis 密码或 TLS 证书私钥等敏感插件字段可以安全地存储在密钥管理器中。运行时,API7 网关通过与密钥管理器集成来获取这些密钥,确保敏感数据在整个生命周期内受到保护。

使用密钥管理器的一个重要优势是安全性更高,可以降低将敏感信息直接写入配置文件或通过环境变量暴露所带来的数据风险。另一个优势是支持自动轮换密钥。定期轮换密钥是安全最佳实践,可以降低凭证泄露后被长期利用的风险。许多密钥管理器可以自动完成这一过程,更新密钥并确保依赖服务无需手动干预即可访问最新版本。该自动化能力既能减少运维负担,也能帮助组织满足监管要求和行业标准。

纳入持续监控

将持续监控纳入技术栈,可以通过收集和分析实时指标来加固 API 基础设施安全。该方法能够及早发现未经授权的访问或异常流量模式等威胁,并通过识别瓶颈来优化 API 性能。

API7 网关提供基于事件的内置告警系统,其中预配置了一系列可触发告警的条件,例如控制面证书即将过期、网关实例离线或 CPU 配额超出限制。你可以在控制台中配置告警事件,并进一步自定义严重性、检查间隔、阈值和通知内容。详情请参阅告警和联系人

API7 网关还可以与 Prometheus 和 Datadog 等外部工具集成。网关支持以极低延迟向监控工具暴露一组完整指标。这些集成可以帮助管理员可视化指标、配置告警并快速响应关键事件。此外,监控还可以通过定位资源使用效率问题来优化 API 性能,确保系统即使在高流量负载下也能平稳运行。对于受监管要求约束的组织,持续监控还可以提供审计和报告所需的详细指标与日志,帮助组织满足合规要求。