搭配 SAS 使用 Azure 內容傳遞網路
重要
Azure CDN Standard from Microsoft (classic) 將於 2027 年 9 月 30 日淘汰。 為了避免任何服務中斷,請務必在 2027 年 9 月 30 日之前,將 Azure CDN 標準從 Microsoft (傳統) 配置文件 移轉至 Azure Front Door Standard 或進階層。 如需詳細資訊,請參閱 Azure CDN Standard from Microsoft (classic) 淘汰。
來自 Edgio 的 Azure CDN 於 2025 年 1 月 15 日淘汰。 如需詳細資訊,請參閱來自Edgio的 Azure CDN 淘汰常見問題。
當您設定儲存體帳戶供「Azure 內容傳遞網路」用來快取內容時,根據預設,所有知道您儲存體容器 URL 的人都能存取您已上傳的檔案。 若要保護您儲存體帳戶中的檔案,您可以將儲存體容器的存取權從公用改設定成私用。 不過,如果您這樣做,則沒有人能夠存取您的檔案。
如果您想要授與有限的私人儲存體容器存取權,可以使用 Azure 儲存體帳戶的「共用存取簽章」(SAS) 功能。 SAS 是一個 URI,可在不公開您帳戶金鑰的情況下,授與對「Azure 儲存體」資源的有限存取權限。 針對您不信任其使用您儲存體帳戶金鑰但又想要將特定儲存體帳戶資源存取權委派給它們的用戶端,您可以將 SAS 提供給它們。 藉由將共用存取簽章 URI 提供給這些用戶端,您會授與它們一段指定時間的資源存取權。
使用 SAS 時,您可以定義各種 Blob 存取參數,例如開始時間和到期時間、權限 (讀取/寫入) 及 IP 範圍。 本文說明如何將 SAS 與 Azure 內容傳遞網路搭配使用。 如需有關 SAS 的詳細資訊 (包括如何建立 SAS 及其參數選項),請參閱使用共用存取簽章 (SAS)。
設定 Azure 內容傳遞網路以使用儲存體 SAS
以下是搭配 Azure 內容傳遞網路使用 SAS 時的兩個建議選項。 所有選項皆假設您已經建立一個可運作的 SAS (請參閱先決條件)。
必要條件
若要開始,請建立一個儲存體帳戶,然後為您的資產生 SAS。 您可以產生兩種類型的預存存取簽章:服務 SAS 或帳戶 SAS。 如需詳細資訊,請參閱共用存取簽章的類型。
產生 SAS 權杖之後,您可以將 ?sv=<SAS token>
附加至您的 URL 來存取 Blob 儲存體檔案。 此 URL 的格式如下:
https://<account name>.blob.core.windows.net/<container>/<file>?sv=<SAS token>
例如:
https://democdnstorage1.blob.core.windows.net/container1/demo.jpg?sv=2017-07-29&ss=b&srt=co&sp=r&se=2038-01-02T21:30:49Z&st=2018-01-02T13:30:49Z&spr=https&sig=QehoetQFWUEd1lhU5iOMGrHBmE727xYAbKJl5ohSiWI%3D
如需有關設定參數的詳細資訊,請參閱 SAS 參數考量和共用存取簽章參數。
使用 SAS 搭配從 Azure 內容傳遞網路 傳遞至 Blob 記憶體
此選項是最簡單的選項,僅使用從 Azure 內容傳遞網路傳遞至原始伺服器的單一 SAS 權杖。
選取一個端點、選取 [快取規則],然後從 [查詢字串快取] 清單中,選取 [快取所有不重複的 URL]。
在儲存體帳戶上設定 SAS 之後,您必須搭配內容傳遞網路端點和原始伺服器 URL 來使用 SAS 權杖以存取檔案。
產生的內容傳遞網路端點 URL 會具有以下格式:
https://<endpoint hostname>.azureedge.net/<container>/<file>?sv=<SAS token>
例如:
https://demoendpoint.azureedge.net/container1/demo.jpg?sv=2017-07-29&ss=b&srt=c&sp=r&se=2027-12-19T17:35:58Z&st=2017-12-19T09:35:58Z&spr=https&sig=kquaXsAuCLXomN7R00b8CYM13UpDbAHcsRfGOW3Du1M%3D
使用快取規則或在原始伺服器新增
Cache-Control
標頭來微調快取持續時間。 由於 Azure 內容傳遞網路會將 SAS 權杖視為純查詢字串,因此最佳做法是,您應該設定一個在 SAS 到期時間或此時間之前到期的快取持續時間。 否則,如果檔案的快取持續時間比 SAS 的有效期長,便可能在過了 SAS 到期時間之後,從 Azure 內容傳遞網路原始伺服器存取該檔案。 如果發生這種情況,而您想要讓已快取的檔案變成無法存取,就必須對該檔案執行清除作業,以將它從快取中清除。 如需有關在 Azure 內容傳遞網路上設定快取持續時間的資訊,請參閱使用快取規則控制 Azure 內容傳遞網路快取行為。
SAS 參數考量
由於 Azure 內容傳遞網路看不到 SAS 參數,因此 Azure 內容傳遞網路無法根據這些參數來變更其傳遞行為。 所定義的參數限制僅適用於 Azure 內容傳遞網路對原始伺服器提出的要求,而不適用於用戶端對 Azure 內容傳遞網路提出的要求。 當您設定 SAS 參數時,請務必考量這項區別。
SAS 參數名稱 | 描述 |
---|---|
開始 | Azure 內容傳遞網路可以開始存取 Blob 檔案的時間。 由於時鐘誤差 (當時鐘訊號針對不同元件在不同時間抵達時) 的緣故,因此如果您想要讓資產立即可供使用,請選擇提早 15 分鐘的時間。 |
結束 | 之後 Azure 內容傳遞網路即無法再存取 Blob 檔案的時間。 Azure 內容傳遞網路上先前快取的檔案仍然可供存取。 若要控制檔案到期時間,請在 Azure 內容傳遞網路安全性權杖上設定適當的到期時間或清除資產。 |
允許的 IP 位址 | 選擇性。 |
允許的通訊協定 | 針對使用帳戶 SAS 來提出的要求所允許的通訊協定。 建議使用 HTTPS 設定。 |
下一步
如需 SAS 的詳細資訊,請參閱下列文章:
如需設定權杖驗證的詳細資訊,請參閱使用權杖驗證來保護 Azure 內容傳遞網路資產。