Azure Synapse Analytics security white paper: Network security

備註

本文是 Azure Synapse Analytics 安全白皮書 系列文章的一部分。 欲了解該系列的概況,請參閱 Azure Synapse Analytics 安全白皮書。

為了保護 Azure Synapse,有多種網路安全選項需要考慮。

網路安全術語

本開頭部分將概述並定義與 Azure Synapse 與網路安全相關的關鍵術語。 閱讀本文時請記住這些定義。

Synapse 工作區

Synapse 工作空間是一個可保護的邏輯集合,包含 Azure Synapse 所提供的所有服務。 它包含專用的 SQL 池(前稱 SQL DW)、無伺服器 SQL 池、Apache Spark 池、管線及其他服務。 某些網路設定,如 IP 防火牆規則、受管理的虛擬網路,以及核准的外洩保護租戶,皆在工作區層級被設定與保護。

Synapse 工作區端點

端點是進來連線中用來存取服務的一個點。 每個 Synapse 工作區都有三個不同的端點:

  • 專用 SQL 端點 用於存取專用 SQL 池。
  • 無伺服器 SQL 端點用於存取無伺服器 SQL 池。
  • 開發端點,用於存取工作空間中的 Apache Spark 池與管線資源。

這些端點會在 Synapse 工作區建立時自動建立。

Synapse Studio

Synapse Studio 是一個安全的 Azure Synapse 網頁前端開發環境。 它支援多種角色,包括資料工程師、資料科學家、資料開發者、資料分析師及 Synapse 管理員。

使用 Synapse Studio 在 Azure Synapse 中執行各種資料與管理操作,例如:

  • 連接專用 SQL 池、無伺服器 SQL 池,以及執行 SQL 腳本。
  • 在 Apache Spark 集區上開發及執行筆記本。
  • 開發與運營管線。
  • 監控專用 SQL 池、無伺服器 SQL 池、Apache Spark 池和管線任務。
  • 管理工作區項目的 Synapse RBAC 權限。
  • 建立到資料來源和接收的受控私人端點連線。

可使用 Synapse Studio 連接工作區端點。 此外,也可以建立 私有端點 ,確保與工作區端點的通訊是私密的。

公共網路存取與防火牆規則

預設情況下,工作區端點在配置時是 公開端點 。 從任何公共網路(包括客戶組織外的網路)都能存取這些工作區端點,且不需要 VPN 連線或 ExpressRoute 連接 Azure。

所有 Azure 服務,包括像 Azure Synapse 這類 PaaS 服務,都受到 DDoS 基本防護 ,以防範惡意攻擊(主動流量監控、持續偵測及自動攻擊緩解)。

所有傳送至工作區端點的流量——即使是透過公共網路——在傳輸過程中都以傳輸層安全(TLS)協定加密並保護。

為了保護敏感資料,建議完全關閉對工作區端點的公開存取權限。 透過這樣做,確保所有工作區端點只能透過 私有端點存取。

透過指派 Azure 政策強制停用訂閱或資源群組中所有 Synapse 工作空間的公開存取權限。 也可以根據工作區處理的資料敏感度,依據每個工作區而停用公共網路存取。

不過,如果需要啟用公開存取,強烈建議設定 IP 防火牆規則,只允許來自指定公共 IP 清單的入站連線。

考慮啟用公開存取權限,當本地環境沒有 VPN 或 ExpressRoute 到 Azure,且需要存取工作區端點時。 此時,請在 IP 防火牆規則中指定本地資料中心與閘道器的公共 IP 位址清單。

私人端點

Azure 私有端點是一種虛擬網路介面,擁有私人 IP 位址,該位址是在客戶自己的 Azure 虛擬網路(VNet)子網路中建立的。 任何支援私有端點的 Azure 服務都可以建立私人端點,例如 Azure Synapse、專用 SQL 池(前稱 SQL DW)、Azure SQL 資料庫、Azure Storage,或任何由 Azure Private Link 服務驅動的 Azure 服務。

你可以在 VNet 中分別為三個 Synapse 工作區端點建立私有端點。 這樣一來,可能會為 Synapse 工作區的三個端點建立三個私有端點:一個用於專屬 SQL 池,一個用於無伺服器 SQL 池,以及一個用於開發端點。

私有端點相較於公用端點有許多安全優勢。 Azure VNet 中的私有端點只能從以下內部存取:

  • 就是同一個包含這個私有端點的 VNet。
  • 已在區域層級或全域層級對等互連的 Azure VNet。
  • 本地網路透過 VPN Gateway 或 ExpressRoute 連接到 Azure。

私有端點的主要好處是不再需要將工作區端點暴露給公共網際網路。 曝光越少越好。

下圖展示了私有端點。

圖示顯示 Azure 中的客戶 VNet 和 Azure Synapse Analytics 工作空間。圖中的元素詳述於下表。

上圖顯示以下重點:

項目 說明
項目 1。 客戶虛擬網路 (VNet) 內部的工作站可存取 Azure Synapse 私有端點。
項目 2。 客戶 VNet 與另一個 VNet 之間的對等連接。
項目 3。 來自對等互連 VNet 的工作站會存取 Azure Synapse 私人端點。
項目 4。 本地網路可透過 VPN 或 ExpressRoute 存取 Azure Synapse 私有端點。
項目 5。 Workspace 端點透過 Azure Private Link 服務的私有端點映射到客戶的 VNet。
項目 6。 Synapse 工作區的公共存取功能被關閉。

在下圖中,私有端點被映射到一個 PaaS 資源的實例,而非整個服務。 若網路發生安全事件,僅會暴露映射的資源實例,將資料外洩與外洩的風險降至最低。

圖示顯示三個工作區:A、B 和 C。圖中的元素如下表所述。

上圖顯示以下重點:

項目 說明
項目 1。 客戶 VNet 中的私有端點映射到工作區 A 中的單一專用 SQL 池(前稱 SQL DW)端點。
項目 2。 其他工作區(B 和 C)中的其他 SQL 池端點無法透過這個私有端點存取,降低了暴露風險。

私有端點跨 Microsoft Entra 租戶和區域運作,因此可以建立跨租戶和區域的 Synapse 工作空間的私有端點連線。 在這種情況下,它會經過 私有端點連線審核流程。 資源擁有者控制哪些私有端點連線被核准或拒絕。 資源擁有者完全掌控誰能連接到他們的工作空間。

下圖展示了一個私有端點連線審核的工作流程。

圖示中顯示租戶 A 的客戶 VNet,以及租戶 B 的客戶 VNet。Azure Private Link 連接它們。圖中的元素詳述於下表。

上圖顯示以下重點:

項目 說明
項目 1。 租戶 A 工作區 A 中的專用 SQL 池(前稱 SQL DW)由租戶 A 客戶 VNet 中的私有端點存取。
項目 2。 租戶 A 工作區 A 中的專用 SQL 池(前稱 SQL DW)由租戶 B 客戶 VNet 中的私有端點透過連線審核流程存取。

管理型虛擬網路(VNet)

Synapse Managed VNet 功能提供 Apache Spark 池與 Synapse 工作空間間管線計算資源的完整網路隔離。 它可以在建立工作區時設定。 此外,它也為同一工作空間內的 Spark 叢集提供網路隔離。 每個工作空間都有自己的虛擬網路,由 Synapse 完全管理。 受管理的 VNet 對使用者來說是看不到的,無法做任何修改。 任何由 Azure Synapse 在受控 VNet 中啟動的管線或 Apache Spark 集區計算資源,都會在其自身的 VNet 內佈建。 這樣一來,就能與其他工作空間完全隔離網路。

此組態可免除為 Apache Spark 集區和管線資源建立及管理 VNet 與網路安全性群組的需求,而這通常是透過 VNet Injection 完成。

因此,Synapse 工作空間中的多租戶服務,如專用 SQL 池與無伺服器 SQL 池, 並不會 在 Managed VNet 內配置。

下圖描繪了工作空間 A 與 B 兩個受管 VNet 之間的網路隔離,其 Apache Spark 池與管線資源則位於受管理 VNet 內。

圖示顯示兩個工作區:工作區 A 與 B,兩者之間有網路隔離。

受管理的私有端點連線

受管理的私有端點連線能安全且無縫地連接到任何支援 Private Link 的 Azure PaaS 服務,無需從客戶的 VNet 建立該服務的私有端點。 Synapse 會自動建立並管理私有端點。 這些連線被 Synapse 管理 VNet 內部配置的運算資源使用,例如 Apache Spark 池與管線資源,私密地 連接至 Azure PaaS 服務。

舉例來說,如果你想從管線私下連接到 Azure 儲存帳戶,通常的做法是為儲存帳戶建立一個私人端點,並使用自設的整合執行階段來連接儲存的私人端點。 使用 Synapse Managed VNets,你可以透過 Azure 整合執行環境隱密地連接至你的儲存帳戶,只需直接建立管理式私有端點連線至該儲存帳戶。 您可以透過此方法在不需要自架整合執行環境的情況下,私密地連接至您的 Azure PaaS 服務。

因此,Synapse 工作空間中的多租戶服務,如專用 SQL 池與無伺服器 SQL 池, 並不會 在 Managed VNet 內配置。 所以,他們不會使用工作區中建立的受管理私有端點連線來進行出站連線。

下圖顯示一個受管理的私有端點從工作區 A 中的受管理 VNet 連接到 Azure 儲存帳號。

圖示顯示工作區 A 使用 Azure Private Link 連接到 Azure 儲存。

進階 Spark 安全

託管 VNet 也為 Apache Spark 池使用者帶來一些額外優勢。 不必擔心像 VNet 注入那樣設定固定子網路位址空間。 Azure Synapse 會自動動態分配這些位址空間給工作負載。

此外,Spark pool 也作為工作群組運作。 這表示每個使用者在與工作區互動時都會擁有自己的 Spark 叢集。 在工作區內建立 Spark 集區,屬於中繼資料資訊,用來指出執行 Spark 工作負載時會指派給使用者的內容。 這表示每個使用者都會在 Managed VNet 內的專用子網路 中擁有自己的 Spark 叢集來執行工作負載。 同一使用者的 Spark pool 會話在相同的運算資源上執行。 提供此功能帶來三大主要好處:

  • 由於根據使用者進行工作負載隔離,因此安全性更高。
  • 減少吵雜的鄰居。
  • 更佳的效能。

資料外洩保護

Synapse 工作區搭配 Managed VNet 還有一項額外的安全功能,稱為 資料外洩保護。 它保護所有來自 Azure Synapse 的出口流量,包括專用 SQL 池、無伺服器 SQL 池、Apache 火花池和管線。 其作法是在工作區層級啟用資料外洩防護 (於建立工作區時),以將傳出連線限制在允許的 Microsoft Entra 租用戶清單中。 預設情況下,只有工作區的主租戶會被加入清單,但工作區建立後隨時都可以新增或修改 Microsoft Entra 租戶的清單。 新增其他租用戶是高特殊權限作業,需要 Synapse Administrator 的較高角色權限。 它有效控制 Azure Synapse 資料外洩至其他組織與租戶,無需複雜的網路安全政策。

對於啟用資料外洩保護的工作空間,Synapse 管線與 Apache Spark 池必須使用受管理的私有端點連線來處理所有出站連線。

專用 SQL 池和無伺服器 SQL 池不使用受管私有端點來進行出站連接;然而,來自 SQL 池的任何外站連線只能指向 核准的目標,這些目標是受管理私有端點連線的目標。

Synapse Private Link Hubs 允許透過 Azure Private Link 從客戶的 VNet 安全連接 Synapse Studio。 此功能對於希望透過 Synapse Studio 從受控且受限的環境中存取 Synapse 工作區的客戶非常有用,因為外出網際網路流量僅限於有限的 Azure 服務。

此作法是建立私人連結中樞資源,並從 VNet 對此中樞建立私人端點。 接著,這個私有端點會被用來使用其完全限定的網域名稱 (FQDN) web.azuresynapse.net,透過來自 VNet 的私人 IP 位址存取工作室。 私有連接中樞資源會透過 Azure Private Link 將 Synapse Studio 的靜態內容下載到使用者的工作站。 此外,必須為各個工作區端點建立獨立的私有端點,以確保與工作區端點的通訊是私密的。

下圖展示了 Synapse Studio 的私人連結樞紐。

圖示顯示 Synapse Studio 的私人連結中樞。圖中的元素詳述於下表。

上圖顯示以下重點:

項目 說明
項目 1。 受限客戶 VNet 的工作站透過網頁瀏覽器存取 Synapse Studio。
項目 2。 為 Private Link Hub 資源建立的私有端點用於透過 Azure Private Link 下載靜態Studio內容。
項目 3。 為 Synapse Workspace 端點建立的私有端點會透過 Azure Private Link 安全存取工作區資源。
項目 4。 受限客戶 VNet 中的網路安全群組規則允許透過埠 443 向有限的 Azure 服務(如 Azure Resource Manager、Azure Front Door 及 Microsoft Entra ID)進行外發流量。
項目 5。 受限客戶 VNet 中的網路安全群組規則會拒絕所有來自 VNet 的其他出站流量。
項目 6。 Synapse 工作區的公共存取功能被關閉。

專用 SQL 集區 (先前稱為 SQL DW)

在 Azure Synapse 推出之前,曾推出一款名為 SQL DW 的 Azure SQL 資料倉儲產品。 現在它已經改名為專用 SQL 池(前身為 SQL DW)。

專用 SQL 池(前稱 SQL DW)是在邏輯 Azure SQL 伺服器中建立的。 它是一個可保護的邏輯結構,作為包括 SQL DW 及其他 Azure SQL 資料庫在內的資料庫集合的中央管理點。

本文前述部分討論的 Azure Synapse 核心網路安全功能,多數也適用於專用 SQL 池(前稱 SQL DW)。 其中包括:

  • IP 防火牆規則
  • 停用公共網路存取
  • 私人端點
  • 透過傳出防火牆規則進行資料外洩防護

由於專用 SQL 池(前稱 SQL DW)是多租戶服務,因此它並非在受管 VNet 中配置。 這表示像是受管VNet和受管私有端點連線這類功能,不適用於它。

網路安全特徵矩陣

以下比較表提供了 Azure Synapse 產品所支援的網路安全功能的高層次概述:

Feature Azure Synapse: Apache Spark pool Azure Synapse: Dedicated SQL pool Azure Synapse: Serverless SQL pool 專用 SQL 池(前稱 SQL DW)
IP 防火牆規則 是的 是的 是的 是的
禁止公共存取 是的 是的 是的 是的
私人端點 是的 是的 是的 是的
資料外洩保護 是的 是的 是的 是的
使用 Synapse Studio 進行安全存取 是的 是的 是的 No
使用 Synapse 私人連結樞紐從受限網路存取 是的 是的 是的 No
受管理的 VNet 與工作空間層級網路隔離 是的 不適用 不適用 不適用
用於出站連線的受管理私有端點連線 是的 不適用 不適用 不適用
使用者層級網路隔離 是的 不適用 不適用 不適用

下一步

在本白皮書系列 的下一篇文章 中,將了解威脅防護。