每個Azure Databricks工作區在一個稱為 workspace storage account 的管理資源群組中都有一個對應的 Azure 儲存帳號。 此帳號包含工作區系統資料(工作輸出、系統設定與日誌)、Databricks 檔案系統根目錄,以及在某些情況下的 Unity 目錄工作區目錄。 你可以使用 Azure CLI 或 PowerShell,限制你工作空間儲存帳號的存取權限,僅限授權的資源和網路。
工作區儲存體帳戶的防火牆支援是什麼?
預設情況下,你的 Workspace 儲存帳號接受所有網路的認證連線。 啟用防火牆支援後,Azure Databricks 會阻擋公共網路存取,並限制存取授權資源。 如果你的組織有需要儲存帳號私有的 Azure 政策,建議你設定這個。
啟用防火牆支援後,需要存取 Workspace 儲存帳號的 Azure Databricks 外部服務必須使用帶有 Private Link 的私有端點。 Azure Databricks 的無伺服器運算必須使用服務端點或私有端點才能存取工作空間儲存帳號。
Azure Databricks 建立一個 存取連線器,以及 Azure 管理的身分識別,以存取工作區儲存體帳戶。
需求
您的工作區必須啟用 VNet 插入,以支援從傳統計算平面的連線。
您的工作區必須啟用 安全的叢集連線(無公用IP/NPIP),以便從傳統計算平台進行連線。
您的工作區必須列在進階版方案中。
您必須擁有獨立子網路,以用於儲存帳戶的私人端點。 除了主要用於基本 Azure Databricks 功能的兩個子網路之外,這還包括其他功能。
子網路必須與工作區位於相同的 VNet 中,或位於工作區可以存取的個別 VNet 中。 使用 CIDR 標記法中的最小大小
/28。如果您使用 Cloud Fetch 搭配 Microsoft Fabric Power BI 服務,必須始終使用 VNet 網路閘道或本地閘道來私密存取工作區儲存帳戶。 請參考 步驟 2(建議):為 Cloud Fetch 客戶端 VNet 配置私有端點。
對於 Azure CLI 或 PowerShell 部署方法,您必須建立 Azure Databricks 存取連接器,並在啟用預設工作空間儲存防火牆前儲存其資源 ID。 這需要使用系統指派或使用者指派的受控識別。 請參見 Databricks 的存取連接器。 你不能在管理資源群組中使用 Azure Databricks 的存取連接器。
將 Azure Databricks 外部的服務連接到儲存帳號
步驟 1:建立儲存體帳戶的私人端點
從您用於 VNet 注入的 VNet 中,為工作區儲存帳戶建立兩個私有端點連接至 目標子資源 值:dfs 和 blob。
注意
如果你在受管理資源群組上收到拒絕指派錯誤,你的工作空間可能早於目前的管理資源群組權限模型。 在繼續之前,請聯絡你的 Azure Databricks 帳號團隊,更新管理資源群組的設定。
如果你收到關於執行運算資源的警告,請在執行步驟 1 到 4 前停止工作區中的所有運算。
移至工作區。
在 [基本資訊] 底下,按一下 [受控資源群組] 的名稱。
在 [資源] 底下,記下工作區記憶體帳戶的名稱。 名稱通常以
dbstorage開頭。在入口網站頂端的搜尋方塊中,輸入並選取 [私人端點]。
單擊 + 建立。
在 [資源群組 名稱] 字段中,設定您的資源群組。
重要
資源群組不得與您的工作區儲存體帳戶所在的受控資源群組相同。
在 名稱 欄位輸入此私有端點的唯一名稱:
- 對於您為每個來源網路建立的第一個私人端點,請建立 DFS 端點。 Azure Databricks建議你加上後綴
-dfs-pe。 - 對於您為每個來源網路建立的第二個私人端點,請建立 Blob 端點。 Azure Databricks建議你加上後綴
-blob-pe。
系統會自動填入 [網路介面名稱] 欄位。
- 對於您為每個來源網路建立的第一個私人端點,請建立 DFS 端點。 Azure Databricks建議你加上後綴
將 [區域] 字段設定為工作區的區域。
按 [下一步:資源]。
在 連線方法中,選擇 連接到我目錄中的 Azure 資源。
在 [訂用帳戶] 中,選取工作區位於的訂用帳戶。
在 Resource type 中,選擇 Microsoft.Storage/storageAccounts。
在 [資源] 中,選取您的工作區記憶體帳戶。
在 [目標子資源] 中,選取目標資源類型。
- 針對您為每個來源網路建立的第一個私人端點,請將此設定為 dfs。
- 針對您為每個來源網路建立的第二個私人端點,請將此設定為 blob。
點擊 Next:Virtual Network。
在 [虛擬網络] 字段中,選取 VNet。
在 [子網] 字段中,將子網設定為記憶體帳戶私人端點所擁有的個別子網。
這個欄位可能會自動填入你私有端點的子網,但你可能需要明確設定。 不要用這兩個工作空間子網來做基本的 Azure Databricks 工作區功能,通常稱為
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 service能持續存取工作空間儲存帳號,且 Cloud Fetch 也能正常運作。
此要求不適用於 Power BI Desktop。
如果您使用 Cloud Fetch,請從 Cloud Fetch 客戶端的 VNet 建立私有端點連接到工作區儲存帳戶。
針對雲端擷取用戶端的每個來源網路,建立兩個使用兩個不同 目標子資源 值的私人端點:dfs 和 blob。 詳見 步驟 1:建立儲存帳號的私人端點 。 在這些步驟中,對於建立私人端點時的 [虛擬網路] 欄位,請確保為每個 Cloud Fetch 用戶端指定來源 VNet。
步驟 3:確認端點核准
在你建立所有私有端點到儲存帳戶後,確認它們是否被核准。 他們可能會自動核准,或者你可能需要在儲存帳號上核准。
- 進入 Azure 入口網站的你的工作區。
- 在 [基本資訊] 底下,按一下 [受控資源群組] 的名稱。
- 在 [資源] 底下,按一下名稱以 開頭的 [儲存體帳戶]
dbstorage類型的資源。 - 在側邊欄中,按一下 [網路]。
- 按一下 私人端點連線。
- 檢查 連線狀態 以確認其顯示 核准,或選取它們,然後單擊 核准。
來自無伺服器運算的連線
注意
Azure Databricks 正在將所有已啟用防火牆的工作空間儲存帳號導入網路安全邊界,允許使用 AzureDatabricksServerless 服務標籤。 此入職流程預計將於 2026 年底完成。
啟用防火牆支援後,Azure Databricks 會自動將工作區儲存帳號導入一個允許 AzureDatabricksServerless 服務標籤的網路安全邊界。 這讓 Azure Databricks 的無伺服器運算能透過服務端點連接。 若要透過私有端點連接,請在 NCC 中為工作空間儲存帳號新增私有端點規則。 參見 設定與Azure資源的私人連線。
如果你想管理自己的網路安全邊界,可以先脫離 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>\"}"要停用使用 Access 連接器的防火牆支援,請在 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"要停用使用 Access 連接器的防火牆支援,請在 Cloud Shell 執行:
Update-AzDatabricksWorkspace ` -Name "<workspace-name>" ` -ResourceGroupName "<resource-group-name>" ` -SubscriptionId "<subscription-ID>" ` -DefaultStorageFirewall "Disabled"