API管理最佳实践与解决方案
借助F5快速、安全且可扩展的API网关和管理解决方案,让开发人员始终掌握主动权
API是云原生和容器化应用开发的基础构建模块。API可促进运营团队协同工作,从而缩短应用开发的上市时间,并帮助您提供更具竞争力的用户体验。另一方面,API的使用使应用架构趋于分散,增加了API设计、发布和管理的难度,进而带来复杂且容易产生风险的管理挑战。如果缺少自动化的高性能流量和策略控制,API规模的增长和复杂性的增加将降低开发人员的敏捷性。
F5提供全面的解决方案,采用简单、快速且可扩展的架构,帮助在任何数据中心或云环境中安全管理API。该解决方案支持API部署和管理自动化,有助于缩短产品上市时间,同时防范API特有的威胁。F5将云原生API管理、高性能API网关和安全控制整合到一个解决方案中,减少工具蔓延并降低架构复杂性。
“F5将云原生API管理、高性能API网关和安全控制整合到一个解决方案中,有助于减少工具蔓延并降低架构复杂性。”
主要优势
以API为中心的安全
提供API网关无法实现的防护,应对常见及高级API特有漏洞
集成式API交付解决方案
通过集成安全与网关功能提高运营效率
云原生微服务API架构
可无缝集成到几乎任何部署设计或架构中,包括边缘代理、Kubernetes、Ingress网关、无服务器架构等
便于DevOps和应用开发人员使用
安全、自动化和配置管理与DevOps团队同样敏捷,助您缩短产品上市时间并降低成本
了解企业API管理面临的挑战
应用开发日新月异,持续创新不断改变着我们的交互方式。由于分布式容器环境十分复杂,对速度的重视有时会导致对API管理以及安全和基础设施控制措施执行的抵触。遗憾的是,随着API越来越多地用于微服务之间的数据交换,它们正成为可能导致敏感数据泄露的潜在薄弱环节。因此,所有API端点都应至少实施最低限度的标准化风险控制、配置和策略;然而,API发布自动化减少了传统的用户交互和监督环节,使API价值不断提升的趋势也让API更容易受到攻击。
大多数API网关缺乏足以支持规模化管理的控制措施
API网关通常用于管理将API发布到平台或微服务集群的过程。易用性和自动化是采用API网关的主要驱动因素,因为随着应用组合不断扩大,要在保持平台无关性的同时扩展API互连能力以满足客户流量需求并非易事。这也解释了为何API配置错误和安全疏漏会导致一些备受关注的API数据泄露事件。
DevOps负责的自动化流水线日益增多,每条流水线都需要使用不同的工具来满足开发人员和应用的需求。这些情况会导致API流量模式和管理实例彼此割裂,而相互独立的可观测性解决方案又进一步增加了复杂性。遗憾的是,开发和DevOps团队的绩效仍普遍以发布频率衡量,却不考虑发布安全性。
这会导致企业无法大规模管理API增长,并因未经授权使用API而产生新的意外风险和暴露。根据OWASP API安全十大风险,这些是最常见的威胁之一。
API在大规模管理流量时也会遇到性能问题。应用初次上线时,50–100 ms的事务延迟或许可以接受;但当数百乃至数千个微服务为满足客户需求而扩展时,这些延迟会不断累积,拖慢整个应用链。结果如何?性能不佳,无法达到客户预期。
在整个企业应用组合中,从初始开发到生产部署,自动执行API端点访问、配置和安全管理,可帮助DevOps团队大规模解决性能问题和潜在漏洞,从而专注于自动化流水线中的其他问题。
微服务API环境中的控制措施不一致
云原生应用在设计上日益呈现分布式和去中心化特征,依赖数百乃至数千个基于API的端点,并以数百万次事务作为主要流量来源。 F5 Labs近期研究 显示,API安全事件数量逐年增加,而过去两年中最常见的API事件成因与安全成熟度较低有关,这通常是工具泛滥所致。
当不同的开发团队跨多个平台负责分布式应用的不同部分时,API管理会变得复杂,导致应用安全性不足、性能不佳。部署失败、性能下降或恶意访问敏感流量都可能引发问题,而确定问题根因已属不易,修复更是困难。大规模降低这种复杂性有助于减少风险,并提供一套围绕业务目标优化的统一配置、性能和安全策略。为DevOps团队提供一套标准工具,将适当的控制措施自动融入API开发和管理流程,可支持应用随业务共同发展。
“在ESG的云原生应用调查中,超过三分之一的受访者表示,安全性是他们在使用云原生应用时已经面临或预计将面临的主要挑战之一。随着应用扩展,API不兼容、性能和可观测性不足等问题也会迅速显现。”
解决方案
企业需要维护并持续演进传统API,同时采用云原生微服务架构开发新API。这些API既可通过裸机私有系统交付,也可从云端交付,或通过多云传输解决方案交付。API用于提供多种用户体验,而每种体验可能需要不同的开发、发布和安全控制,因此难以对其进行分类。F5 NGINX解决方案具备灵活性,可支持多种用例或架构模式,满足不同开发团队的需求。
常见的API管理和发布用例
在下述所有解决方案中,F5 NGINX Management Suite用于执行API管理功能,例如发布API、设置身份验证和授权,以及使用F5 NGINX Plus提供的API网关构建数据路径。安全控制措施根据数据和API交付平台的安全要求进行配置。
- 高度监管业务的API
涉及敏感或受监管信息交换的业务API可能需要管理、报告和安全控制,以满足其他法规或行业要求。例如,传输受保护健康信息或敏感财务信息的应用必须符合特定行业标准。策略实施、可审计的基于角色的访问控制、分析以及大规模有效负载检查,是管理和保护此类API的关键机制。
将成熟的高级Web应用防火墙(WAF)技术用于应用接口,并与F5 NGINX Plus API Gateway和F5 NGINX App Protect WAF结合,可为关键任务的可用性和性能提供更出色的边界、API和微服务保护。 - 多云分布式API
面向全球用户的移动应用需要采用地理分布式后端,以提供低延迟的API响应。其他应用服务可能也需要分布式部署,将高事务量工作负载移至更靠近用户或数据的位置,从而提升性能。为优化响应时间,需要使用分布式平台来编排从多个位置交付API端点,为用户群提供服务。
F5 NGINX Plus提供不受平台限制的API网关、负载均衡和安全功能。与F5 NGINX Management Suite API Connectivity Manager模块结合部署后,可帮助DevOps和AppDev团队大规模实现高性能、自动化且安全的API发布。
为分布式环境提供高级多云连接时,F5 Distributed Cloud多云网络解决方案可将面向NetOps的网络基础设施难题与应用部署分离。DevOps无需再为IP地址重叠和复杂的路由配置而分心,可以专注于快速交付可供开发使用的基础设施。试用F5 Distributed Cloud Services和NGINX部署用例,解决多云挑战。 - Kubernetes中的API工作负载
F5 NGINX Ingress Controller是一款面向Kubernetes微服务的一体化负载均衡器、缓存、API网关和WAF。与永久免费使用的F5 NGINX Service Mesh结合使用后,DevOps团队可以掌控API开发和部署。适用于NGINX Plus的NGINX Ingress Controller可与NGINX App Protect完全集成,形成易于部署的单一配置,从而降低生产级应用的成本和复杂性。NGINX Service Mesh用于为工作负载提供东西向可见性和基于mTLS的安全防护。
NGINX Ingress Controller(适用于NGINX Plus)可与NGINX Service Mesh集成,构建统一的数据平面,提供生产级安全性、功能和扩展能力。NGINX Service Mesh轻量且无侵入性,专注于集群内的第7层应用流量管理,让技术栈的其他部分顺畅运行,避免不必要的复杂性。
“将面向应用接口的先进Web应用防火墙(WAF)技术与F5 NGINX Plus API Gateway和F5 NGINX App Protect相结合,可为边界、API和微服务提供更强的保护,助力保障关键任务应用的可用性和性能。”
结论
无论采用何种平台或自动化架构,F5解决方案都能交付、管理和保护API及其托管基础设施。F5可有效防御机器人以及常见和高级API漏洞利用,并通过DevOps集成支持发布,同时提供API性能可见性。这些解决方案相互配合,有助于实现应用在任何部署位置均可移植的目标,让工作负载更贴近客户。
让开发和运维团队能够根据工作需要自由选择合适的环境,无论是云托管环境还是本地环境,从而获得支持当前业务所需的敏捷性;同时,借助可随业务迁移的架构可移植性,灵活支持未来业务发展。
主要功能
API定义与发布:通过直观的界面定义API
- 定义基础路径和后端服务
- 将API路由到适当的后端服务
- 管理API版本
- 导入符合OpenAPI标准的API
- 将API发布到一个或多个环境,例如生产环境或预发布环境
- 配置API网关
- 配置安全策略
- 在微服务架构中部署和运行
实时监控和告警,深入了解API性能的关键情况
- 延迟和响应时长等关键指标的图表
- 网关特定指标,例如每秒请求数、活动连接数和带宽使用量
- 根据预定义阈值,针对CPU使用率、4xx/5xx错误和运行状况检查失败等100多项指标发出警报
- 使用REST API,可轻松集成您选择的任何监控工具
仪表板:快速监控API网关并排查故障
- 汇总各API网关指标的概览仪表板
- 用于衡量请求成功率和响应及时性的应用健康评分
- 可自定义的仪表板,用于监控特定于当前环境的指标
速率限制:通过设置速率限制来缓解DDoS攻击并保护应用
- 指定每个客户端、使用方或资源的最大请求速率
- 保护API端点,并确保满足面向API使用者的SLA
- 定义多个速率限制策略
身份验证和授权
- 验证JSON Web令牌(JWT)
- 为使用方创建和管理API密钥
- 从外部系统导入API密钥
- 与API使用者共享
- 将策略应用于API客户端组