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 |
安全傳輸
根據預設,不論是透過公用或私人端點存取資料,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 記憶體帳戶之間的通訊會使用傳輸層安全性 (TLS) 加密。 Azure 檔案儲存體 依賴不是以 OpenSSL 為基礎的 SSL 實作,因此不會公開至 OpenSSL 相關弱點。
公用端點
儲存體帳戶中的 Azure 檔案共用公用端點是網際網路公開的端點。 公用端點是儲存體帳戶的預設端點,不過,如有需要也可以停用。
SMB、NFS 和 FileREST 通訊協定均可以使用公用端點。 不過,各個通訊協定均有稍微不同的存取規則:
SMB 檔案共用可從世界各地透過具有加密的 SMB 3.x 儲存體帳戶公用端點進行存取。 這表示已完成驗證的要求 (例如,由使用者的登入身分識別所授權的要求) 便可從 Azure 區域的內部或外部安全地產生。 如果需要 SMB 2.1 或 SMB 3.x 而不要進行加密,則必須符合兩個條件:
- 儲存體帳戶必須停用需要安全傳輸設定。
- 要求必須源自於 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 閘道會公開兩種不同的連線類型:
- 點對站 (P2S) VPN 閘道連線,這是 Azure 與個別用戶端之間的 VPN 連線。 此解決方案主要適用於不屬於組織內部部署網路的裝置。 遠距工作者的常見使用案例是隨時隨地要能從自家、咖啡廳或旅館裝載 Azure 檔案共用。 若要將 P2S VPN 連線用於 Azure 檔案儲存體,您必須針對各個要連接的用戶端設定 P2S VPN 連線。 請參閱在 Windows 上設定點對站 (P2S) VPN,以搭配 Azure 檔案儲存體 使用和在 Linux 上設定點對站 (P2S) VPN 以搭配 Azure 檔案儲存體 使用。
- 站對站 (S2S) VPN,這是 Azure 與您組織內網路之間的 VPN 連線。 S2S VPN 連線可讓您一次就為組織網路上裝載的 VPN 伺服器或裝置設定 VPN 連線,而不必針對需要存取 Azure 檔案共用的每個用戶端裝置設定連線。 請參閱設定站對站 VPN 以搭配 Azure 檔案儲存體 使用。
- ExpressRoute,可讓您在 Azure 與不會周遊網際網路的內部部署網路之間建立已定義好的路由。 由於 ExpressRoute 提供內部部署資料中心與 Azure 之間的專用路徑,因此當考慮網路效能時,ExpressRoute 會很有用。 當組織的原則或法規需求要求您的雲端資源必須有確定的路徑時,ExpressRoute 也會是不錯的選擇。
注意
雖然我們建議使用私人端點來協助將內部部署網路延伸至 Azure,但技術上可以透過 VPN 連線路由至公用端點。 不過,這需要針對 Azure 儲存體叢集 (為您的儲存體帳戶提供服務) 的公用端點,寫入 IP 位址的程式碼。 因為記憶體帳戶可以隨時在記憶體叢集之間移動,而且經常新增和移除叢集,因此這需要定期硬式編碼所有可能的 Azure 記憶體 IP 位址到您的路由規則中。
DNS 組態
當您建立私人端點時,根據預設,我們也會建立與 privatelink
子網域對應的私人 DNS 區域,或更新現有的私人 DNS 區域。 嚴格來說,建立私人 DNS 區域不需要為您的記憶體帳戶使用私人端點。 不過,通常強烈建議您使用 Active Directory 用戶主體掛接您的 Azure 檔案共用,或從 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.net
是的 storageaccount.privatelink.file.core.windows.net
CNAME 記錄,接著是裝載記憶體帳戶之 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 主機。 若要解決這項限制,您可以在虛擬網路內執行會將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 檔案儲存體概觀
- 規劃 Azure 檔案服務部署 (機器翻譯)