基于API网关构建高可用、高安全性API

简介: 借助API网关构建高可用、高安全性的云API,充分利用API网关给我们带来的便利!

        今天我们来聊聊如何借助API网关构建高可用、高安全性的云API,充分利用API网关给我们带来的便利。

认证

        从API定义上我们可以定义多种认证类型的API,除特殊API外建议定义APP认证方式或其有安全认证类型的API,这样一旦发生攻击或者大量非法调用时我们可以知道谁在调用,便于我们通过黑名单等措施及时进行限制

HTTPS

建议对数据传输安全性要求较高的API仅开放HTTPS调用方式,另外在证书选择上,强烈建议大家选购Verisign的安全证书,因为Verisign在老版本的Linux等操作系统中兼容性更好,其他的证书以及免费证书在老版本的系统中根证书授权只有十年或更短的时间,而Verisign授权时间为三十年,而这些系统很多都是十年以前的,到今天根证书授权早已过期,并且这类老版本的操作系统现在还在被大范围的应用于企业级服务器,比如Red Hat 4.1.2-50。如果API服务端使用这类证书,API调用客户端就需要手动升级客户端的openssl等证书管理软件的版本,或者选择在程序中忽略证书可靠性,这两种都不是好的或者安全的选择,通过浏览器访问的入口则不必关心此问题,主流浏览器都有自己的证书管理机制,一般都可以正确识别最新的证书供应商。因此建议大家选购证书前要做好前期证书比较与调研,避免走弯路。

流量清洗

        从网络上API网关为我们提供了流量清洗功能,对常见的网络攻击进行过滤,对后端业务服务集群进行保护,目前这些都是免费开放的,并且在录入API后不需要特殊设置,默认就开启了防御功能!赞赞赞!

流量控制

API发布后建议根据后端服务的实际能力对API进行多维度的流控配置,这样即可以有效的避免后端服务被打爆,并且还可以避免某个普通用户占用过多API资源,当然对特殊高并发用户也可以进行特殊流控设置,流控设置攻略详见:https://yq.aliyun.com/articles/63132?spm=5176.100244.teamconlist.12.R3PpZp

后端签名

API网关与后端业务服务通信也是需要重点进行安全防护的链路,除了HTTP协议建议使用HTTPS外,还强烈建议大家开启后端服务调用签名功能,避免其他人通过非API网关入口调用到后端服务,做到全链路可信调用。并且一旦密钥泄露API网关还支持密钥的热替换,此过程已发布API可以不间断提供服务,开启地址:https://apigateway.console.aliyun.com/#/cn-qingdao/keys/list;帮助中心地址:https://help.aliyun.com/document_detail/29485.html?spm=5176.doc29498.2.1.OlkTQ4

高可用性

最后,对API高可用方面要求比较高的场景建议大家进行多Region部署,API网关本身对多Region有着良好的支持,目前主流的Region都有输出,并且还在以非常快的速度开放更多Region。多Region部署中前后端服务强烈建议部署在通一个Region中,并配置API网关到后端服务走内网调用,这样才可以实现真正意义的多Region提供服务、跨地域容灾,避免从客户端到后端服务的任何一个环节出现问题后对客户端造成恶劣影响,当然客户端也需要针对提供了多Region容灾服务的API进行感知并支持自动或快速手动切换,这样当某个Region的API出现问题后客户端可以继续服务,将故障影响降到最低。

目录
相关文章
|
2月前
|
NoSQL 安全 API
如何有效提升 API 接口的安全性?
**API安全关键在于验证和防刷。通过排序参数、生成签名和MD5加密确保请求合法性。使用Redis限制请求频率,防止接口被恶意刷取。验证和防刷策略结合,保护API免受攻击和滥用。**
87 0
|
5天前
|
运维 监控 Kubernetes
高效应对突增流量:构建弹性高性能的SMS网关策略
本篇内容来自于ArchSummit全球架构师峰会演讲实录。
|
12天前
|
JSON API 网络架构
Django 后端架构开发:DRF 高可用API设计与核心源码剖析
Django 后端架构开发:DRF 高可用API设计与核心源码剖析
29 0
|
12天前
|
运维 Serverless API
Serverless痛点解决问题之编写并部署一个弹性高可用的 Web API如何解决
Serverless痛点解决问题之编写并部署一个弹性高可用的 Web API如何解决
41 0
|
15天前
|
Kubernetes 负载均衡 API
在K8S中,api-service 和 kube-schedule 高可用原理是什么?
在K8S中,api-service 和 kube-schedule 高可用原理是什么?
|
2月前
|
安全 算法 测试技术
淘宝API接口测试中的安全性保障
在电商领域,淘宝API连接商家与消费者,安全性至关重要。本文探讨了确保API接口测试安全的方法与最佳实践:接口签名确保请求完整性;Token方案防抓包和数据爬取;使用Postman和Katalon Studio提高测试效率。此外,还强调了使用授权认证、数据加密、参数验证及限制请求频率等安全配置的重要性。最后,提醒测试者注意账户授权、数据格式、遵循安全规范及保持工具更新。这些措施共同保障了API的安全性和稳定性。
|
19天前
|
存储 Kubernetes 负载均衡
在K8S中,api-server究竟是如何实现高可用?
在K8S中,api-server究竟是如何实现高可用?
|
1月前
|
监控 供应链 安全
构建高效微服务架构:API网关与服务熔断策略
【7月更文挑战第38天】随着现代应用程序向微服务架构的转型,系统的稳定性和效率成为了开发团队关注的焦点。本文将探讨在微服务环境中实现系统可靠性的关键组件——API网关,以及如何在服务间通讯时采用熔断机制来防止故障蔓延。通过分析API网关的核心功能和设计原则,并结合熔断策略的最佳实践,我们旨在提供一套提高分布式系统弹性的策略。
|
2月前
|
算法 网络协议 应用服务中间件
(五)网络编程之流量接入层设计:基于性能怪兽从零构建日均亿级吞吐量的网关架构!
在前篇关于《Nginx》的文章中曾经提到:单节点的Nginx在经过调优后,可承载5W左右的并发量,同时为确保Nginx的高可用,在文中也结合了Keepalived对其实现了程序宕机重启、主机下线从机顶替等功能。
|
3月前
|
Java API 开发者
Spring Cloud Gateway中的GlobalFilter:构建强大的API网关过滤器
Spring Cloud Gateway中的GlobalFilter:构建强大的API网关过滤器
下一篇
DDNS