每個 Azure Databricks 工作區在稱為「工作區儲存體帳戶」的受控資源群組中都有相關聯的 Azure 儲存體帳戶。 工作空間儲存帳號包含工作區系統資料(工作輸出、系統設定與日誌)、DBFS 根節點,以及在某些情況下的 Unity 目錄工作空間目錄。 此頁面說明如何限制僅授權的資源與網路存取您的工作空間儲存帳戶。 你可以使用 Azure CLI 或 PowerShell。
工作區儲存體帳戶的防火牆支援是什麼?
根據預設,工作區記憶體帳戶的 Azure 記憶體帳戶會接受來自所有網路的已驗證連線。 您可以啟用工作區記憶體帳戶的防火牆支援,以限制此存取。 此方法禁止公共網路存取,並防止未經授權的網路存取工作空間儲存帳號。 如果您的組織制定有 Azure 原則來確保儲存體帳戶是私人的,您可能會想要進行此設定。
當你啟用工作空間儲存帳號的防火牆支援時,所有來自外部服務的存取都必須使用 Azure Databricks 經批准的私有端點和 Private Link。 Azure Databricks 建立一個 存取連接器 ,透過 Azure 管理身份連接到儲存裝置。 從 Azure Databricks 的無伺服器運算存取必須使用服務端點或私有端點。
需求
您的工作區必須啟用 VNet 插入,以支援從傳統計算平面的連線。
您的工作區必須啟用 安全的叢集連線(無公用IP/NPIP),以便從傳統計算平台進行連線。
您的工作區必須列在進階版方案中。
您必須擁有獨立子網路,以用於儲存帳戶的私人端點。 除了兩個主要的子網路用於基本 Azure Databricks 功能之外,還有一個額外的子網路。
子網路必須與工作區位於相同的 VNet 中,或位於工作區可以存取的個別 VNet 中。 使用 CIDR 標記法中的最小大小
/28。如果您使用 Cloud Fetch 搭配 Microsoft Fabric Power BI 服務,您必須始終使用閘道來進行工作區儲存體帳戶的私人存取,或停用 Cloud Fetch。 請參考 步驟 2(建議):為 Cloud Fetch 客戶端 VNet 配置私有端點。
對於 Azure CLI 或 PowerShell 部署方法,你必須建立 Azure Databricks 存取連接器並儲存其資源 ID,才能啟用預設的工作空間儲存防火牆。 這需要使用系統指派或使用者指派的受控識別。 請參閱 Access Connector for Databricks。 您無法在受控資源群組中使用 Azure Databricks 存取連接器。
步驟 1:建立儲存體帳戶的私人端點
從您用於 VNet 注入的 VNet 中,為工作區儲存帳戶建立兩個私有端點連接至 目標子資源 值:dfs 和 blob。
注意
如果你在受管理資源群組上收到拒絕指派錯誤,你的工作空間可能早於目前的管理資源群組權限模型。 在繼續之前,請聯絡你的 Databricks 帳戶團隊,更新管理資源群組的設定。
如果你收到關於執行運算資源的警告,請在執行步驟 1 到 4 前停止工作區中的所有運算。
移至工作區。
在 [基本資訊] 底下,按一下 [受控資源群組] 的名稱。
在 [資源] 底下,記下工作區記憶體帳戶的名稱。 名稱通常以
dbstorage開頭。在入口網站頂端的搜尋方塊中,輸入並選取 [私人端點]。
單擊 + 建立。
在 [資源群組 名稱] 字段中,設定您的資源群組。
重要
資源群組不得與您的工作區儲存體帳戶所在的受控資源群組相同。
在 名稱 欄位輸入此私有端點的唯一名稱:
- 對於您為每個來源網路建立的第一個私人端點,請建立 DFS 端點。 Databricks 建議你加上後綴
-dfs-pe - 對於您為每個來源網路建立的第二個私人端點,請建立 Blob 端點。 Databricks 建議你加上後綴
-blob-pe
系統會自動填入 [網路介面名稱] 欄位。
- 對於您為每個來源網路建立的第一個私人端點,請建立 DFS 端點。 Databricks 建議你加上後綴
將 [區域] 字段設定為工作區的區域。
按 [下一步:資源]。
在 [連線方法] 中,選取 [ 連線到我的目錄中的 Azure 資源]。
在 [訂用帳戶] 中,選取工作區位於的訂用帳戶。
在 [資源類型] 中,選取 [Microsoft.Storage/storageAccounts]。
在 [資源] 中,選取您的工作區記憶體帳戶。
在 [目標子資源] 中,選取目標資源類型。
- 針對您為每個來源網路建立的第一個私人端點,請將此設定為 dfs。
- 針對您為每個來源網路建立的第二個私人端點,請將此設定為 blob。
按 [下一步:虛擬網络]。
在 [虛擬網络] 字段中,選取 VNet。
在 [子網] 字段中,將子網設定為記憶體帳戶私人端點所擁有的個別子網。
此欄位可能會自動填入私人端點的子網,但您可能必須明確地加以設定。 你不能使用兩個用於基本 Azure Databricks 工作區功能的 workspace 子網路,通常稱為
private-subnet和public-subnet。如果需要,可以更改 私有 IP 設定 和 應用程式安全群組 預設值。
按 [下一步:DNS]。 [DNS] 索引標籤會自動填入您先前所選取的正確訂用帳戶和資源群組。 如有需要,請更改它們。
注意
如果沒有針對目標子資源類型(dfs 或 blob)的私人 DNS 區域連接到工作空間的 VNet,Azure 會建立一個新的私人 DNS 區域。 如果該子資源類型的私有 DNS 區域已經存在於工作區的 VNet 上,Azure 會自動選擇它。 VNet 每個子資源類型只能有一個私人 DNS 區域。
按 [下一步:標籤], 並視需要新增標籤。
點擊 「下一步:檢視 + 建立 」並檢視欄位。
按一下 建立。
步驟 2(建議):為 Cloud Fetch 客戶端 VNet 配置私有端點
Cloud Fetch 是 ODBC 和 JDBC 中的機制,可透過雲端儲存體並行擷取資料,以更快速地將資料整合到 BI 工具中。 如果你從 BI 工具取得超過 100 MB 的查詢結果,很可能是用 Cloud Fetch。
注意
如果你使用 Microsoft Fabric Power BI 服務搭配 Azure Databricks,並在工作空間儲存帳號啟用防火牆支援,你必須設定虛擬網路資料閘道或本地資料閘道,才能允許私人存取該儲存帳號。 這確保 Fabric Power BI 服務能持續存取工作空間儲存帳號,且 Cloud Fetch 也能正常運作。
這項要求不適用於 Power BI Desktop。
如果您使用 Cloud Fetch,請從 Cloud Fetch 用戶端的任何虛擬網路 (VNet) 建立工作區的儲存帳戶的私人端點。
針對雲端擷取用戶端的每個來源網路,建立兩個使用兩個不同 目標子資源 值的私人端點:dfs 和 blob。 詳見 步驟 1:建立儲存帳號的私人端點 。 在這些步驟中,對於建立私人端點時的 [虛擬網路] 欄位,請確保為每個 Cloud Fetch 用戶端指定來源 VNet。
步驟 3:確認端點核准
建立儲存體帳戶的所有私人端點之後,請檢查它們是否已核准。 系統可能會自動核准,或者您可能需要在儲存體帳戶中予以核准。
- 請到 Azure 入口網站,前往您的工作區。
- 在 [基本資訊] 底下,按一下 [受控資源群組] 的名稱。
- 在 [資源] 底下,按一下名稱以 開頭的 [儲存體帳戶]
dbstorage類型的資源。 - 在側邊欄中,按一下 [網路]。
- 按一下 私人端點連線。
- 檢查 連線狀態 以確認其顯示 核准,或選取它們,然後單擊 核准。
步驟 4:授權無伺服器計算連線
您必須授權無伺服器運算才能連接到您的工作空間儲存帳號。 方法取決於你工作空間儲存帳號建立的時間:
- 當你將工作區連接到 NCC 時,預設的工作區儲存帳號防火牆會自動設定服務端點以實現無伺服器存取。
- 如果想要使用私人端點啟用從 Azure Databricks 無伺服器計算的存取,請連絡您的 Azure Databricks 帳戶小組。
使用 Azure CLI 啟用記憶體防火牆支援
若要使用具有系統指派身分識別的存取連接器來啟用防火牆支援,請在 Cloud Shell 中執行:
az databricks workspace update \ --resource-group "<resource-group-name>" \ --name "<workspace-name>" \ --subscription "<subscription-id>" \ --default-storage-firewall "Enabled" \ --access-connector "{\"id\":\"/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Databricks/accessConnectors/<access-connector-name>\", \"identity-type\":\"SystemAssigned\"}"如需啟用使用者指定身份的存取連接器以支援防火牆,請在 Cloud Shell 中執行:
az databricks workspace update \ --resource-group "<resource-group-name>" \ --name "<workspace-name>" \ --subscription "<subscription-id>" \ --default-storage-firewall "Enabled" \ --access-connector "{\"id\":\"/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Databricks/accessConnectors/<access-connector-name>\", \"identity-type\":\"UserAssigned\", \"user-assigned-identity-id\":\"/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>\"}"若要使用存取連接器停用防火牆支援,請在 Cloud Shell 中執行:
az databricks workspace update \ --name "<workspace-name>" \ --subscription "<subscription-id>" \ --resource-group "<resource-group-name>" \ --default-storage-firewall "Disabled"
使用 PowerShell 啟用記憶體防火牆支援
若要使用具有系統指派身分識別的存取連接器來啟用防火牆支援,請在 Cloud Shell 中執行:
Update-AzDatabricksWorkspace ` -Name "<workspace-name>" ` -ResourceGroupName "<resource-group-name>" ` -SubscriptionId "<subscription-ID>" ` -Sku "Premium" ` -AccessConnectorId "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Databricks/accessConnectors/<access-connector-name>" ` -AccessConnectorIdentityType "SystemAssigned" ` -DefaultStorageFirewall "Enabled"為了啟用使用使用者指定身份的存取連接器來啟用防火牆支援,請在 Cloud Shell 執行:
Update-AzDatabricksWorkspace ` -Name "<workspace-name>" ` -ResourceGroupName "<resource-group-name>" ` -SubscriptionId "<subscription-ID>" ` -Sku "Premium" ` -AccessConnectorId "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Databricks/accessConnectors/<access-connector-name>" ` -AccessConnectorIdentityType "UserAssigned" ` -AccessConnectorUserAssignedIdentityId "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>" ` -DefaultStorageFirewall "Enabled"若要使用存取連接器停用防火牆支援,請在 Cloud Shell 中執行:
Update-AzDatabricksWorkspace ` -Name "<workspace-name>" ` -ResourceGroupName "<resource-group-name>" ` -SubscriptionId "<subscription-ID>" ` -DefaultStorageFirewall "Disabled"