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 檔案共用,以及其他 Azure 儲存體服務的儲存體資源 (例如 Blob 容器或佇列)。

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

適用於

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

安全傳輸

根據預設,不論是透過公用或私人端點存取資料,Azure 儲存體帳戶都需要安全傳輸方式。 Azure 檔案儲存體會針對儲存在 Azure 檔案共用上的所有通訊協定存取,強制執行需要安全傳輸設定,包含 SMB、NFS 和 FileREST。 您可以停用需要安全傳輸設定以允許未加密的流量。 在 Azure 入口網站中,您可能也會看到此設定標示為「需要 REST API 作業的安全傳輸」。

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 檔案共用不支援加密機制,因此若要使用 NFS 通訊協定來存取 Azure 檔案共用,您必須針對該儲存體帳戶停用需要安全傳輸

  • 安全傳輸為必要項目時,FileREST 通訊協定只能與 HTTPS 搭配使用。 目前只有 SMB 檔案共用才支援 FileREST。

公用端點

儲存體帳戶中的 Azure 檔案共用公用端點是網際網路公開的端點。 公用端點是儲存體帳戶的預設端點,不過,如有需要也可以停用。

SMB、NFS 和 FileREST 通訊協定均可以使用公用端點。 不過,各個通訊協定均有稍微不同的存取規則:

  • SMB 檔案共用可從世界各地透過具有加密的 SMB 3.x 儲存體帳戶公用端點進行存取。 這表示已完成驗證的要求 (例如,由使用者的登入身分識別所授權的要求) 便可從 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 區域中,我們會為 storageaccount.privatelink.file.core.windows.net 建立 A 記錄,並為儲存體帳戶 (其會遵循模式 storageaccount.file.core.windows.net) 的一般名稱建立 CNAME 記錄。 由於您的 Azure 私人 DNS 區域會連線到包含私人端點的虛擬網路,因此您可以在 Azure VM 中從 PowerShell 呼叫 Resolve-DnsName Cmdlet (在 Windows 和 Linux 中則為 nslookup) 來觀察 DNS 設定:

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 記錄。 這麼做的好處是,內部部署環境中的用戶端將能夠自動解析儲存體帳戶,而不需要設定每個用戶端。 不過,此解決方案和修改 hosts 檔案一樣不方便,因為變更並不會加以放映。 雖然這個解決方案不怎麼方便,但在某些環境中卻可能是最佳選擇。
  • core.windows.net 區域從內部部署 DNS 伺服器轉送到 Azure 私人 DNS 區域。 您可以透過只能在連結至 Azure 私人 DNS 區域的虛擬網路內存取的特殊 IP 位址 (168.63.129.16),來連線到 Azure 私人 DNS 主機。 若要解決這項限制,您可以在虛擬網路內執行會將 core.windows.net 轉送至 Azure 私人 DNS 區域的其他 DNS 伺服器。 為簡化這項設定,我們提供了 PowerShell Cmdlet,以在 Azure 虛擬網路中自動部署 DNS 伺服器,並視需要加以設定。 若要了解如何設定 DNS 轉送,請參閱使用 Azure 檔案儲存體設定 DNS

透過 QUIC 的 SMB

Windows Server 2022 Azure 版本支援名為 QUIC 的新傳輸通訊協定,供檔案伺服器角色提供的 SMB 伺服器使用。 QUIC 是建置在 UDP 上的 TCP 取代項目,可提供許多優於 TCP 的優點,同時仍提供可靠的傳輸機制。 SMB 通訊協定的關鍵優點之一,即為所有傳輸均透過連接埠 443 完成,而不是 445,而 443 連接埠也會廣泛開放輸出,以支援 HTTPS。 這實際上表示透過 QUIC 的 SMB 提供「SMB VPN」,以便透過公用網際網路共用檔案。 Windows 11 會隨附透過 QUIC 相容客戶端的 SMB。

目前,Azure 檔案儲存體無法直接支援 QUIC 的 SMB (SMB over QUIC)。 不過,您可以透過在 Windows Server 上執行的 Azure 檔案同步,來存取 Azure 檔案共用,如下圖所示。 這也可讓您選擇在內部部署或另一個 Azure 資料中心內擁有 Azure 檔案同步快取,為分散各地的員工提供本機快取。 若要深入瞭解此選項,請參閱部署 Azure 檔案同步QUIC 的 SMB (SMB over QUIC)。

使用 Azure 檔案同步 在 Windows Server 2022 Azure Edition V M 上建立 Azure 檔案共用羽量型快取的圖表。

另請參閱