API網(wǎng)關(guān)策略
API網(wǎng)關(guān)通過(guò)策略的方式,為API提供靈活的控制策略和擴(kuò)展能力。
-
收起
API網(wǎng)關(guān)策略限制 收起
一個(gè)API只能綁定一個(gè)相同類(lèi)型的策略。
策略和API本身相互獨(dú)立,只有為API綁定策略后,策略才對(duì)API生效。為API綁定策略時(shí)需指定發(fā)布環(huán)境,策略只對(duì)指定環(huán)境上的API生效。
策略的綁定、解綁、更新會(huì)實(shí)時(shí)生效,不需要重新發(fā)布API。
API的下線(xiàn)操作不影響策略的綁定關(guān)系,再次發(fā)布后仍然會(huì)帶有下線(xiàn)前綁定的策略。
如果策略與API有綁定關(guān)系,則策略無(wú)法執(zhí)行刪除操作。
策略參數(shù)會(huì)明文展示,為防止信息泄露,請(qǐng)謹(jǐn)慎配置。
-
收起
API網(wǎng)關(guān)策略類(lèi)型 收起
API網(wǎng)關(guān)傳統(tǒng)策略
流量控制策略
流量控制支持從用戶(hù)、憑據(jù)和時(shí)間段等不同的維度限制對(duì)API的調(diào)用次數(shù),保護(hù)后端服務(wù)。支持按分/按秒粒度級(jí)別的流量控制。為了提供持續(xù)穩(wěn)定的服務(wù),您可以通過(guò)創(chuàng)建流控策略,針對(duì)部分API進(jìn)行流量控制。
使用限制
API添加流控策略相當(dāng)于流控策略同步綁定了API。同一個(gè)環(huán)境中,一個(gè)API只能被一個(gè)流控策略綁定,但一個(gè)流控策略可以綁定多個(gè)API。
如果API未綁定流控策略,流控限制值為實(shí)例“配置參數(shù)”中“ratelimit_api_limits”的參數(shù)運(yùn)行值。
訪問(wèn)控制策略
訪問(wèn)控制策略是API網(wǎng)關(guān)提供的API安全防護(hù)組件之一,主要用來(lái)控制訪問(wèn)API的IP地址和帳戶(hù),您可以通過(guò)設(shè)置IP地址或帳戶(hù)的黑白名單來(lái)禁止/允許某個(gè)IP地址/帳號(hào)名/帳號(hào)ID訪問(wèn)API。
訪問(wèn)控制策略和API本身是相互獨(dú)立的,只有將訪問(wèn)控制策略綁定API后,訪問(wèn)控制策略才對(duì)綁定的API生效。
使用限制
同一個(gè)API在同一個(gè)環(huán)境中只能綁定一個(gè)相同限制類(lèi)型的訪問(wèn)控制策略,一個(gè)訪問(wèn)控制策略可以綁定多個(gè)API。
2022年12月31日后創(chuàng)建的專(zhuān)享版實(shí)例支持限制調(diào)用API的帳號(hào)ID,在這之前創(chuàng)建的專(zhuān)享版實(shí)例不支持,如需使用,請(qǐng)聯(lián)系客服。
簽名秘鑰策略
簽名密鑰用于后端服務(wù)驗(yàn)證API網(wǎng)關(guān)的身份,在API網(wǎng)關(guān)請(qǐng)求后端服務(wù)時(shí),保障后端服務(wù)的安全。
簽名密鑰由一對(duì)Key和Secret組成,簽名密鑰需要綁定到API才能生效。當(dāng)簽名密鑰綁定API后,API網(wǎng)關(guān)向后端服務(wù)發(fā)送此API的請(qǐng)求時(shí),會(huì)增加相應(yīng)的簽名信息,此時(shí)需要后端服務(wù)依照同樣方式進(jìn)行簽名,通過(guò)比對(duì)簽名結(jié)果和API網(wǎng)關(guān)傳過(guò)來(lái)的Authorization頭中簽名是否一致來(lái)校驗(yàn)API的合法性。
使用限制
同一個(gè)環(huán)境中一個(gè)API只能被一個(gè)簽名密鑰綁定,一個(gè)簽名密鑰可以綁定多個(gè)API。
API網(wǎng)關(guān)插件策略
跨域資源共享策略
出于安全性考慮,瀏覽器會(huì)限制從頁(yè)面腳本內(nèi)發(fā)起的跨域請(qǐng)求,此時(shí)頁(yè)面只能訪問(wèn)當(dāng)前域的資源。CORS允許瀏覽器向跨域服務(wù)器發(fā)送XMLHttpRequest請(qǐng)求,從而實(shí)現(xiàn)跨域訪問(wèn)。更多跨域訪問(wèn)的說(shuō)明請(qǐng)參見(jiàn)訪問(wèn)控制策略說(shuō)明。
跨域資源共享策略為跨域訪問(wèn)提供指定預(yù)檢請(qǐng)求頭和響應(yīng)頭、自動(dòng)創(chuàng)建跨域預(yù)檢請(qǐng)求API的擴(kuò)展能力,可快速、靈活的實(shí)現(xiàn)API的跨域訪問(wèn)。
使用限制
同一API分組下,相同請(qǐng)求路徑的所有API,只能綁定同一個(gè)跨域資源共享策略。
如果API開(kāi)啟了“支持CORS”功能的同時(shí),也綁定了跨域資源共享策略,則以綁定的策略為準(zhǔn)。
如果某個(gè)請(qǐng)求路徑下有OPTIONS方法的API,則該請(qǐng)求路徑下的所有API均不允許綁定跨域資源共享策略。
為API綁定策略時(shí),API的請(qǐng)求方法必須為allow_methods中允許的請(qǐng)求方法。
流量控制2.0策略
流量控制2.0策略可以限制單位時(shí)間內(nèi)API的被調(diào)用次數(shù),支持參數(shù)流控、基礎(chǔ)流控和基于基礎(chǔ)流控的特殊流控。
基礎(chǔ)流控
可以對(duì)API、用戶(hù)、憑據(jù)、源IP進(jìn)行多維度流控,與已有的流量控制策略說(shuō)明功能一致但不兼容。
參數(shù)流控
支持根據(jù)Header、Path、Method、Query以及系統(tǒng)變量中的參數(shù)值進(jìn)行自定義流控。
基于基礎(chǔ)流控的特殊流控
對(duì)某個(gè)憑據(jù)或租戶(hù)進(jìn)行特定的流控。
使用限制
如果一個(gè)API綁定流量控制后,繼續(xù)綁定參數(shù)控制策略,流量控制會(huì)失效。
參數(shù)流控的規(guī)則最多可定義100個(gè)。
策略?xún)?nèi)容最大長(zhǎng)度65535。
斷路器策略
斷路器是API網(wǎng)關(guān)在后端服務(wù)出現(xiàn)性能問(wèn)題時(shí)保護(hù)系統(tǒng)的內(nèi)置機(jī)制。當(dāng)API的后端服務(wù)出現(xiàn)連續(xù)N次超時(shí)或者時(shí)延較高的情況下,會(huì)觸發(fā)斷路器的降級(jí)機(jī)制,向API調(diào)用方返回固定錯(cuò)誤或者將請(qǐng)求轉(zhuǎn)發(fā)到指定的降級(jí)后端。當(dāng)后端服務(wù)恢復(fù)正常后,斷路器關(guān)閉,請(qǐng)求恢復(fù)正常。
HTTP響應(yīng)頭管理策略
API響應(yīng)是指API網(wǎng)關(guān)返回客戶(hù)端的響應(yīng),HTTP響應(yīng)頭是API響應(yīng)中的一部分。您可以自定義HTTP響應(yīng)頭,在返回的API響應(yīng)中指定您配置的響應(yīng)頭。
使用限制
無(wú)法修改API網(wǎng)關(guān)增加的系統(tǒng)響應(yīng)頭(x-apig-*,x-request-id等),包括API網(wǎng)關(guān)提供的CORS功能增加的響應(yīng)頭。
Kafka日志推送策略
支持收集已開(kāi)放API的調(diào)用日志信息。Kafka日志推送策略提供了把API的詳細(xì)調(diào)用日志推送到Kafka的能力,方便用戶(hù)獲取API的調(diào)用日志信息。
使用限制
同一個(gè)APIG實(shí)例內(nèi)最多可創(chuàng)建5個(gè)Kafka日志推送策略。
API綁定Kafka日志推送策略后,性能將損耗30%。