API网关策略
API网关通过策略的方式,为API提供灵活的控制策略和扩展能力。
API网关传统策略
流量控制策略
流量控制支持从用户、凭据和时间段等不同的维度限制对API的调用次数,保护后端服务。支持按分/按秒粒度级别的流量控制。为了提供持续稳定的服务,您可以通过创建流控策略,针对部分API进行流量控制。
使用限制
API添加流控策略相当于流控策略同步绑定了API。同一个环境中,一个API只能被一个流控策略绑定,但一个流控策略可以绑定多个API。
如果API未绑定流控策略,流控限制值为实例“配置参数”中“ratelimit_api_limits”的参数运行值。
访问控制策略
访问控制策略是API网关提供的API安全防护组件之一,主要用来控制访问API的IP地址和帐户,您可以通过设置IP地址或帐户的黑白名单来禁止/允许某个IP地址/帐号名/帐号ID访问API。
访问控制策略和API本身是相互独立的,只有将访问控制策略绑定API后,访问控制策略才对绑定的API生效。
使用限制
同一个API在同一个环境中只能绑定一个相同限制类型的访问控制策略,一个访问控制策略可以绑定多个API。
2022年12月31日后创建的专享版实例支持限制调用API的帐号ID,在这之前创建的专享版实例不支持,如需使用,请联系客服。
签名秘钥策略
签名密钥用于后端服务验证API网关的身份,在API网关请求后端服务时,保障后端服务的安全。
签名密钥由一对Key和Secret组成,签名密钥需要绑定到API才能生效。当签名密钥绑定API后,API网关向后端服务发送此API的请求时,会增加相应的签名信息,此时需要后端服务依照同样方式进行签名,通过比对签名结果和API网关传过来的Authorization头中签名是否一致来校验API的合法性。
使用限制
同一个环境中一个API只能被一个签名密钥绑定,一个签名密钥可以绑定多个API。
API网关插件策略
跨域资源共享策略
出于安全性考虑,浏览器会限制从页面脚本内发起的跨域请求,此时页面只能访问当前域的资源。CORS允许浏览器向跨域服务器发送XMLHttpRequest请求,从而实现跨域访问。更多跨域访问的说明请参见访问控制策略说明。
跨域资源共享策略为跨域访问提供指定预检请求头和响应头、自动创建跨域预检请求API的扩展能力,可快速、灵活的实现API的跨域访问。
使用限制
同一API分组下,相同请求路径的所有API,只能绑定同一个跨域资源共享策略。
如果API开启了“支持CORS”功能的同时,也绑定了跨域资源共享策略,则以绑定的策略为准。
如果某个请求路径下有OPTIONS方法的API,则该请求路径下的所有API均不允许绑定跨域资源共享策略。
为API绑定策略时,API的请求方法必须为allow_methods中允许的请求方法。
流量控制2.0策略
流量控制2.0策略可以限制单位时间内API的被调用次数,支持参数流控、基础流控和基于基础流控的特殊流控。
基础流控
可以对API、用户、凭据、源IP进行多维度流控,与已有的流量控制策略说明功能一致但不兼容。
参数流控
支持根据Header、Path、Method、Query以及系统变量中的参数值进行自定义流控。
基于基础流控的特殊流控
对某个凭据或租户进行特定的流控。
使用限制
如果一个API绑定流量控制后,继续绑定参数控制策略,流量控制会失效。
参数流控的规则最多可定义100个。
策略内容最大长度65535。
断路器策略
断路器是API网关在后端服务出现性能问题时保护系统的内置机制。当API的后端服务出现连续N次超时或者时延较高的情况下,会触发断路器的降级机制,向API调用方返回固定错误或者将请求转发到指定的降级后端。当后端服务恢复正常后,断路器关闭,请求恢复正常。
HTTP响应头管理策略
API响应是指API网关返回客户端的响应,HTTP响应头是API响应中的一部分。您可以自定义HTTP响应头,在返回的API响应中指定您配置的响应头。
使用限制
无法修改API网关增加的系统响应头(x-apig-*,x-request-id等),包括API网关提供的CORS功能增加的响应头。
Kafka日志推送策略
支持收集已开放API的调用日志信息。Kafka日志推送策略提供了把API的详细调用日志推送到Kafka的能力,方便用户获取API的调用日志信息。
使用限制
同一个APIG实例内最多可创建5个Kafka日志推送策略。
API绑定Kafka日志推送策略后,性能将损耗30%。