秒懂邊緣雲 | CDN基礎入門:訪問控制及頻寬閾值

邊緣雲小編發表於2022-09-05

作者:辰舒


在透過CDN對外提供服務時,為了保障資源的安全性,我們建議對請求進行訪問許可權控制,避免被惡意使用者請求,提升業務在CDN上的安全性。


準備工作



1.已經新增完成的CDN域名

2.阿里雲CDN控制檯。


基礎介紹


在使用CDN前,一般鑑權和響應均在源站完成。如下圖,當終端使用者對資源發起請求時,請求到達源站先校驗是否符合許可權控制規則,如果鑑權透過,源站再響應終端使用者所請求的內容。


image


當業務使用CDN後,可能面臨兩個問題:

  1. 如果CDN在命中快取時直接返回內容給終端使用者,無需回源站,那此時源站的鑑權規則不會被觸發。
  2. 如果鑑權token引數透過請求的query攜帶(例如: ),由於鑑權引數值頻繁變化,此時,CDN視為獨立請求回源站進行鑑權,每次都無法共享快取,導致無法享受正常快取加速的效果。


那這兩個問題如何解決呢?我們需要鑑權和響應拆分為兩個環節去處理,其中的鑑權動作拆分到CDN節點執行,響應由源站和CDN節點共同完成。

如下圖,當終端使用者對資源發起請求時,請求到達CDN節點,由CDN節點校驗是否符合許可權控制規則。如果鑑權透過,CDN節點再執行內容響應動作:

  • 節點本地已有快取時,CDN節點將直接響應給使用者,無需源站處理;
  • 節點本地無快取時,CDN節點將逐級回源拉取,直至回到源站獲取。


image


瞭解鑑權功能的實現位置後,我們再一起學習CDN已經開放的鑑權功能,概覽資訊參考下表,常見功能將在下文介紹,您可以根據需求選擇性閱讀。在配置時,也可以透過基礎防護組合進階防護的方式,共同完成加強防護等級的目的。 針對常用的基礎防護和進階防護,下文將為您具體介紹其工作邏輯及配置方法。如果您需要使用特殊防護中的功能,可以在控制檯申請開通,參考產品文件進行配置。


類別

功能

效果

優點

缺點

安全指數

基礎防護

Referer防盜鏈

透過配置訪問的

Referer黑名單和白名單來實現對訪客身份的識別和過濾

配置簡單,定向防護

過濾方式單一,可能被偽造

☆☆

IP黑白名單

透過配置IP黑名單和白名單來實現對訪客身份的識別和過濾

配置簡單,定向防護

過濾方式單一,可能被偽造

☆☆

UA黑白名單

透過配置

UserAgent黑名單和白名單來實現對訪客身份的識別和過濾

配置簡單,定向防護

過濾方式單一,可能被偽造

☆☆

進階防護

URL鑑權

透過配置URL鑑權功能保護使用者站點的資源不被非法站點下載盜用

安全性相對簡單配置功能較高,無法偽造

被抓取URL後,在有效期內仍有遭受攻擊可能。

★★★

遠端鑑權

透過配置遠端鑑權功能,對傳送到

CDN邊緣節點上的使用者請求進行校驗,避免CDN節點上的資源被非授權使用者訪問。

鑑權邏輯可根據業務需求自定義規則,調整便捷度高,安全度可控

源站需要部署鑑權伺服器,客戶需要有開發能力


★★★

特殊防護

頻次控制

遭受惡意CC攻擊導致響應緩慢,可透過頻次控制功能攔截惡意流量,阻斷訪問該網站的所有請求,提升網站的安全性。

專注對CC的防護。

需要申請開通

★★

區域封禁

一鍵阻斷來自指定區域的訪問請求,解決部分地區高發的惡意請求問題。

按照區域劃分,攔截面較大

需要申請開通

★★

CDN WAF

結合邊緣Web應用防火牆WAF能力,將業務流量進行惡意特徵識別及防護,將正常、安全的流量回源到

伺服器

對請求行為有分析識別能力,阻斷常規攻擊注入手段。

增值服務

★★★



基礎防護


配置入口: 登入 ,在左側導航欄,單擊 域名管理 ,單擊目標域名對應的 管理 ,單擊 訪問控制 ,在 Referer防盜鏈/IP黑白名單/UA黑白名單 區域,單擊 修改配置。


Referer防盜鏈(推薦)


基於HTTP協議支援的Referer機制,透過請求header中攜帶的Referer頭部跟蹤來源,對來源進行識別和判斷。

以下圖為例,該請求發出時,瀏覽器自動攜帶了請求頭referer:,代表該請求來源為阿里雲CDN控制檯域名,被請求域名可以透過referer防盜鏈控制放行或者拒絕該referer的請求。



image


image


  1. 配置時,支援黑名單機制或白名單機制:
  • 黑名單:僅黑名單內域名禁止訪問該資源
  • 白名單:僅允許白名單內域名訪問該資源
  1. 配置需要放行/限制的域名即可,支援萬用字元*匹配多個子域名。
  2. 允許透過位址列直接訪問資源URL:

在瀏覽器位址列中直接輸入URL地址進行訪問時,其來源為空,因此請求頭部中預設不會攜帶referer,如允許此類不攜帶referer訪問請求,建議勾選開啟。如果該域名下資源的所有請求都會攜帶referer,可以保持關閉。


IP黑白名單


透過對客戶端真實IP或客戶端建聯IP進行限制,實現僅部分IP使用者可訪問,或特定使用者IP不允許訪問的需求。 支援輸入IP段,限制某個地址段使用者的訪問。

  • 客戶端真實IP: 使用者請求中x-forwarded-for請求頭攜帶的第一個IP
  • 客戶端建聯IP: 客戶端與CDN節點之間建連使用的IP

預設情況下,僅校驗客戶端真實IP,如需校驗建聯IP需透過提交工單申請。配置時,支援黑名單機制或白名單機制:

  • 黑名單:僅黑名單內IP禁止訪問該域名
  • 白名單:僅白名單內IP允許訪問該域名


UA黑白名單


User-Agent是HTTP請求頭的一部分,包含使用者訪問時所使用的作業系統及版本、瀏覽器型別及版本等標識資訊。

配置UA黑白名單後,使用者請求資源時,CDN將獲取使用者請求時HTTP請求頭中的User-Agent欄位,同配置中的黑/白名單進行匹配。

以下圖為例,該請求發出時,瀏覽器自動攜帶了請求頭

user-agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36

代表該請求來源的客戶端資訊,被請求域名可以透過user-agnet黑白名單控制放行或者拒絕該UA的請求。

一般適用於限制特定UA的終端請求,或對當客戶端攜帶特定UA才允許放行的場景適用。


image

image


配置時,支援黑白名單兩種防護方式,配置規則時支援萬用字元*匹配,多個值時使用 | 分割,例如 *curl*|*IE*|*chrome*|*firefox*。

如果需要對空UA(不攜帶UA 或 UA值為空)限制,規則的值可以配置用 ^$ 表示。


進階防護


如果您的業務對URL資源安全性要求較高,擔心基礎防護無法滿足安全性需求,可以瞭解URL鑑權和遠端鑑權功能,兩者均能實現較高的安全防護。

配置入口: 登入 ,在左側導航欄,單擊 域名管理 ,單擊目標域名對應的 管理 ,單擊 訪問控制 ,在 URL鑑權/遠端鑑權 區域,單擊 修改配置。


URL鑑權(推薦)


URL鑑權功能透過阿里雲CDN加速節點與客戶資源站點配合,形成了更為安全可靠的源站資源防盜方法。主要由以下幾個部分配合:

  • 源站應用伺服器:根據鑑權URL生成規則(包括鑑權演算法、金鑰)生成鑑權URL返回給客戶端。
  • 客戶端:發起資源請求,併傳送鑑權URL給CDN節點進行驗證。
  • CDN節點:對鑑權URL中的鑑權資訊(鑑權字串、時間戳等)進行驗證。


image


開啟鑑權前訪問URL:

開啟鑑權後訪問URL: (A類鑑權為例)

當使用者攜帶的時間戳或鑑權憑證錯誤時,訪問到達CDN節點後將被拒絕,返回狀態碼403。


image


URL鑑權支援三種鑑權的籤算演算法:

  • A方式

  • B方式

  • C方式

格式1:

格式2:

三種方式在安全等級上一致,但URL的構造形式有所區別,如果不需要混淆URL,選擇方式A即可,如果有混淆URL的需求,可以選擇方式B或者C,演算法詳情請參考產品文件說明。


注意:

  1. 如果您是線上域名,需要確保業務已經攜帶正確鑑權引數後,再點選確定開啟功能,防止開啟後因鑑權失敗導致業務無法訪問。
  2. 如果您已關閉URL鑑權,請刪除業務中攜帶的鑑權引數,或,配置忽略引數快取,避免業務因鑑權引數無法命中快取(開啟鑑權時自動忽略鑑權引數快取)。


遠端鑑權


如果您覺得URL鑑權的演算法模式單一,無法滿足業務的定製化鑑權訴求,您也可以透過遠端鑑權,透過自行維護的鑑權伺服器用於自主管理。


image


① 使用者發起的資源訪問請求到達CDN節點,請求中攜帶了鑑權引數。

② CDN節點收到使用者請求,將使用者請求直接轉發(或者經過指定的規則處理後轉發)給鑑權伺服器。

③ 鑑權伺服器根據使用者請求中攜帶的鑑權引數給出鑑權結果,並返回給CDN節點。

④ CDN節點根據鑑權伺服器返回的鑑權結果執行對應的動作,並返回對應的資料給使用者。


鑑權結果舉例如下:

舉例1:鑑權成功,CDN節點與使用者開始正常的快取資料訪問互動。

舉例2:鑑權失敗,CDN節點返回404狀態碼給使用者。(失敗狀態碼可自定義)

舉例3:鑑權失敗,CDN節點對使用者訪問進行限速。

舉例4:鑑權超時,CDN節點執行鑑權超時的預設動作,即放行或者拒絕使用者請求。


image image image


在配置遠端鑑權時,您需要指定以下資訊

  1. 鑑權伺服器的地址,CDN轉發鑑權請求時所使用的請求方法,以及是否需求針對特定檔案型別鑑權。
  2. 請求鑑權伺服器時,訪問URL中的請求引數是否需要全部保留轉發。
  3. 鑑權伺服器返回的狀態碼,具體如何判斷鑑權成功或失敗。
  4. 如果鑑權伺服器返回鑑權失敗,CDN需要返回什麼狀態碼給客戶端。
  5. 鑑權伺服器多久未響應時判定為超時,超時後應判斷本次鑑權透過還是拒絕。


頻寬上限閾值


如果您擔心存在突發流量導致的損失,可以為域名設定封頂頻寬。頻寬封頂,即透過設定頻寬上限,來控制頻寬用量。當指定加速域名在統計週期(1分鐘)內產生的平均頻寬超出預設上限,CDN將停止為該域名提供加速服務,且該域名會被解析到無效地址 offline.***.com ,無法被繼續訪問。

注意:觸發封頂後業務將無法繼續被訪問,非限速策略。

配置入口: 登入 ,在左側導航欄,單擊 域名管理 ,單擊目標域名對應的 管理 ,單擊 流量限制 ,單擊 修改配置。


image


  • 域名頻寬小於上限 :域名正常使用CDN加速服務。
  • 突發流量,域名頻寬達到或超過頻寬上限 :域名將會自動下線,並透過CNAME域名被解析到無效地址 offline.***.com ,無法被繼續訪問。
  • 突發流量恢復正常,域名頻寬重新小於頻寬上限 :CDN預設不會自動恢復加速服務,您需要在CDN控制檯手動啟用該域名來恢復CDN加速服務。如果您需要恢復業務,可以在 域名管理 頁面,選中該域名,單擊 啟用 ,重新啟用該域名。

小提示:

  • 開啟頻寬封頂功能後,您的域名會受到頻寬封頂的限制而下線。為了不影響您的域名業務,建議您合理評估,謹慎設定您的頻寬峰值。
  • 由於頻寬的監控資料存在一定的延遲,因此域名將在頻寬達到峰值後10分鐘左右被下線。


結束


至此,訪問控制及頻寬閾值的介紹及使用部分已經結束,在下個章節中,我們會繼續學習CDN監控與計量相關內容,主要包含內容有:

  • 如何檢視邊緣訪問/回源的狀態碼分佈、頻寬、流量等資訊。
  • 如何分割槽域/運營商檢視業務頻寬分佈。
  • 如何配置CDN的業務監控告警規則。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70018969/viewspace-2913390/,如需轉載,請註明出處,否則將追究法律責任。

相關文章