使用API网关流控防攻击-阿里云开发者社区

开发者社区> 开发与运维> 正文

使用API网关流控防攻击

简介: API使软件之间的通讯更加便捷,使得基于软件支撑的商业模式得以落地,如移动支付,从而促进API经济的繁荣。现在开放API服务已经成为软件服务的主要趋势,对于API提供者而言,API服务的安全性则是需要重点考虑的。但互联网上的攻击,或者某次促销导致流量暴增,超出服务承受能力的情况无可避免

  API使软件之间的通讯更加便捷,使得基于软件支撑的商业模式得以落地,如移动支付,从而促进API经济的繁荣。现在开放API服务已经成为软件服务的主要趋势,对于API提供者而言,API服务的安全性则是需要重点考虑的。但互联网上的攻击,或者某次促销导致流量暴增,超出服务承受能力的情况无可避免,在这种情况下,怎么保护后端服务不受影响,服务不被中断?
  API网关在设计之初,就重点考虑了安全性的问题,流控作为API网关的主要功能,能从API分组、API、用户、APP四个维度进行流量控制,当流量超过设置阈值时,API网关会直接返回错误信息(错误码403,有明确的因流控被拒的错误信息)给请求者,不会再继续调用API提供者的后端服务,从而保护了后端服务不被攻击。同时我们还具有精准流控,实时生效的特点。

API分组流控

  每个API分组在建立的时候,默认设置了分组的QPS为500,指该分组下所有API的QPS之和为500,目前该值没有开放给用户编辑,如果该值不能满足你的业务情况,请通过提交工单的方式联系我们修改。

API流控设置

  API流控用于通道内的业务分层,API提供者可以根据后端服务能力和业务的重要程度来区分API,可分别设置不同的流量控制,以保证重要业务的延续性。API流控须小于分组流控。
  用户流控用于在API上的用户分层,API提供者可以为普通用户设置流量控制,防止用户间相互挤占资源。用户流控须小于API流控。
  同理,APP流控类似。APP流控须小于用户流控。

  具体操作方法如下:

1、建立流控策略

screenshot

screenshot

  API流量控制指单位时间内的调用次数控制
  单位时间:目前支持分钟、小时、天三个粒度的流量控制。
  分钟:适合配置在调用频繁,请求量大的API上,防攻击,因为不能长时间中断调用,所以单位时间不能设置太长。
  小时、天:级别的适合配置在敏感型API上,比如发短信API,获取验证码API等,限制调用频率。

2、设置特殊流控策略

  上面的流控是针对普通用户设置的默认流控,如果还有例外的情况,我们支持给用户和APP设置特殊流控。特殊流控,主要用于对用户或APP分层,API提供者可以设置API上某个用户(或某个APP)的单独流控,可以大于或小于用户流控。
  在“流控管理”详情页面可分别添加“特殊应用”和“特殊阿里云用户”的流控。
screenshot

3、绑定API

  将策略绑定到API上,即可生效。针对不同环境的API(如测试、线上),可分别绑定不同的API策略。
screenshot
screenshot

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章