分享方式:


受信任的工作區存取

Fabric 可讓您以安全的方式存取啟用防火牆的 Azure Data Lake Storage (ADLS) Gen2 帳戶。 具有工作區身分識別的 Fabric 工作區可以安全地存取 ADLS Gen2 帳戶,並從所選虛擬網路和 IP 位址啟用公用網路存取權。 您可以限制 ADLS Gen2 對特定 Fabric 工作區的存取。

存取具有受信任工作區存取權之儲存體帳戶的 Fabric 工作區需要對要求進行適當的授權。 透過組織帳戶或服務主體的 Microsoft Entra 認證來支援授權。 若要深入了解資源執行個體規則,請參閱從 Azure 資源執行個體授與存取權

若要限制和保護從特定 Fabric 工作區對啟用防火牆的儲存體帳戶的存取權,您可以設定資源執行個體規則,以允許從特定 Fabric 工作區進行存取。

注意

受信任的工作區存取已正式發行,但只能在 F SKU 容量中使用。 如需有關購買 Fabric 訂用帳戶的資訊,請參閱購買 Microsoft Fabric 訂用帳戶。 試用容量不支援受信任的工作區存取。

本文章說明如何:

  • 在 ADLS Gen2 儲存體帳戶中設定受信任的工作區存取

  • 在 Fabric Lakehouse 中建立 OneLake 捷徑,以連線到啟用受信任工作區存取權的 ADLS Gen2 儲存體帳戶。

  • 建立資料管線,以直接連線到啟用防火牆和受信任工作區存取權的 ADLS Gen2 帳戶。

  • 使用 T-SQL COPY 陳述式,從啟用防火牆和受信任工作區存取權的 ADLS Gen2 帳戶將資料內嵌至倉儲。

在 ADLS Gen2 中設定受信任的工作區存取

資源執行個體規則

您可以設定特定的 Fabric 工作區,以根據其工作區身分識別來存取儲存體帳戶。 您可以使用資源執行個體規則來部署 ARM 範本,以建立資源執行個體規則。 若要建立資源執行個體規則:

  1. 登入 Azure 入口網站,然後移至 [自訂部署]

  2. 選擇 [在編輯器中建置自己的範本]。 如需建立資源執行個體規則的範例 ARM 範本,請參閱 ARM 範本範例

  3. 在編輯器中建立資源執行個體規則。 完成後,選取 [檢閱 + 建立]

  4. 在出現的 [基本] 索引標籤上,指定必要的專案和執行個體詳細資料。 完成後,選取 [檢閱 + 建立]

  5. 在出現的 [檢閱+建立] 索引標籤上,檢閱摘要,然後選取 [建立]。 系統會提交規則以進行部署。

  6. 部署完成後,您將能夠前往資源。

注意

  • 只能透過 ARM 範本建立 Fabric 工作區的資源執行個體規則。 不支援透過 Azure 入口網站建立。
  • subscriptionId「00000000-0000-0000-0000-000000000000」必須用於 Fabric 工作區 resourceId。
  • 您可以透過其網址列 URL 取得 Fabric 工作區的工作區識別碼。

顯示已設定的資源執行個體規則的螢幕擷取畫面。

以下是可透過 ARM 範本建立的資源執行個體規則的範例。 如需完整的範例,請參閱 ARM 範本範例

"resourceAccessRules": [

       { "tenantId": " df96360b-9e69-4951-92da-f418a97a85eb",

          "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/Fabric/providers/Microsoft.Fabric/workspaces/b2788a72-eef5-4258-a609-9b1c3e454624"
       }
]

信任的服務例外狀況

如果您針對已從選取的虛擬網路和 IP 位址啟用公用網路存取的 ADLS Gen2 帳戶選取信任的服務例外狀況,則具有工作區身分識別的 Fabric 工作區將能夠存取儲存體帳戶。 選取 [信任的服務例外狀況] 核取方塊時,租用戶 Fabric 容量中具有工作區身分識別的任何工作區都可以存取儲存體帳戶中儲存的資料。

不建議使用此設定,而且未來可能會停止支援此設定。 建議您使用資源執行個體規則來授與特定資源的存取權

誰可以設定儲存體帳戶以進行受信任的服務存取?

儲存體帳戶上的參與者 (Azure RBAC 角色) 可以設定資源執行個體規則或信任的服務例外狀況。

如何在 Fabric 中使用受信任的工作區存取

目前有三種方式可以使用受信任的工作區存取,以安全的方式從 Fabric 存取您的資料:

  • 您可以在 Fabric Lakehouse 中建立新的 ADLS 捷徑,以開始使用 Spark、SQL 和 Power BI 分析您的資料。

  • 您可以建立資料管線,利用受信任的工作區存取直接存取啟用防火牆的 ADLS Gen2 帳戶。

  • 您可以使用 T-SQL Copy 陳述式,利用受信任的工作區存取將資料內嵌至 Fabric 倉儲。

下列各節將示範如何使用這些方法。

建立具有受信任工作區存取權之儲存體帳戶的 OneLake 捷徑

透過在 Fabric 中設定工作區身分識別並在 ADLS Gen2 儲存體帳戶中啟用受信任的工作區存取權,您可以建立 OneLake 捷徑以從 Fabric 存取資料。 您只需在 Fabric Lakehouse 中建立新的 ADLS 捷徑,即可開始使用 Spark、SQL 和 Power BI 分析您的資料。

必要條件

  • 與 Fabric 容量相關聯的 Fabric 工作區。 請參閱工作區身分識別
  • 建立與 Fabric 工作區相關聯的工作區身分識別。
  • 快捷方式中用來作為驗證類型的用戶帳戶或服務主體應該在記憶體帳戶上具有 Azure RBAC 角色。 主體必須在儲存體帳戶範圍內具有儲存體 Blob 資料參與者、儲存體 Blob 資料擁有者或儲存體 Blob 資料讀者角色,或者除了容器範圍內的儲存體 Blob 資料讀者角色以外,還必須在儲存體帳戶範圍內具有儲存體 Blob 委派者角色。
  • 設定儲存體帳戶的資源執行個體規則

注意

  • 符合必要條件的工作區中預先存在的捷徑將自動開始支援受信任的服務存取。
  • 您必須使用儲存體帳戶的 DFS URL 識別碼。 以下是範例:https://StorageAccountName.dfs.core.windows.net

步驟

  1. 首先,在 Lakehouse 中建立新的捷徑。

    建立新的捷徑功能表項目的螢幕擷取畫面。

    [新增捷徑] 精靈隨即開啟。

  2. 在 [外部來源] 下,選取 [Azure Data Lake Storage Gen2]

    顯示選擇 Azure Data Lake Storage Gen2 做為外部來源的螢幕擷取畫面。

  3. 提供已設定受信任工作區存取權之儲存體帳戶的 URL,然後選擇連線的名稱。 針對 [驗證種類],選擇 [組織帳戶] 或 [服務主體]

    顯示捷徑精靈中 URL 規格的螢幕擷取畫面。

    完成時,請選取 [下一步]

  4. 提供捷徑名稱和子路徑。

    顯示捷徑精靈中子路徑定義的螢幕擷取畫面。

    完成後,請選取 [建立]

  5. Lakehouse 捷徑已建立,您應該能夠在捷徑中預覽儲存體資料。

    顯示透過 Lakehouse 捷徑預覽儲存體資料的螢幕擷取畫面。

使用在 Fabric 項目中具有受信任工作區存取權之儲存體帳戶的 OneLake 捷徑

使用 Fabric 中的 OneCopy,您可以從所有 Fabric 工作負載存取具有受信任存取權的 OneLake 捷徑。

  • Spark:您可以使用 Spark 從 OneLake 捷徑存取資料。 在 Spark 中使用捷徑時,它們會在 OneLake 中顯示為資料夾。 您只需引用資料夾名稱即可存取資料。 您可以使用 OneLake 捷徑存取 Spark 筆記本中具有受信任工作區存取權的儲存體帳戶。

  • SQL 分析端點:在 Lakehouse 的 [資料表] 區段中建立的捷徑也可以在 SQL 分析端點中使用。 您可以開啟 SQL 分析端點,並像查詢任何其他資料表一樣查詢資料。

  • 管線:資料管線可以存取具有受信任工作區存取權之儲存體帳戶的受控捷徑。 資料管線可用於透過 OneLake 捷徑來讀取或寫入儲存體帳戶。

  • 資料流程 v2:資料流程 Gen2 可用於存取具有受信任工作區存取權之儲存體帳戶的受控捷徑。 資料流程 Gen2 可以透過 OneLake 捷徑來讀取或寫入儲存體帳戶。

  • 語意模型和報告:與 Lakehouse 的 SQL 分析端點相關聯的預設語意模型可以讀取具有受信任工作區存取權之儲存體帳戶的受控捷徑。 若要查看預設語意模型中的受控資料表,請前往 SQL 分析端點項目,選取 [報告],然後選擇 [自動更新語意模型]

    您也可以建立新的語意模型,引用具有受信任工作區存取權之儲存體帳戶的參考資料表捷徑。 前往 SQL 分析端點,選取 [報告],然後選擇 [新增語意模型]

    您可以在預設語意模型和自訂語意模型之上建立報告。

  • KQL 資料庫:您也可以在 KQL 資料庫中建立 ADLS Gen2 的 OneLake 捷徑。 建立具有受信任工作區存取權的受控捷徑的步驟保持不變。

建立具有受信任工作區存取權之儲存體帳戶的資料管線

透過在 Fabric 中設定工作區身分識別並在 ADLS Gen2 儲存體帳戶中啟用受信任的存取權,您可以建立資料管線以從 Fabric 存取資料。 您可以建立一個新的資料管線,將資料複製到 Fabric Lakehouse,然後可以開始使用 Spark、SQL 和 Power BI 分析資料。

必要條件

  • 與 Fabric 容量相關聯的 Fabric 工作區。 請參閱工作區身分識別
  • 建立與 Fabric 工作區相關聯的工作區身分識別。
  • 用於建立連線的使用者帳戶或服務主體應在儲存體帳戶上具有 Azure RBAC 角色。 主體必須在儲存體帳戶範圍內具有儲存體 Blob 資料參與者、儲存體 Blob 資料擁有者或儲存體 Blob 資料讀者角色。
  • 設定儲存體帳戶的資源執行個體規則

步驟

  1. 首先,在 Lakehouse 中選取 [取得資料]

  2. 選取 [新增資料管線]。 提供管線的名稱,然後選取 [建立]

    顯示 [新增管線] 對話方塊的螢幕擷取畫面。

  3. 選擇 [Azure Data Lake Gen2] 作為資料來源。

    顯示選擇 ADLS Gen2 選取項目的螢幕擷取畫面。

  4. 提供已設定受信任工作區存取權之儲存體帳戶的 URL,然後選擇連線的名稱。 針對 [驗證種類],選擇 [組織帳戶] 或 [服務主體]

    顯示資料來源的連線設定的螢幕擷取畫面。

    完成時,請選取 [下一步]

  5. 選取您需要複製到 Lakehouse 的檔案。

    顯示 file selection.png 的螢幕擷取畫面

    完成時,請選取 [下一步]

  6. 在 [檢閱 + 儲存] 畫面上,選取 [立即開始資料傳輸]。 完成時,選取 [儲存 + 執行]

    顯示 review-and-save-screen.png 的螢幕擷取畫面

  7. 當管線狀態從 [已排入佇列] 變更為 [成功] 時,請前往 Lakehouse,並確認資料表已建立。

使用 T-SQL COPY 陳述式將資料內嵌至倉儲

透過在 Fabric 中設定工作區身分識別並在 ADLS Gen2 儲存體帳戶中啟用受信任的存取權,您可以使用 COPY T-SQL 陳述式將資料內嵌至 Fabric 倉儲。 將資料內嵌至倉儲後,您可以開始使用 SQL 和 Power BI 分析資料。

限制與考量

  • 任何 Fabric F SKU 容量中的工作區都支援受信任的工作區存取。
  • 您只能在 OneLake 捷徑、資料管線和 T-SQL COPY 陳述式中使用受信任的工作區存取。 若要從 Fabric Spark 安全地存取儲存體帳戶,請參閱適用於 Fabric 的受控私人端點
  • 如果具有工作區身分識別的工作區已移轉至非 Fabric 容量,或移轉至非 F SKU Fabric 容量,則受信任的工作區存取將在一小時後停止運作。
  • 在 2023 年 10 月 10 日之前建立的既有捷徑不支援受信任的工作區存取。
  • 無法在 [管理連線和閘道] 中建立或修改受信任工作區存取的連線。
  • 啟用防火牆的儲存體帳戶的連線在 [管理連線和閘道] 中將會處於 [離線] 狀態。
  • 如果您在除捷徑和管線之外的 Fabric 項目或其他工作區中重複使用支援受信任工作區存取的連線,它們可能無法運作。
  • 必須使用 [組織帳戶] 或 [服務主體] 進行驗證,才能存取具有受信任工作區存取權之儲存體帳戶。
  • 管線無法寫入具有受信任工作區存取權之儲存體帳戶上的 OneLake 資料表捷徑。 這是暫時性限制。
  • 最多可以設定 200 個資源執行個體規則。 如需詳細資訊,請參閱 Azure 訂用帳戶限制和配額 - Azure Resource Manager
  • 只有在從選取的虛擬網路和 IP 位址啟用公共存取時,受信任的工作區存取才能運作。
  • 必須透過 ARM 範本建立 Fabric 工作區的資源執行個體規則。 不支援透過 Azure 入口網站 UI 建立的資源執行個體規則。
  • 符合必要條件的工作區中預先存在的捷徑將自動開始支援受信任的服務存取。
  • 如果您的組織具有包含所有服務主體的工作負載身分識別的 Entra 條件式存取原則,則受信任的工作區存取將無法運作。 在這種情況下,您需要從工作負載身分識別的條件式存取原則中排除特定的 Fabric 工作區身分識別。
  • 如果使用服務主體來建立快捷方式,則不支援受信任的工作區存取。

針對受信任工作區存取的問題進行疑難排解

如果 Lakehouse 中針對受防火牆保護的 ADLS Gen2 儲存體帳戶的捷徑無法存取,可能是因為已與在 Lakehouse 所在工作區中沒有管理員、成員或參與者角色的使用者共用 Lakehouse。 這是已知的問題。 補救方法是不要與工作區中沒有管理員、成員或參與者角色的使用者共用 Lakehouse。

ARM 範本範例

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.Storage/storageAccounts",
            "apiVersion": "2023-01-01",
            "name": "<storage account name>",
            "id": "/subscriptions/<subscription id of storage account>/resourceGroups/<resource group name>/providers/Microsoft.Storage/storageAccounts/<storage account name>",
            "location": "<region>",
            "kind": "StorageV2",
            "properties": {
                "networkAcls": {
                    "resourceAccessRules": [
                        {
                            "tenantId": "<tenantid>",
                            "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/Fabric/providers/Microsoft.Fabric/workspaces/<workspace-id>"
                        }]
                }
            }
        }
    ]
}