觀點 · 資訊分享
AKS 掛 Azure Files 不必再塞儲存體金鑰:每個 Pod 用自己的身分,只拿得到該拿的檔案
Azure Files 的 CSI 驅動程式在 AKS 上正式支援工作負載身分:容器可以用自己的身分掛載 SMB 檔案共用,不用把整個儲存體帳號的金鑰放進叢集,權限也能細到單一應用程式。
- 發布
- 2026-08-28
- 篇幅
- 約 4 分鐘 · 1,596 字
- 結構
- 7 節 + 3 題常見問題
- 標籤

一句話看懂:AKS 裡的應用程式現在能用自己的身分掛載 Azure Files,不必把整個儲存體帳號的金鑰放進叢集,權限也能細到單一應用程式。

先用白話講:這在解決什麼問題?
想像公司有一間檔案室,裡面放著各部門的資料。過去要讓某個部門進去拿資料,常見做法是給他一把萬能鑰匙:能開檔案室,也能開所有櫃子。鑰匙要是被複製,整間檔案室就被看光了。
在雲端也是一樣。Kubernetes(AKS)裡的程式要讀寫 Azure Files(微軟的雲端共用資料夾),以前常要用儲存體帳號金鑰,那就是一把萬能鑰匙。後來可以改用掛在主機(節點)上的身分,但同一台主機上的所有程式,權限還是一樣大。
這次的更新,等於讓每個應用程式都有自己的員工證,只刷得開它該進的那個櫃子。
發生什麼事
微軟在 8 月 28 日的 Azure Updates 宣布正式推出(GA):
- AKS 上的 Azure Files CSI 驅動程式,支援用工作負載身分(Workload Identity)掛載 SMB 檔案共用
- 權限可以做到 Pod 等級的最小權限,而不是整台節點共用
- 所有同時提供 Azure Files 與 AKS 的區域都能使用
官方特別提到,這對必須遵守嚴格法規的產業很有幫助:可以清楚交代「哪個應用程式能碰哪份資料」。
跟以前比差在哪?
| 做法 | 權限掛在哪 | 風險 |
|---|---|---|
| 儲存體帳號金鑰 | 金鑰本身 | 外洩就能存取整個儲存體帳號 |
| 節點受控識別 | 整台節點 | 同節點的程式權限一樣大 |
| 工作負載身分(新) | 單一 Pod 的 ServiceAccount | 只影響那個應用程式 |
給開發者的技術細節
依 Microsoft Learn 文件,使用條件與步驟是:
- AKS 1.35.0 以上、Linux 節點
- 叢集要開啟 OIDC 簽發者(
--enable-oidc-issuer) - 給受控識別指派
Storage File Data SMB MI Admin角色 - 建立 Kubernetes ServiceAccount,再用
az identity federated-credential create綁定 - 在儲存類別(動態)或 PV(靜態)加上參數:
parameters:
mountWithWorkloadIdentityToken: "true"
clientID: "<受控識別的 client ID>"
- 靜態 PV 還要先替儲存體帳號開啟 SMB OAuth(
--enable-smb-oauth true)
我的看法
幫客戶上雲時,最常看到的壞習慣就是把儲存體金鑰寫進 Kubernetes Secret,然後所有服務共用。平常沒事,哪天某個小服務被打穿,整個儲存體帳號的資料都跟著曝光。
這次更新讓「一個應用程式一個身分、只給需要的權限」在 Azure Files 上也做得到。新專案我會直接這樣設;舊叢集如果還沒到 1.35.0,可以先把升級排進計畫,再一個服務一個服務地把金鑰拿掉。另外文件範例的掛載權限是 0777,正式環境記得依需求收緊。
名詞小辭典
- AKS:Azure Kubernetes Service,微軟代管的 Kubernetes 容器平台。
- Pod:Kubernetes 裡執行容器的最小單位,通常就是一個應用程式的一份副本。
- CSI 驅動程式:讓 Kubernetes 能接上各種儲存服務的標準外掛。
- SMB:Windows 常用的檔案共用協定,Azure Files 支援用它掛載。
資料來源
常見問題
工作負載身分是什麼?
讓 Kubernetes 裡的某個應用程式(透過 ServiceAccount)換到一個 Microsoft Entra 身分,再用這個身分去存取 Azure 資源,不用在程式或設定裡放密碼或金鑰。
以前不是已經可以不用金鑰嗎?
以前可以用受控識別掛載,但權限是掛在節點上,同一台節點的程式拿到的權限一樣大。這次改成 Pod 等級,可以只讓需要的應用程式碰得到那份檔案。
有什麼使用條件?
官方文件寫明需要 AKS 1.35.0 以上的 Linux 節點,叢集要開啟 OIDC 簽發者,並替受控識別建立同盟身分認證,再在儲存類別或 PV 設定 mountWithWorkloadIdentityToken。
接著讀
全部觀點 →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 月就停售了。閱讀 →