觀點 · 資訊分享

AKS 的 Azure Files NFS 共享儲存正式支援傳輸加密:StorageClass 加一行就能開,不用改應用程式

Azure Kubernetes Service 的 Azure Files NFS 磁碟區現在可以用 TLS 加密傳輸,Azure 在 7 月 17 日宣布轉為正式版。官方文件寫明要 AKS 1.33 以上,Ubuntu 20.04 與 Windows 節點目前不支援。

發布
2026-07-18
篇幅
約 4 分鐘 · 1,925 字
結構
7 節 + 3 題常見問題
標籤
#Azure#AKS#Azure Files#NFS#傳輸加密
AKS 的 Azure Files NFS 共享儲存正式支援傳輸加密:StorageClass 加一行就能開,不用改應用程式

一句話看懂:Azure 在 7 月 17 日宣布,AKS(Azure 的託管 Kubernetes)上的 Azure Files NFS 共享儲存,現在可以用 TLS 加密傳輸資料,這項功能轉為正式版,設定一行參數就能開,不用改應用程式。

AKS 的 NFS 共享儲存可加密傳輸資訊圖卡:Pod 與 NFS 儲存之間的資料改走 TLS 加密,不用改應用程式

先用白話講:傳輸加密是什麼?

想像你要把重要文件從辦公室寄到倉庫。「靜態加密」是文件放進倉庫之後鎖進保險箱;傳輸加密(Encryption in Transit,簡稱 EiT) 則是運送途中裝進上鎖的運鈔車,路上被人攔截也看不到內容。

在 Kubernetes 裡,很多個 Pod(可以想成一個個小程式)會透過 NFS(一種網路共享資料夾的協定)一起讀寫同一份資料。這段「運送」的過程,如果沒有額外加密,資料就可能在途中被人讀到。這次的更新,就是替這段路加上運鈔車。

發生什麼事

根據 Azure Updates 公告(2026-07-17):

  • AKS 現在正式支援 Azure Files NFS v4.1 磁碟區的傳輸加密,透過 Azure File CSI 驅動程式使用
  • 資料在 AKS 工作負載與 Azure Files NFS 共享之間傳輸時,會用 TLS 加密,協助滿足安全與合規要求
  • 技術上整合了 AZNFS 掛載輔助工具與 Stunnel,透過 StorageClass 設定就能開啟,不需要改應用程式
  • 在所有支援 Azure Files Premium(SSD)的 Azure 區域都能用

它是怎麼加密的?

Microsoft Learn 的文件說明:加密靠 Stunnel(開源的 TLS 包裝工具),在 NFS 用戶端與 Azure Files 之間加密 TCP 資料流,使用 AES-GCM,且不需要 Kerberos,也不用額外接 Active Directory 之類的驗證系統。

簡單說,每個儲存帳戶在節點上會有一個 Stunnel 程序,監聽本機的連接埠,再把 NFS 流量用 TLS 轉送到 Azure Files。AZNFS 套件還有一個背景工作,負責確認 Stunnel 在跑、掛掉時自動重啟,卸載後清理多餘的程序。

給開發者的技術細節

在 StorageClass 加上 encryptInTransit: "true"(以下是依官方文件改寫的範例,名稱自訂):

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: azurefile-nfs-eit
provisioner: file.csi.azure.com
allowVolumeExpansion: true
parameters:
  protocol: nfs
  skuName: PremiumV2_LRS
  encryptInTransit: "true"
  • 這個參數預設是 false,只適用 NFS 協定
  • 版本限制:微軟文件寫明要 AKS 1.33 以上,Ubuntu 20.04 與 Windows 節點目前不支援
  • 已存在的磁碟區:在 PersistentVolume 的 volumeAttributes 補上 encryptInTransit: "true" 即可
  • 官方文件還提到,NFS 的 Premium 儲存帳戶最小共享大小是 100 GiB,建 PVC 時別設太小

我的看法

對小團隊來說,Kubernetes 上的共享儲存最常見的用途是放使用者上傳的檔案、報表、備份。這些資料常含個資,客戶的資安問卷或合規稽核也常問一句「傳輸中有沒有加密」。這項功能的好處是,答案可以從「沒有」變成「有」,而且改動只是一個參數。

不過我會提醒兩件事:加密通常會帶來一些效能成本,官方文件沒有給具體數字,上線前請用自己的流量實測一次;另外它有版本與作業系統的限制,如果叢集還在 1.33 以前或用 Ubuntu 20.04 的節點,要先規劃升級。

名詞小辭典

  • AKS(Azure Kubernetes Service):微軟代管的 Kubernetes 服務,你不用自己架控制節點。
  • NFS:讓多台機器掛載同一份網路資料夾的協定,常用來在多個 Pod 之間共享檔案。
  • StorageClass:Kubernetes 裡「要哪種儲存、怎麼建」的樣板,建立磁碟區時會照它的設定做。
  • Stunnel:一個開源的 TLS 包裝工具,把原本不加密的連線包進加密通道。

資料來源

常見問題

傳輸加密(Encryption in Transit)是什麼?
資料在網路上從 A 傳到 B 的過程中加密,避免被中途攔截或竄改。跟「靜態加密」不同,靜態加密保護的是資料放在硬碟上的樣子。
要怎麼開啟?
在 StorageClass 的參數設定 protocol: nfs 與 encryptInTransit: "true";已存在的 PersistentVolume 則在 volumeAttributes 加上同樣的設定。
有什麼限制?
微軟文件目前寫的是:AKS 要 1.33 以上,Ubuntu 20.04 與 Windows 節點不支援,且只在支援 SSD Azure 檔案共用的區域可用。
LINE