設定 Azure 儲存體防火牆和虛擬網路

Azure 儲存體提供分層式安全性模型。 此模型可讓您根據所使用的網路或資源類型和子集,保護及控制應用程式和企業環境所需的儲存體帳戶存取層級。 設定網路規則時,只有透過指定網路集或透過指定的 Azure 資源集要求資料的應用程式才能存取儲存體帳戶。 您可以將儲存體帳戶的存取限制為來自指定 IP 位址、IP 範圍、Azure 虛擬網路 (VNet) 中的子網,或某些 Azure 服務的資源實例。

儲存體帳戶具有可透過網際網路存取的公用端點。 您也可以為儲存體帳戶建立 私人端點,這會將私人 IP 位址從您的 VNet 指派給儲存體帳戶,並透過私人連結保護 VNet 與儲存體帳戶之間的所有流量。 Azure 儲存體防火牆會為儲存體帳戶的公用端點提供存取控制。 使用私人端點時,您也可以使用防火牆來封鎖所有透過公用端點的存取。 您的儲存體防火牆組態也可讓您選取信任的 Azure 平台服務,以安全地存取儲存體帳戶。

應用程式若在網路規則生效時存取儲存體帳戶,則對於要求仍須有適當的授權。 支援使用 Azure Active Directory (Azure AD) 認證 (適用於 Blob 和佇列)、有效的帳戶存取金鑰或 SAS 權杖來進行授權。 當 Blob 容器設定為匿名公用存取時,要求讀取該容器中的資料不需要獲得授權,但防火牆規則仍有效,而且會封鎖匿名流量。

重要

開啟儲存體帳戶的防火牆規則會預設封鎖傳入的資料要求,除非要求源自 Azure 虛擬網路 (VNet) 內運作的服務或源自允許的公用 IP位址。 封鎖的要求包括來自其他 Azure 服務、Azure 入口網站及記錄與計量服務等等的要求。

您可以透過允許流量來自裝載服務執行個體的子網路,將存取權授與從 VNet 內執行的 Azure 服務。 您也可以透過下列例外狀況機制來啟用有限的案例。 若要透過 Azure 入口網站從儲存體帳戶存取資料,您所用的機器必須位於已設定的信任界限 (IP 或 VNet) 內。

注意

本文使用 Azure Az PowerShell 模組,這是與 Azure 互動時建議使用的 PowerShell 模組。 若要開始使用 Az PowerShell 模組,請參閱安裝 Azure PowerShell。 若要瞭解如何遷移至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 遷移至 Az。

案例

若要保護您的儲存體帳戶,您應該先設定規則,以根據預設,拒絕存取公用端點上來自所有網路的流量 (包括網際網路流量)。 然後,您應該設定規則,以授與特定 Vnet 中流量的存取權。 您也可以設定規則,以授與來自所選公用網際網路 IP 位址範圍的流量存取權,以啟用來自特定網際網路或內部部署用戶端的連線。 此設定可讓您為應用程式設定安全的網路界限。

您可以合併防火牆規則,允許從特定的虛擬網路進行存取,以及從相同儲存體帳戶上的公用 IP 位址範圍進行存取。 儲存體防火牆規則可以套用到現有的儲存體帳戶,或者可以在建立新的儲存體帳戶時套用。

儲存體防火牆規則適用於儲存體帳戶的公用端點。 您不需要任何防火牆存取規則來允許儲存體帳戶的私人端點流量。 核准建立私用端點的程序會授與隱含的權限,存取來自子網路 (私人端點裝載所在) 的流量。

網路規則會在 Azure 儲存體的所有網路通訊協定上強制執行,包括 REST 和 SMB。 若要使用Azure 入口網站、儲存體總管和 AzCopy 等工具來存取資料,必須設定明確的網路規則。

一旦套用網路規則,就會對所有要求執行。 授與特定 IP 位址存取權的 SAS 權杖,是用來限制權杖持有者的存取權,但不會授與所設定網路規則以外的新存取權。

虛擬機器磁碟流量 (包括掛接和取消掛接作業以及磁碟 IO) 不受網路規則影響。 分頁 Blob 的 REST存取受網路規則保護。

傳統的儲存體帳戶不支援防火牆與虛擬網路。

您可以在儲存體帳戶中使用非受控磁片,並透過建立例外狀況來套用網路規則來備份和還原 VM。 此程式記載于本文的 管理例外狀況 一節中。 防火牆例外不適用於受控磁碟,因為它們已受 Azure 管理。

變更預設的網路存取規則

儲存體帳戶預設接受來自任何網路用戶端的連線。 您可以限制對所選網路的存取 ,或 防止來自所有網路的流量,並只允許透過 私人端點進行存取。

警告

變更此設定可能會影響應用程式連線到Azure 儲存體的能力。 變更此設定之前,請務必授與任何允許網路的存取權,或透過 私人端點 設定存取權。

  1. 前往您要保護的儲存體帳戶。

  2. 在 [安全性 + 網路] 底下找出 [網路設定]。

  3. 選擇您想要允許的公用網路存取類型。

    • 若要允許來自所有網路的流量,請 選取 [從所有網路啟用]。

    • 若要只允許來自特定虛擬網路的流量,請 選取 [從選取的虛擬網路和 IP 位址啟用]。

    • 若要封鎖來自所有網路的流量,請使用 PowerShell 或 Azure CLI。 此設定尚未出現在 Azure 入口網站中。

  4. 選取 [儲存] 來套用您的變更。

授與虛擬網路存取權

您可以將儲存體帳戶設定為只允許從特定子網路進行存取。 允許的子網路可能屬於相同訂用帳戶中的 VNet,或位於不同訂用帳戶中的 VNet,包括屬於不同 Azure Active Directory 租用戶的訂用帳戶。

您可以在 VNet 內啟用Azure 儲存體的服務端點。 服務端點會透過最佳路徑,將來自 VNet 的流量路由至 Azure 儲存體服務。 子網路和虛擬網路的身分識別也會隨著每個要求傳輸。 管理員接著可以設定儲存體帳戶的網路規則,允許接收來自 VNet 中特定子網路的要求。 透過這些網路規則授與存取的用戶端,必須仍要繼續符合儲存體帳戶的授權需求,才能存取資料。

每個儲存體帳戶最多可支援 200 個虛擬網路規則,這些規則可能會與 IP 網路規則結合。

重要

如果您刪除已包含在網路規則中的子網,將會從儲存體帳戶的網路規則中移除。 如果您以相同名稱建立新的子網,它將無法存取儲存體帳戶。 若要允許存取,您必須在儲存體帳戶的網路規則中明確授權新的子網。

所需的權限

為將虛擬網路規則套用至儲存體帳戶,使用者必須在要新增的子網路上具有適當權限。 套用規則可由儲存體帳戶參與者或已透過自訂 Azure 角色授與Azure 資源提供者作業許可權 Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action 的使用者執行。

儲存體帳戶和虛擬網路授與的存取權可能在不同的訂用帳戶中,包括屬於不同 Azure AD 租用戶的訂用帳戶。

注意

目前僅透過 PowerShell、CLI 和 REST API 支援將存取權授與屬於不同Azure Active Directory租使用者一部分之虛擬網路中子網的規則設定。 這類規則無法透過 Azure 入口網站進行設定,但可以在入口網站中看到。

可用的虛擬網路區域

根據預設,服務端點會在相同 Azure 區域中的虛擬網路和服務實例之間運作。 搭配Azure 儲存體使用服務端點時,服務端點也會在配對區域中的虛擬網路和服務實例之間運作。 如果您想要使用服務端點來授與其他區域中虛擬網路的存取權,您必須在虛擬網路的訂用帳戶中註冊 AllowGlobalTagsForStorage 此功能。 這項功能目前為公開預覽版。

服務端點可在地區性容錯移轉期間維持持續性,而且能讓您存取唯讀的異地備援儲存體 (RA-GRS) 執行個體。 將虛擬網路存取權授與儲存體帳戶的網路規則,也會將存取權授與任何 RA-GRS 執行個體。

規劃地區服務中斷期間的災害復原時,應該事先在配對區域中建立 VNet。 為 Azure 儲存體啟用服務端點,並設定網路規則,以允許從這些替代虛擬網路進行存取。 然後將這些規則套用至您的異地備援儲存體帳戶。

(預覽版) 啟用對其他區域中虛擬網路的存取

若要從位於另一個區域的虛擬網路啟用存取,請在虛擬網路的訂用帳戶中註冊 AllowGlobalTagsForStorage 此功能。 其他區域中具有儲存體服務端點的子網將不再使用公用 IP 位址來與儲存體帳戶通訊。 所有流量都會來自私人 IP 位址,以及允許來自這些子網流量的任何 IP 網路規則將不再生效。

重要

這項功能目前處於預覽狀態。

請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。

在預覽期間,您必須使用 PowerShell 或 Azure CLI 來啟用此功能。

管理虛擬網路規則

您可以透過 Azure 入口網站、PowerShell 或 CLIv2 管理儲存體帳戶的虛擬網路規則。

注意

如果您已註冊 AllowGlobalTagsForStorage 此功能,而且想要從另一個Azure AD租使用者中的虛擬網路/子網,或在儲存體帳戶或其配對區域以外的區域中啟用儲存體帳戶的存取權,則必須使用 PowerShell 或 Azure CLI。 Azure 入口網站不會在其他Azure AD租使用者或儲存體帳戶或其配對區域以外的區域中顯示子網,因此無法用來設定其他區域中虛擬網路的存取規則。

  1. 前往您要保護的儲存體帳戶。

  2. 在名為 [網路] 的[設定] 功能表上選取 。

  3. 請確定您已選取允許從所選網路進行存取。

  4. 若要使用新的網路規則授與虛擬網路的存取權,請在 [ 虛擬網路] 底下選取 [ 新增現有的虛擬網路],選取 [ 虛擬網路子網 ] 選項,然後選取 [ 新增]。 若要建立新的虛擬網路並授與存取權,請選取 [新增虛擬網路]。 提供建立新虛擬網路所需的資訊,並選取 [建立]。

    注意

    如果 Azure 儲存體的服務端點未針對所選虛擬網路和子網路事先設定,可以將其設定為這項作業的一部分。

    目前,只有屬於相同 Azure Active Directory 租用戶的虛擬網路,才會在建立規則時顯示以供選取。 若要授與屬於另一個租使用者之虛擬網路中子網的存取權,請使用 、PowerShell、CLI 或 REST API。

    即使您已註冊 AllowGlobalTagsForStorageOnly 此功能,儲存體帳戶或其配對區域以外的區域子網也不會顯示以供選取。 如果您想要從不同區域中的虛擬網路/子網啟用儲存體帳戶的存取權,請使用 PowerShell 或 Azure CLI 索引標籤中的指示。

  5. 若要移除虛擬網路或子網路規則,請選取 […] 開啟虛擬網路或子網路的快顯功能表,然後選取 [移除]。

  6. 選取 [儲存 ] 以套用變更。

授與網際網路 IP 範圍存取權

您可以使用 IP 網路規則,藉由建立 IP 網路規則,允許從特定公用網際網路 IP 位址範圍進行存取。 每個儲存體帳戶最多可支援 200 個規則。 這些規則會授與特定網際網路型服務和內部部署網路的存取權,並封鎖一般網際網路流量。

下列限制適用于 IP 位址範圍。

  • 只有 公用網際網路 IP 位址才允許 IP 網路規則。

    IP 規則中不允許保留私人網路的 IP 位址範圍 (如 RFC 1918 中所定義)。 私人網路包含開頭為10.**、172.16的位址。 - *172.31。、 和 *192.168.

  • 您必須16.17.18.0/24 格式或 16.17.18.19之類的個別 IP 位址形式,提供允許的網際網路位址範圍。

  • 不支援使用 "/31" 或 "/32" 前置詞大小的小型位址範圍。 這些範圍應該使用個別的 IP 位址規則設定。

  • 設定儲存體防火牆規則時僅支援 IPV4 位址。

IP 網路規則無法在下列情況下使用:

  • 限制存取與儲存體帳戶位於相同 Azure 區域中的用戶端。

    IP 網路規則不會影響源自儲存體帳戶所在 Azure 區域的要求。 使用虛擬網路規則來允許同一個區域的要求。

  • 限制對 區域中 具有服務端點之 VNet 中的用戶端存取。

  • 限制存取部署在與儲存體帳戶相同區域中的 Azure 服務。

    與儲存體帳戶部署在相同區域中的服務會使用私人 Azure IP 位址進行通訊。 因此,您無法根據其公用輸出 IP 位址範圍來限制對特定 Azure 服務的存取。

設定內部部署網路存取權

為將內部部署網路存取權授與使用 IP 網路規則的儲存體帳戶,您必須識別網路所使用的網際網路對應 IP 位址。 請連絡網路系統管理員尋求協助。

如果您使用來自內部部署的 ExpressRoute 進行公用對等互連或 Microsoft 對等互連,您將必須識別所使用的 NAT IP 位址。 在公用對等互連中,每個 Expressroute 線路預設都會使用兩個 NAT IP 位址,而這兩個位址會在流量進入 Microsoft Azure 網路骨幹時套用至 Azure 服務流量。 在 Microsoft 對等互連中,所用的 NAT IP 位址是由客戶提供或由服務提供者提供。 若要允許存取您的服務資源,就必須在資源 IP 防火牆設定中允許這些公用 IP 位址。 若要尋找您的公用對等互連 ExpressRoute 線路 IP 位址,請透過 Azure 入口網站開啟有 ExpressRoute 的支援票證。 深入了解 ExpressRoute 公用與 Microsoft 對等互連的 NAT。

管理 IP 網路規則

您可以透過 Azure 入口網站、PowerShell 或 CLIv2 管理儲存體帳戶的 IP 網路規則。

  1. 前往您要保護的儲存體帳戶。

  2. 在名為 [網路] 的[設定] 功能表上選取 。

  3. 請確定您已選取允許從所選網路進行存取。

  4. 若要授與網際網路 IP 範圍的存取權,請在 [防火牆]>[位址範圍] 之下輸入 IP 位址或位址範圍 (採用 CIDR 格式)。

  5. 若要移除 IP 網路規則,請選取位址範圍旁邊的垃圾桶圖示。

  6. 選取 [儲存] 來套用您的變更。

授與 Azure 資源實例的存取權, (預覽版)

在某些情況下,應用程式可能會相依于無法透過虛擬網路或 IP 位址規則隔離的 Azure 資源。 不過,您仍想要保護儲存體帳戶,並限制只能存取應用程式的 Azure 資源。 您可以藉由建立資源實例規則,將儲存體帳戶設定為允許存取某些 Azure 服務的特定資源實例。

資源實例可以在儲存體帳戶資料上執行的作業類型取決於資源實例的 Azure 角色指派。 資源實例必須來自與儲存體帳戶相同的租使用者,但它們可以屬於租使用者中的任何訂用帳戶。

注意

此功能處於公開預覽狀態,可在所有公用雲端區域中使用。

您可以在Azure 入口網站中新增或移除資源網路規則。

  1. 登入 Azure 入口網站以開始進行操作。

  2. 找出您的儲存體帳戶,然後顯示帳戶概觀。

  3. 選取 [ 網路] 以顯示網路設定頁面。

  4. [防火牆和虛擬網路] 底下,針對 [選取的網路],選取 [允許存取]。

  5. 向下捲動以尋找 資源實例,然後在 [ 資源類型 ] 下拉式清單中,選擇資源實例的資源類型。

  6. 在 [ 實例名稱] 下拉式清單中,選擇資源實例。 您也可以選擇在作用中租使用者、訂用帳戶或資源群組中包含所有資源實例。

  7. 選取 [儲存] 來套用您的變更。 資源實例會出現在 [網路設定] 頁面的 [ 資源實例 ] 區段中。

若要移除資源實例,請選取資源實例旁 () 刪除圖示

將存取權授與信任的 Azure 服務

某些 Azure 服務會從網路規則中無法包含的網路運作。 您可以將這類受信任 Azure 服務存取權的子集授與儲存體帳戶,同時維護其他應用程式的網路規則。 這些受信任的服務接著會使用增強式驗證安全地連線到您的儲存體帳戶。

您可以藉由建立網路規則例外狀況,來授與受信任 Azure 服務的存取權。 For step-by-step guidance, see the Manage exceptions section of this article.

當您將存取權授與受信任的 Azure 服務時,您會授與下列類型的存取權:

  • 針對訂用帳戶中註冊的資源選取作業的受信任存取權。
  • 根據受控識別信任的資源存取權。

訂用帳戶中註冊之資源的受信任存取權

某些服務的資源在訂用帳戶中註冊時,可以在相同的訂用帳戶中存取您的儲存體帳戶,以進行選取作業,例如寫入記錄或備份。 下表描述每個服務和允許的作業。

服務 資源提供者名稱 允許的作業
Azure 備份 Microsoft.RecoveryServices 在 IAAS 虛擬機器中執行未受控磁碟備份與還原。 (若為受控磁碟則非必要)。 深入了解
Azure 資料箱 Microsoft.DataBox 可讓您使用資料箱將資料匯入至 Azure。 深入了解
Azure DevTest Labs Microsoft.DevTestLab 自訂映像建立和成品安裝。 深入了解
Azure Event Grid Microsoft.EventGrid 啟用 Blob 儲存體事件發佈,並允許事件方格發佈到儲存體佇列。 深入了解 Blob 儲存體事件發佈至佇列
Azure 事件中心 Microsoft.EventHub 使用事件中樞擷取封存資料。 深入了解
Azure 檔案同步 Microsoft.StorageSync 可讓您將內部部署檔案伺服器轉換為 Azure 檔案共用的快取。 允許多網站同步處理、快速災害復原,以及雲端備份。 深入了解
Azure HDInsight Microsoft.HDInsight 為新的 HDInsight 叢集佈建預設檔案系統的初始內容。 深入了解
Azure 匯入匯出 Microsoft.ImportExport 允許使用Azure 儲存體 匯入/匯出服務將資料匯入Azure 儲存體或從Azure 儲存體匯出資料。 深入了解
Azure 監視器 Microsoft.Insights 允許將監視資料寫入至受保護的儲存體帳戶,包括資源記錄、Azure Active Directory 登入和稽核記錄,以及 Microsoft Intune 記錄。 深入了解
Azure 網路 Microsoft.Network 儲存和分析網路流量記錄,包括透過網路監看員和流量分析服務。 深入了解
Azure Site Recovery Microsoft.SiteRecovery 當使用已啟用防火牆的快取、來源或目標儲存體帳戶時,啟用複寫以進行 Azure IaaS 虛擬機器的災害復原。 深入了解

根據受控識別的信任存取

下表列出如果這些服務的資源實例獲得適當的許可權,則可以存取儲存體帳戶資料的服務。

如果您的帳戶上未啟用階層命名空間功能,您可以明確將 Azure 角色指派給每個資源實例的 受控識別 ,以授與許可權。 在此情況下,執行個體的存取範圍會對應至指派給受控識別的 Azure 角色。

您可以針對已啟用階層命名空間功能的帳戶使用相同的技術。 不過,如果您將受控識別新增至存取控制清單, (ACL) 儲存體帳戶中包含的任何目錄或 Blob,則不需要指派 Azure 角色。 在此情況下,實例的存取範圍會對應至受控識別被授與存取權的目錄或檔案。 您也可以將 Azure 角色和 ACL 結合在一起。 若要深入瞭解如何將它們結合在一起以授與存取權,請參閱Azure Data Lake Storage Gen2中的存取控制模型

提示

授與特定資源存取權的建議方式是使用資源實例規則。 若要授與特定資源實例的存取權,請參閱本文 (預覽版) 授與 Azure 資源實例的存取 權一節。

服務 資源提供者名稱 目的
Azure API 管理 Microsoft.ApiManagement/service 使用原則,讓 Api 管理服務能夠存取防火牆後方的儲存體帳戶。 深入了解
Azure Cache for Redis Microsoft.Cache/Redis 允許透過Azure Cache for Redis存取儲存體帳戶。 深入了解
Azue 認知搜尋 Microsoft.Search/searchServices 可讓認知搜尋服務存取儲存體帳戶以進行編製索引、處理和查詢。
Azure 認知服務 Microsoft.CognitiveService/accounts 讓認知服務能夠存取儲存體帳戶。 深入了解
Azure Container Registry 工作 Microsoft.ContainerRegistry/registries 建立容器映像時,ACR 工作可以存取儲存體帳戶。
Azure Data Factory Microsoft.DataFactory/factories 允許透過 ADF 執行階段存取儲存體帳戶。
Azure Data Share Microsoft.DataShare/accounts 允許透過 Data Share 存取儲存體帳戶。
Azure DevTest Labs Microsoft.DevTestLab/labs 允許透過 DevTest Labs 存取儲存體帳戶。
Azure Event Grid Microsoft.EventGrid/topics 允許透過 Azure 事件方格 存取儲存體帳戶。
Azure Healthcare APIs Microsoft.HealthcareApis/services 允許透過 Azure 醫療保健 API 存取儲存體帳戶。
Azure IoT中央應用程式 Microsoft.IoTCentral/IoTApps 允許透過 Azure IoT Central Applications 存取儲存體帳戶。
Azure IoT 中樞 Microsoft.Devices/IotHubs 允許將來自 IoT 中樞的資料寫入至 Blob 儲存體。 深入了解
Azure Logic Apps Microsoft.Logic/workflows 讓邏輯應用程式能夠存取儲存體帳戶。 深入了解
Azure Machine Learning 服務 Microsoft.MachineLearningServices 已授權的 Azure Machine Learning 工作區會將實驗輸出、模型和記錄寫入至 Blob 儲存體,並讀取資料。 深入了解
Azure 媒體服務 Microsoft.Media/mediaservices 允許透過 媒體服務 存取儲存體帳戶。
Azure Migrate Microsoft.Migrate/migrateprojects 允許透過 Azure Migrate 存取儲存體帳戶。
Azure Purview Microsoft.Purview/accounts 允許 Azure Purview 存取儲存體帳戶。
Azure 遠端轉譯 Microsoft.MixedReality/remoteRenderingAccounts 允許透過 遠端轉譯 存取儲存體帳戶。
Azure Site Recovery Microsoft.RecoveryServices/vaults 允許透過 Site Recovery 存取儲存體帳戶。
Azure SQL Database Microsoft.Sql 允許 稽核資料寫入防火牆後方的儲存體帳戶。
Azure Synapse Analytics Microsoft.Sql 允許使用專用集區) 中的 COPY 語句或 PolyBase (,或 openrowset 無伺服器集區中的函式和外部資料表,從特定SQL資料庫匯入和匯出資料。 深入了解
Azure 串流分析 Microsoft.StreamAnalytics 允許將串流作業中的資料寫入至 Blob 儲存體。 深入了解
Azure Synapse Analytics Microsoft.Synapse/workspaces 可讓您從 Azure Synapse Analytics 存取Azure 儲存體中的資料。

授與儲存體分析的存取權

在某些情況下,需要來自網路界限外的存取權才能讀取資源記錄和計量。 設定儲存體帳戶的受信任服務存取權時,您可以藉由建立網路規則例外狀況,允許對記錄檔、計量資料表或兩者進行讀取存取。 如需逐步指引,請參閱下面的 管理例外狀況 一節。 若要深入瞭解如何使用儲存體分析,請參閱使用Azure 儲存體分析來收集記錄和計量資料

管理例外狀況

您可以透過 Azure 入口網站、PowerShell 或 CLIv2 管理網路規則例外狀況。

  1. 前往您要保護的儲存體帳戶。

  2. 在名為 [網路] 的[設定] 功能表上選取 。

  3. 請確定您已選取允許從所選網路進行存取。

  4. 在 [例外狀況] 下選取您希望授與權限的例外狀況。

  5. 選取 [儲存] 來套用您的變更。

後續步驟

深入了解服務端點 中的 Azure 網路服務端點。

Azure 儲存體安全性指南中深入了解 Azure 儲存體安全性。