觀點 · 資訊分享
Azure Storage 的 SAS 連結可以綁定使用者了:就算連結外流,沒登入指定帳號也打不開
Azure Storage 的「使用者綁定使用者委派 SAS」正式上線:分享連結時指定 Entra ID 身分,只有通過登入的那個人能用,不再是誰拿到連結誰就能存取。不另外收費,所有公有區域都能用。
- 發布
- 2026-09-09
- 篇幅
- 約 4 分鐘 · 1,912 字
- 結構
- 7 節 + 4 題常見問題
- 標籤

一句話看懂:Azure Storage 的 SAS 連結現在可以綁定指定的 Entra ID 使用者,只有通過登入的那個人能用,連結就算被轉傳出去,別人也無法直接拿來存取。

先用白話講:SAS 是什麼?
想像你要讓朋友進你家的儲藏室拿東西,不想把家裡鑰匙交給他,所以請管理員開一張「限時進入券」:只能進這間儲藏室、只能用到明天。這張券就是 SAS(共用存取簽章)。
問題是,這種券通常誰拿到都能用,就像電影票沒有實名:朋友把券貼在群組裡,群組裡所有人都進得來。
這次微軟推出的使用者綁定版本,等於把票改成實名制:開票時就寫上「只限某位 Entra ID 使用者」,進門時還要出示身分證明,其他人拿到券也進不去。
發生什麼事
微軟在 9 月 9 日宣布「使用者綁定使用者委派 SAS」正式上線:
- 是原有使用者委派 SAS 的延伸,後者已支援 Blob、檔案、資料表與佇列
- 使用者委派 SAS 本身以 Entra ID 與 RBAC 產生,可追溯到產生它的人,有效期最長 7 天
- 新版多了一道限制:產生時指定終端使用者的 Entra 身分,使用時對方要通過 Entra 驗證
- 官方說它比帳戶 SAS、服務 SAS 與一般使用者委派 SAS 更安全
- 所有公有區域都能用,不另外收費,只依儲存體帳戶類型收一般的交易費
怎麼開始用?
依官方部落格的步驟:
- 確認產生者有正確的 RBAC 角色:對應服務的 Data Contributor 與 Delegator
- 取得使用者委派金鑰
- 向終端使用者取得他的 OAuth 物件 ID 與租用戶 ID
- 照一般使用者委派 SAS 的步驟產生權杖,只是要多指定終端使用者(跨租用戶時也要指定租用戶)
- 把權杖交給要使用的應用程式或使用者,官方建議在應用程式之間自動傳遞,或透過 Key Vault 分享
| 服務 | 需要的角色 |
|---|---|
| Blob | Storage Blob Data Contributor、Storage Blob Delegator |
| 檔案 | Storage Files Data Contributor、Storage Files Delegator |
| 資料表 | Storage Table Data Contributor、Storage Table Delegator |
| 佇列 | Storage Queue Data Contributor、Storage Queue Delegator |
給開發者的技術細節
- 適用範圍:所有公有區域的 GPv2 儲存體帳戶,可透過 REST API、SDK、PowerShell、CLI 與入口網站使用
- 跨租用戶:終端使用者在另一個租用戶時,必須在儲存體帳戶開啟
allowCrossTenantDelegationSas;不跨租用戶就保持關閉 - 使用方式:因為對方要先登入 Entra,它比較適合組織內部或 B2B 分享,不適合直接貼在公開網頁給匿名訪客
我的看法
接案時常遇到「讓客戶下載報表、上傳檔案」這類需求,用 SAS 連結最方便,但風險也很明顯:連結被轉傳或貼到不該貼的地方,等於權限也被轉傳了。以前只能靠縮短有效期與縮小權限來降低風險,現在多了一個選擇:連結只給特定的人用。
不過它有前提:對方要有 Entra ID 帳號。所以我的想法是,企業內部系統、B2B 合作這種有明確帳號體系的場景,可以優先考慮;對外公開、一般使用者的下載,仍然要靠短效期、最小權限,以及盡量不要用 SAS 當成唯一防線。
名詞小辭典
- SAS(Shared Access Signature):一段含簽章的權杖,讓持有者在限定的範圍與時間裡存取儲存體資源。
- Entra ID:微軟的身分服務,以前叫 Azure AD,用來管理帳號與登入。
- RBAC:角色型存取控制,用「角色」來決定誰能做什麼事。
- 租用戶(Tenant):一個組織在 Entra ID 裡的獨立身分環境。
資料來源
常見問題
SAS 是什麼?
SAS(共用存取簽章)是一段特殊的連結權杖,讓別人在限定時間與限定範圍裡存取你的 Azure 儲存體資源,而不用把帳戶金鑰交出去。
跟以前的使用者委派 SAS 有什麼不同?
使用者委派 SAS 以 Entra ID 與 RBAC 產生,可追溯到產生它的人,最長 7 天。新的「使用者綁定」版本更進一步:產生時指定終端使用者的 Entra 身分,只有這位使用者通過驗證才能用。
對方在別的組織也能用嗎?
可以。終端使用者可以和你在同一個租用戶,也可以在不同租用戶。如果是跨租用戶,必須在儲存體帳戶開啟 allowCrossTenantDelegationSas 設定;不跨租用戶就維持關閉。
產生時需要什麼權限?
產生委派金鑰的人需要對應服務的 Data Contributor 與 Delegator 角色,例如 Blob 需要 Storage Blob Data Contributor 與 Storage Blob Delegator。
接著讀
全部觀點 →Azure 擴展集「可用區自動平衡」正式上線:VM 擠在同一區,系統會一台一台幫你搬平Azure 虛擬機器擴展集的可用區自動平衡正式 GA:發現 VM 偏向某個可用區時,會先在 VM 最少的區建新機、確認健康後才刪掉多的那台,一次只搬一台。閱讀 →Azure 應用程式閘道的 WAF 開始檢查 IPv6 流量:雙協定網站不用再留一扇沒鎖的門Azure Application Gateway 的網頁應用程式防火牆(WAF)推出 IPv6 公開預覽,受管規則、自訂規則與診斷紀錄都能套用到 IPv6 流量。同時支援 IPv4 與 IPv6 的網站,終於可以用同一套規則保護兩邊。閱讀 →Azure 宣布 Dv3、Ev3 系列虛擬機 2029 年退休:還有三年,但預留執行個體已經買不到微軟宣布 Dv3、Dsv3、Ev3、Esv3 四個老牌虛擬機系列將在 2029 年 11 月 15 日退休,到期沒搬走的機器可能被停機甚至刪除。時間看起來很長,但一年、三年期預留執行個體早在今年 7 月就停售了。閱讀 →