共用方式為


Azure 檔案儲存體的網路功能考量

您可以透過共用網際網路可存取的端點、或網路上一或多個私人端點、透過 Azure 檔案同步快取內部部署 Azure 檔案共用 (僅限 SMB 檔案共用) 來存取 Azure 檔案共用。 本文著重於如何設定 Azure 檔案服務,以透過公用和/或私人端點直接存取。 若要瞭解如何使用 Azure 檔案同步快取內部部署的 Azure 檔案共用,請參閱 Azure 檔案同步簡介

建議您先閱讀 規劃 Azure 檔案服務部署, 再閱讀本指南。

直接存取 Azure 檔案共用通常需要對網路進行額外思考:

  • SMB 檔案共用會透過埠 445 進行通訊,許多組織和因特網服務提供者 (ISP) 會封鎖輸出 (因特網) 流量。 此操作源自有關已淘汰及不建議在網際網路上使用的SMB協議版本的舊版安全性指南。 雖然SMB 3.x是因特網安全的通訊協定,但可能無法變更組織或ISP原則。 因此,裝載 SMB 檔案共用通常需要進行額外的網路設定才能在 Azure 外部使用。

  • NFS 檔案共用依賴網路層級驗證,因此只能透過受限制的網路存取。 使用 NFS 檔案共用一律會需要某種層級的網路設定。

為 Azure 檔案記憶體設定公用和私人端點是在 Azure 檔案記憶體帳戶的頂層管理物件上完成。 儲存器帳戶是一種管理建構,代表您可以部署多個 Azure 檔案共用的共用記憶體集區,以及其他 Azure 記憶體服務的記憶體資源,例如 Blob 容器或佇列。

這段影片示範如何以五個簡單的步驟,安全地直接將 Azure 檔案共用公開給資訊工作者和應用程式。 下列各節提供影片中所參考文件的連結和其他內容。 請注意,Azure Active Directory 現已更名為 Microsoft Entra ID。 如需詳細資訊,請參閱 Azure AD 的新名稱

適用對象

檔案共用類型 SMB NFS
標準檔案共用 (GPv2)、LRS/ZRS 是的 否
標準檔案共用 (GPv2)、GRS/GZRS 是的 否
進階檔案共用 (FileStorage)、LRS/ZRS 是的 是的

安全傳輸

根據預設,無論數據是透過公用或私人端點存取,Azure 記憶體帳戶都需要安全傳輸。 針對 Azure Files,所有通訊協定存取模式,包括 SMB、NFS 和 FileREST,都會強制執行 安全傳輸必要 設定,以保護儲存在 Azure 檔案分享上的資料。 您可以停用 [安全傳輸必要 ] 設定,以允許未加密的流量。

SMB、NFS 和 FileREST 通訊協定在 安全傳輸所需 設定方面的行為稍有不同:

  • 在儲存帳戶上啟用 安全傳輸時,該儲存帳戶中的所有SMB檔案共用都需要使用SMB 3.x通訊協定與AES-128-CCM、AES-128-GCM或AES-256-GCM加密演算法,具體取決於SMB用戶端與Azure檔案服務之間的加密協商需求。 您可以透過 SMB安全性設定來切換允許的SMB加密演算法。 停用 安全傳輸所需的 設定可啟用SMB 2.1和SMB 3.x掛接,而不需加密。

  • NFS Azure 檔案共用會使用 AZNFS 公用程式套件,藉由在用戶端上安裝和設定 Stunnel (開放原始碼 TLS 包裝函式)來簡化加密掛接。 請參閱 針對 NFS Azure 檔案共用的傳輸加密技術

  • 需要安全傳輸時,FileREST 通訊協定只能與 HTTPS 搭配使用。

備註

用戶端與 Azure 記憶體帳戶之間的通訊會使用傳輸層安全性 (TLS) 加密。 Azure 檔案服務依賴的是 Windows 實作的 SSL,而非以 OpenSSL 為基礎的,因此不會暴露於 OpenSSL 相關弱點。 想要在相同記憶體帳戶上維持 TLS 和非 TLS 連線之間的彈性的使用者,應停用 所需的安全傳輸

公用端點

記憶體帳戶內 Azure 檔案共用的公用端點是因特網公開的端點。 公用端點是記憶體帳戶的預設端點,不過,如有需要,則可以停用它。

SMB、NFS 和 FileREST 通訊協定都可以使用公用端點。 不過,每個項目都有稍微不同的存取條件。

  • 具有 SMB 3.x 加密的 SMB 檔案共用可透過儲存體帳戶的公用端點從全球各地存取。 這表示已驗證的要求,例如使用者登入身分識別授權的要求,可以從 Azure 區域內外安全地產生。 如果需要不使用加密的SMB 2.1或SMB 3.x,則必須符合兩個條件:

    1. 必須停用儲存體帳戶的 安全傳輸必要設定
    2. 要求必須來自 Azure 區域內部。 如先前所述,允許來自 Azure 區域內外任何位置的加密 SMB 請求。
  • 只有在記憶體帳戶的公用端點限制為使用 服務端點的特定虛擬網路時,才能從記憶體帳戶的公用端點存取 NFS 檔案共用。 如需服務端點的其他資訊,請參閱公用端點防火牆設定

  • FileREST 可透過公用端點存取。 如果需要安全傳輸,則只會接受 HTTPS 要求。 如果停用安全傳輸,則不論來源為何,公用端點都會接受 HTTP 要求。

公用端點防火牆設定

記憶體帳戶防火牆會限制存取記憶體帳戶的公用端點。 使用記憶體帳戶防火牆,您可以將特定IP位址/IP位址範圍的存取限制為特定虛擬網路,或完全停用公用端點。

當您將公用端點的流量限制為一或多個虛擬網路時,您會使用稱為 服務端點的虛擬網路功能。 導向至 Azure 檔案服務端點的要求仍會移至記憶體帳戶公用 IP 位址;不過,網路層正在對要求執行額外的驗證,以驗證它是否來自已授權的虛擬網路。 SMB、NFS 和 FileREST 通訊協定全都支援服務端點。 不過,不同於SMB和FileREST,NFS檔案共用只能透過 使用服務端點來存取公用端點。

若要深入瞭解如何設定記憶體帳戶防火牆,請參閱 設定 Azure 記憶體防火牆和虛擬網路

公用端點網路路由

Azure 檔案服務支援多個網路路由選項。 預設選項 Microsoft 路由適用於所有 Azure 檔案儲存體設定。 網際網路路由選項不支援 AD 網域加入情境或 Azure 檔案同步。

私人終端節點

除了記憶體帳戶的預設公用端點之外,Azure 檔案服務還提供一或多個私人端點的選項。 私用端點是只能在 Azure 虛擬網路中存取的端點。 當您為記憶體帳戶建立私人端點時,記憶體帳戶會從虛擬網路的位址空間內取得私人IP位址,就像內部部署檔伺服器或NAS裝置在內部部署網路專用位址空間內接收IP位址的方式一樣。

個別的私人端點會與特定的 Azure 虛擬網路子網路相關聯。 記憶體帳戶在多個虛擬網路中可能有私人端點。

使用私有端點與 Azure 檔案搭配,可使得您能夠:

  • 使用 VPN 或 ExpressRoute 連線與私人對等互連,安全地從內部部署網路連線到 Azure 檔案共用。
  • 藉由設定儲存體帳戶防火牆來封鎖公用端點上的所有連線,以保護 Azure 檔案共用。 根據預設,建立私人端點不會封鎖公用端點的連線。
  • 藉由讓您能夠封鎖從虛擬網路 (和對等互連界限) 外泄資料的可能,來提高虛擬網路的安全性。

若要建立私人端點,請參閱 設定 Azure 檔案記憶體的私人端點

透過虛擬私人網路或 ExpressRoute 以通道傳送流量

若要使用私人端點從內部部署存取SMB或NFS檔案共用,您必須在內部部署網路與 Azure 之間建立網路通道。 虛擬網路或 VNet 類似於傳統的內部部署網路。 如同 Azure 記憶體帳戶或 Azure VM,VNet 是部署在資源群組中的 Azure 資源。

Azure 檔案儲存體支援下列機制,以在內部部署工作站和伺服器與 Azure SMB/NFS 檔案共用之間以通道傳送流量:

  • Azure VPN 閘道:VPN 閘道是特定的虛擬網路閘道類型,可透過網際網路在 Azure 虛擬網路與替代位置 (例如,內部部署環境) 之間傳送加密流量。 Azure VPN 閘道是 Azure 資源之一,可以與儲存體帳戶或其他 Azure 資源一起部署在資源群組中。 VPN 閘道會公開兩種不同類型的連線:
  • ExpressRoute 可讓您建立 Azure 與內部部署網路之間未周遊因特網的已定義路由。 由於 ExpressRoute 提供內部部署資料中心與 Azure 之間的專用路徑,因此當考慮網路效能時,ExpressRoute 會很有用。 當組織的原則或法規需求要求您的雲端資源必須有確定的路徑時,ExpressRoute 也會是不錯的選擇。

備註

雖然我們建議使用私人端點來協助將內部部署網路延伸至 Azure,但技術上可以透過 VPN 連線路由至公用端點。 不過,這需要針對 Azure 儲存體叢集 (為您的儲存體帳戶提供服務) 的公用端點,寫入 IP 位址的程式碼。 因為記憶體帳戶可以隨時在記憶體叢集之間移動,而且經常新增和移除叢集,因此這需要定期硬式編碼所有可能的 Azure 記憶體 IP 位址到您的路由規則中。

DNS 組態

當您建立私人端點時,我們預設也會建立對應至 privatelink 子域的私人 DNS 區域(或更新現有的)私人 DNS 區域。 嚴格來說,建立私人 DNS 區域不需要為您的記憶體帳戶使用私人端點。 然而,強烈建議當您將 Azure 檔案共用與 Active Directory 使用者原則裝載,或從 FileREST API 進行存取要求此項目。

備註

本文會針對 Azure 公用區域使用儲存體帳戶 DNS 尾碼 core.windows.net。 此註解也適用於 Azure 主權雲端 (例如 Azure 美國政府雲端和 21Vianet 營運的 Microsoft Azure),只需替換為適合您環境的尾碼即可。

在您的私人 DNS 區域中,我們會針對 記憶體帳戶的一般名稱建立 A 記錄 storageaccount.privatelink.file.core.windows.net 和 CNAME 記錄,其遵循模式 storageaccount.file.core.windows.net。 因為您的 Azure 私人 DNS 區域已連線到包含私人端點的虛擬網路,因此您可以從 Azure VM 中的 PowerShell 呼叫 Resolve-DnsName Cmdlet 來觀察 DNS 設定(或者 nslookup 在 Windows 和 Linux 中):

Resolve-DnsName -Name "storageaccount.file.core.windows.net"

在此範例中,儲存體帳戶 storageaccount.file.core.windows.net 會解析為私人端點的私人 IP 位址,而這正好是 192.168.0.4

Name                              Type   TTL   Section    NameHost
----                              ----   ---   -------    --------
storageaccount.file.core.windows. CNAME  29    Answer     csostoracct.privatelink.file.core.windows.net
net

Name       : storageaccount.privatelink.file.core.windows.net
QueryType  : A
TTL        : 1769
Section    : Answer
IP4Address : 192.168.0.4


Name                   : privatelink.file.core.windows.net
QueryType              : SOA
TTL                    : 269
Section                : Authority
NameAdministrator      : azureprivatedns-host.microsoft.com
SerialNumber           : 1
TimeToZoneRefresh      : 3600
TimeToZoneFailureRetry : 300
TimeToExpiration       : 2419200
DefaultTTL             : 300

如果您從內部部署執行相同的命令,您會看到相同的儲存體帳戶名稱會改為解析為儲存體帳戶的公用 IP 位址。 例如,storageaccount.file.core.windows.netstorageaccount.privatelink.file.core.windows.net 的 CNAME 記錄,而 storageaccount.privatelink.file.core.windows.net 又是 Azure 儲存叢集中承載該儲存帳戶的 CNAME 記錄:

Name                              Type   TTL   Section    NameHost
----                              ----   ---   -------    --------
storageaccount.file.core.windows. CNAME  60    Answer     storageaccount.privatelink.file.core.windows.net
net
storageaccount.privatelink.file.c CNAME  60    Answer     file.par20prdstr01a.store.core.windows.net
ore.windows.net

Name       : file.par20prdstr01a.store.core.windows.net
QueryType  : A
TTL        : 60
Section    : Answer
IP4Address : 52.239.194.40

這反映了記憶體帳戶可以公開公用端點和一或多個私人端點的事實。 若要確保記憶體帳戶名稱解析為私人端點的私人IP位址,您必須變更內部部署 DNS 伺服器上的設定。 這可以透過數種方式來完成:

  • 修改用戶端上的 hosts 檔案,讓 storageaccount.file.core.windows.net 解析為所想要私人端點的私人 IP 位址。 對於生產環境而言,這強烈建議您不要這樣做,因為您必須對想要掛接 Azure 檔案共用的每個客戶端進行這些變更,而且不會自動處理記憶體帳戶或私人端點的變更。
  • 在你的內部部署 DNS 伺服器中為 storageaccount.file.core.windows.net 建立 A 記錄。 這的優點是內部部署環境中的用戶端能夠自動解析記憶體帳戶,而不需要設定每個用戶端。 不過,此解決方案就像修改 主機 檔案一樣脆弱,因為變更不會生效。 雖然此解決方案不怎麼方便,但在某些環境中卻可能是最佳選擇。
  • core.windows.net 區域從內部部署 DNS 伺服器轉送至 Azure 私人 DNS 區域。 您可以透過只能在連結至 Azure 私人 DNS 區域的虛擬網路內存取的特殊 IP 位址 (168.63.129.16),來連線到 Azure 私人 DNS 主機。 若要解決這項限制,您可以在虛擬網路內執行其他 DNS 伺服器,以轉送 core.windows.net 至 Azure 私人 DNS 區域。 為了簡化此設定,我們提供了PowerShell Cmdlet,可讓您在 Azure 虛擬網路中自動部署 DNS 伺服器,並視需要進行設定。 若要了解如何設定 DNS 轉送,請參閱使用 Azure 檔案儲存體設定 DNS

透過 QUIC 的 SMB

Windows Server 2022 Azure Edition 針對文件伺服器角色所提供的 SMB 伺服器,支援名為 QUIC 的新傳輸通訊協定。 QUIC 是建置在 UDP 之上的 TCP 的替代專案,可提供許多優於 TCP 的優點,同時仍提供可靠的傳輸機制。 SMB 通訊協定的主要優點之一是,與其使用埠 445,而是透過埠 443 完成所有傳輸,而埠 443 已廣泛開放,以支援 HTTPS。 這實際上表示透過 QUIC 的 SMB 提供「SMB VPN」,以透過公用因特網共用檔案。 Windows 11 隨附 SMB over QUIC 支援用戶端。

目前,Azure 檔案服務不會直接支援透過 QUIC 的 SMB。 不過,您可以透過在 Windows Server 上執行的 Azure 檔案同步存取 Azure 檔案共用,如下圖所示。 這也可讓您選擇讓內部部署或不同 Azure 資料中心的 Azure 檔案同步快取,為分散式員工提供本機快取。 若要深入瞭解此選項,請參閱透過 QUIC部署 Azure 檔案同步和 SMB。

使用 Azure 檔案同步,在 Windows Server 2022 Azure 版本 VM 上建立 Azure 檔案共用的輕量型快取的圖表。

另請參閱