共用方式為


使用 Azure 儲存體的私人端點

您可以使用 Azure 記憶體帳戶 的私人端點 ,允許 Azure 虛擬網路上的用戶端透過 Private Link 安全地存取數據。 私人端點會針對每個記憶體帳戶服務使用與虛擬網路位址空間不同的IP位址。 虛擬網路上的用戶端與儲存體帳戶之間的網路流量會透過虛擬網路和Microsoft骨幹網路上的私人連接傳輸,從而消除來自公用網際網路的暴露。

附註

私人端點無法用於一般用途 v1 儲存體帳戶。

將私人端點用於儲存體帳戶,可讓您:

  • 使用私人連結保護您的儲存體帳戶。 您可以手動設定儲存體防火牆,以封鎖儲存體服務公用端點上的連線。 建立私人連結不會自動封鎖公用端點上的連線。
  • 防止虛擬網路中的資料外流,進而提升虛擬網路的安全性。
  • 使用 VPN 或具有私人對等互連的 ExpressRoutes,從連線到虛擬網路的內部部署網路安全地連線到儲存體帳戶。

概念概觀

Microsoft Azure 儲存體的私人端點概觀

私人端點是 虛擬網路中 Azure 服務的特殊網路介面。 當您為記憶體帳戶建立私人端點時,它會在虛擬網路上的用戶端與記憶體之間提供安全的連線。 私人端點會獲指派您虛擬網路 IP 位址範圍中的 IP 位址。 私人端點與儲存體服務之間的連線會使用安全的私人連結。

虛擬網路中的應用程式可以順暢地透過私人端點連接到儲存服務,使用相同的連接字串和授權機制,就如同他們平常使用一樣。 私人端點可與儲存體帳戶支援的所有通訊協定搭配使用,包括 REST 和 SMB。

私人端點可以在使用服務端點的子網路中建立。 因此,子網路中的用戶端可以使用私人端點連線至一個儲存體帳戶,同時使用服務端點存取其他帳戶。

當您在虛擬網路中為記憶體服務建立私人端點時,會將同意要求傳送給記憶體帳戶擁有者。 如果要求建立私人端點的使用者也是儲存體帳戶的擁有者,則系統會自動核准此同意要求。

儲存體帳戶擁有者可在 Azure 入口網站中透過儲存體帳戶的 [私人端點] 索引標籤,來管理同意要求和私人端點。

秘訣

如果您想要限定為只能透過私人端點來存取您的儲存體帳戶,請將儲存體防火牆設定為會拒絕或控制透過公用端點的存取。

您可以設定 記憶體防火牆 ,以預設拒絕透過其公用端點的存取,來保護記憶體帳戶只接受來自虛擬網路的連線。 您不需要防火牆規則來允許來自具有私人端點之虛擬網路的流量,因為記憶體防火牆只會控制透過公用端點的存取。 私人端點會仰賴同意流程,為子網路授與對儲存體服務的存取權。

附註

在儲存體帳戶之間複製 Blob 時,您的用戶端必須具有兩個帳戶的網路存取權。 因此,如果您選擇僅對一個帳戶 (來源或目的地) 使用私人連結,請確定您的用戶端具有另一個帳戶的網路存取權。 若要了解設定網路存取權的其他方式,請參閱設定 Azure 儲存體防火牆和虛擬網路

建立私人端點

若要使用 Azure 入口網站建立私人端點,請參閱 Azure 入口網站中的儲存體帳戶體驗私下連線至儲存體帳戶

若要使用 PowerShell 或 Azure CLI 建立私人端點,請參閱下列其中一篇文章。 兩者皆以 Azure Web 應用程式作為目標服務,但為 Azure 儲存體帳戶建立私人連結的步驟是相同的。

當您建立私人端點時,您必須指定儲存體帳戶及其連接的儲存體服務。

您需要個別的私人端點,以存取每個所需的儲存體資源,也就是 BlobsData Lake Storage檔案佇列資料表靜態網站。 在私人端點上,這些儲存體服務會定義為相關儲存體帳戶的目標子資源

如果您為 Data Lake Storage 儲存體資源建立私人端點,則也應該為 Blob 儲存體資源建立一個端點。 這是因為以 Data Lake Storage 端點為目標的作業可能會重新導向至 Blob 端點。 同樣地,如果您只新增 Blob 儲存體的私人端點,而未針對 Data Lake Storage 新增,有些作業 (例如管理 ACL、建立目錄、刪除目錄等) 將會失敗,因為 API 需要 DFS 私人端點。 藉由為這兩個資源建立私人端點,您可確保所有作業都能順利完成。

秘訣

為儲存體服務的次要執行個體建立個別的私人端點,可提升 RA-GRS 帳戶的讀取效能。 請務必建立一般用途 v2 (標準或進階) 儲存體帳戶。

若要使用為異地備援儲存體設定的儲存體帳戶對次要區域進行讀取存取,服務的主要和次要執行個體分別要有個別的私人端點。 您無須為容錯移轉的次要執行個體建立私人端點。 私人端點會在容錯移轉之後自動連線至新的主要執行個體。 如需儲存體備援選項的詳細資訊,請參閱 Azure 儲存體備援

連線至私人端點

使用私人端點之虛擬網路上的客戶端應該使用與連線至公用端點的用戶端相同的記憶體帳戶連接字串。 我們依賴 DNS 解析,透過私人鏈接自動將連線從虛擬網路路由傳送至記憶體帳戶。

重要事項

使用相同的連接字串,透過私人端點連線至儲存體帳戶,就像在其他情況下一樣。 請勿使用其 privatelink 子域 URL 連線到記憶體帳戶。

根據預設,我們會建立連結至虛擬網路 的私人 DNS 區域 ,其中包含私人端點的必要更新。 不過,如果您使用的是自己的 DNS 伺服器,則可能需要對 DNS 組態進行額外的變更。 下列 DNS 變更一節描述私人端點所需的更新。

私人端點的 DNS 變更

附註

如需如何為私人端點進行 DNS 設定的詳細資訊,請參閱 Azure 私人端點 DNS 設定

當您建立私人端點時,儲存體帳戶的 DNS CNAME 資源記錄會更新為子網域中具有首碼 privatelink 的別名。 根據預設,我們也會建立對應至 privatelink 子網域的私人 DNS 區域,以及私人端點的 DNS A 資源記錄。

當您使用私人端點從虛擬網路外部解析記憶體端點 URL 時,它會解析為記憶體服務的公用端點。 從裝載私人端點的虛擬網路進行解析時,儲存體端點 URL 會解析為私人端點的 IP 位址。

針對上述說明的範例,從承載私人端點的虛擬網路外部解析儲存帳戶『StorageAccountA』的 DNS 資源記錄會是:

名稱 類型
StorageAccountA.blob.core.windows.net CNAME StorageAccountA.privatelink.blob.core.windows.net
StorageAccountA.privatelink.blob.core.windows.net CNAME <儲存體服務公用端點>
<儲存體服務公用端點> A <儲存體服務公用 IP 位址>

如先前所述,您可以使用記憶體防火牆,透過公用端點拒絕或控制虛擬網路外部用戶端的存取權。

當由裝載私人端點之虛擬網路中的用戶端解析時,StorageAccountA 的 DNS 資源記錄將會是:

名稱 類型
StorageAccountA.blob.core.windows.net CNAME StorageAccountA.privatelink.blob.core.windows.net
StorageAccountA.privatelink.blob.core.windows.net A 10.1.1.5

此方法可讓您針對裝載私人端點的虛擬網路上的用戶端,以及虛擬網路外部的用戶端使用相同的 連接字串 來存取記憶體帳戶。

如果您在網路上使用自訂 DNS 伺服器,用戶端必須能夠將儲存體帳戶端點的 FQDN 解析為私人端點 IP 位址。 您應該將 DNS 伺服器設定為將私人連結子網域委派給虛擬網路的私人 DNS 區域,或使用私人端點 IP 位址設定 StorageAccountA.privatelink.blob.core.windows.net 的 A 記錄。

秘訣

使用自訂或內部部署 DNS 伺服器時,您應設定 DNS 伺服器,以將 privatelink 子網域中的儲存體帳戶名稱解析為私人端點 IP 位址。 您可以將子域委派 privatelink 給虛擬網路的私人 DNS 區域,或在 DNS 伺服器上設定 DNS 區域,以及新增 DNS A 記錄,以執行此動作。

儲存體服務的私人端點和相關端點目標子資源的建議 DNS 區域名稱如下:

儲存體服務 目標子資源 區域名稱
Blob 服務 blob privatelink.blob.core.windows.net
Data Lake Storage dfs privatelink.dfs.core.windows.net
檔案服務 檔案 privatelink.file.core.windows.net
佇列服務 佇列 privatelink.queue.core.windows.net
表格服務 表格 privatelink.table.core.windows.net
靜態網站 web privatelink.web.core.windows.net

如需有關設定您自己的 DNS 伺服器以支援私人端點的詳細資訊,請參閱下列文章:

定價

如需定價詳細資料,請參閱 Azure Private Link 定價

已知問題

請記住下列與 Azure 儲存體的私人端點有關的已知問題。

具有私人端點之虛擬網路中用戶端的記憶體存取限制

存取具有私人端點的其他記憶體帳戶時,具有現有私人端點的虛擬網路中的用戶端會面臨限制。 例如,假設虛擬網路 N1 具有一個用於 Blob 儲存的儲存帳戶 A1 的私人端點。 如果記憶體帳戶 A2 在虛擬網路 N2 中有 Blob 記憶體的私人端點,則虛擬網路 N1 中的用戶端也必須使用私人端點存取帳戶 A2 中的 Blob 記憶體。 如果記憶體帳戶 A2 沒有任何 Blob 記憶體的私人端點,則虛擬網路 N1 中的用戶端可以存取該帳戶中的 Blob 記憶體,而不需要私人端點。

此條件約束是帳戶 A2 建立私人端點時所做的 DNS 變更所產生的。

在儲存體帳戶之間複製 Blob

只有在使用 Azure REST API,或是採用 REST API 的工具時,才可以使用私人端點在儲存體帳戶之間複製 Blob。 這類工具包括 AzCopy、儲存體總管、Azure PowerShell、Azure CLI 和 Azure Blob 儲存體 SDK。

僅支援以 blobfile 儲存體資源端點為目標的私人端點。 這包括對 Data Lake Storage 帳戶的 REST API 呼叫,其中會明確或隱含地參考 blob 資源端點。 尚未支援以 Data Lake Storage dfs 資源端點為目標的私人端點。 尚不支援使用網路檔案系統 (NFS) 通訊協定在儲存體帳戶之間進行複製。

後續步驟