建立及使用受控私人端點

具有Microsoft Fabric 工作區系統管理員許可權的使用者,可以透過工作區設定,從 Fabric 入口網站建立、檢視及刪除受控私人端點。

  • 使用者也可以從工作區設定的 [網路安全性 ] 區段監視受控私人端點的狀態和核准程式。

  • 用戶可以從 Fabric Spark 工作負載使用私人端點名稱來存取數據源。

先決條件

Microsoft.Network 資源提供者必須在 Azure 訂用帳戶中註冊

建立受控私人端點

  1. 在 [網狀架構] 工作區中,流覽至工作區設定,選取 [ 網络安全性] 索引卷標,然後選取 [受控私人端點] 區段中的 [ 建立 ] 選項。

    工作區設定中 [網路安全性] 索引標籤的螢幕快照。

    [ 建立受控私人端點] 對話框隨即開啟。

    工作區設定中 [網路安全性] 索引標籤的螢幕快照。

  2. 指定私人端點的名稱,並在 Azure 資源的資源識別碼中複製。 您可以在 Azure 入口網站頁面的 [屬性] 索引標籤中找到資源識別碼。 如需詳細資訊,請參閱: 如何取得您的 Azure 資源識別碼

    備註

    不支援建立具有完整網域名稱(FQDN)的受控私人端點。

    完成後,選擇建立。

  3. 布建受控私人端點時,[啟用狀態] 會變更為 [成功]。

    [網络] 索引標籤上受控私人端點布建成功指示的螢幕快照。

    此外,私人端點存取的要求也會傳送至數據源。 數據源管理員會在 Azure 入口網站資源頁面上收到其數據源的通知。 在那裡,他們會看到待處理的存取要求以及附加的要求訊息。

以 SQL Server 為例,使用者可以流覽至 Azure 入口網站,並搜尋 “SQL Server” 資源。

  1. 在 [資源] 頁面上,從導覽功能表中選取 [ 網络] ,然後選取 [ 私人存取 ] 索引標籤。

    此螢幕快照顯示 Azure 入口網站中資源 [網络] 頁面上的 [私人存取] 索引標籤。

  2. 數據源管理員應該能夠檢視作用中的私人端點連線和新的連線要求。

    顯示 [私人存取] 標籤頁上擱置要求的螢幕快照。

  3. 系統管理員可以提供商務理由來 核准 或 拒絕 。

    顯示核准表單的螢幕快照。

  4. 當資料來源管理員核准或拒絕要求時,重新整理後,Fabric 工作區設定頁面中的狀態會更新。

    此螢幕快照顯示處於已核准狀態的受控私人端點。

  5. 當狀態變更為 已核准時,端點可以在筆記本或 Spark 作業定義中使用,以從 Fabric 工作區存取儲存在數據源中的數據。

為 Azure API 管理 建立受控私人端點

Fabric 入口網站目前不支援建立 Azure API 管理 的受管理私有端點。 改用 Fabric REST API。

Important

API 管理支援開發者、基礎、標準、標準 v2、Premium 及 Premium v2 層級的入站私有端點。 在傳統層級中,注入至內部或外部虛擬網路的 API 管理實例不支援私人端點。 欲了解更多資訊,請參閱「 透過使用入站私有端點私密連接 API 管理」。

  1. 取得 Microsoft Entra 存取權杖來使用 Fabric 服務。 欲了解更多資訊,請參閱 Fabric API 快速入門。

  2. 請發送以下請求。 用你的工作區 ID 和 API 管理資源資訊取代佔位符。

    POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/managedPrivateEndpoints
    Authorization: Bearer {accessToken}
    Content-Type: application/json
    
    {
      "name": "mpe-apim-gateway",
      "targetPrivateLinkResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.ApiManagement/service/{apimName}",
      "targetSubresourceType": "gateway",
      "requestMessage": "Please approve the managed private endpoint for the API Management gateway.",
      "targetFQDNs": [
        "{apimName}.azure-api.net"
      ]
    }
    

    只有 API Management 的 Gateway 子資源支援輸入 Private Link 連線。

  3. 在 Azure 入口網站中,開啟 API Management 實例並選擇「Network>Inbound Private Endpoint connections」。

  4. 在私有端點連線清單中,打開待處理連線的右鍵選單(...),然後選擇 「批准」。 你不需要打開 Fabric 管理的私有端點資源來核准連線。

  5. 重新整理 Fabric 工作區設定中的網路安全區塊,並確認連線狀態是否已核准。

如果受管理的私有端點配置狀態為 失敗,請建立支援請求,讓服務團隊調查配置錯誤。

在 Fabric 中使用受控私人端點

Microsoft Fabric 筆記本支援使用受控私人端點,實現與安全網路後方數據源的順暢互動,以便於數據探索和處理。 在筆記本中,使用者可以以各種檔格式快速地從其受保護的數據源讀取數據(並將數據寫回至)其 Lakehouse。

本指南提供程式碼範例,協助您開始使用自己的筆記本,以透過受控私人端點存取數據源的數據,例如 SQL DB。

先決條件

  1. 數據源的存取權。 此範例會查看 Azure SQL Server 和 Azure SQL Database。

  2. 登入 Microsoft Fabric 和 Azure 入口網站。

  3. 流覽至 Azure 入口網站中的 Azure SQL Server 資源頁面,然後選取 [ 屬性] 功能表。 複製您想要從 Microsoft Fabric 連線之 SQL Server 的資源識別碼。

  4. 使用 建立受控私人端點中列出的步驟,從 [網狀架構網路安全性設定] 頁面建立受控私人端點。

  5. 一旦 SQL Server 的數據源管理員核准新的私人端點連線要求,您應該能夠使用新建立的受控私人端點。

從筆記本連線到數據源

備註

當你連接到 Azure 儲存體 時,為你的筆記本使用的每個儲存端點建立並核准一個受管理的私有端點。 例如,為子資源建立一個受管理的私有端點,blob以便存取 Blob 儲存體 端點(<storage-account-name>.blob.core.windows.net)。 為子資源建立一個受管理的私有端點dfs,以便存取 Azure Data Lake Storage 端點(<storage-account-name>.dfs.core.windows.net)。 如果你的筆記本同時使用兩個端點,請為每個子資源建立並核准一個受管理的私有端點。

  1. 登入 Microsoft Fabric 入口網站。

  2. 使用首頁左側的體驗切換器來切換 開發 體驗。

  3. 流覽至您想要的工作區,或視需要建立新的工作區。

  4. 若要建立筆記本,請從工作區選取 [ 新增專案 ],然後選擇 [筆記本]。

  5. 現在,在筆記本中,藉由指定 SQL 資料庫的名稱及其連接屬性,您可以透過管理的私人端點連線,讀取資料庫中的數據表,並將它們存入您在 Microsoft Fabric 中的 lakehouse。

  6. 下列 PySpark 程式代碼示範如何連線到 SQL 資料庫。

serverName = "<server_name>.database.windows.net"
database = "<database_name>"
dbPort = 1433
dbUserName = "<username>"
dbPassword = “<db password> or reference based on Keyvault>”

from pyspark.sql import SparkSession

spark = SparkSession.builder \
    .appName("Example") \
    .config("spark.jars.packages", "com.microsoft.azure:azure-sqldb-spark:1.0.2") \
    .config("spark.sql.catalogImplementation", "com.microsoft.azure.synapse.spark") \
    .config("spark.sql.catalog.testDB", "com.microsoft.azure.synapse.spark") \
    .config("spark.sql.catalog.testDB.spark.synapse.linkedServiceName", "AzureSqlDatabase") \ .config("spark.sql.catalog.testDB.spark.synapse.linkedServiceName.connectionString", f"jdbc:sqlserver://{serverName}:{dbPort};database={database};user={dbUserName};password={dbPassword}") \ .getOrCreate()

    
jdbcURL = "jdbc:sqlserver://{0}:{1};database={2}".format(serverName,dbPort,database)
connection = {"user":dbUserName,"password":dbPassword,"driver": "com.microsoft.sqlserver.jdbc.SQLServerDriver"}

df = spark.read.jdbc(url=jdbcURL, table = "dbo.Employee", properties=connection)
df.show()
display(df)

# Write the dataframe as a delta table in your lakehouse
df.write.mode("overwrite").format("delta").saveAsTable("Employee")

# You can also specify a custom path for the table location
# df.write.mode("overwrite").format("delta").option("path", "abfss://yourlakehouse.dfs.core.windows.net/Employee").saveAsTable("Employee")

現在已建立連線,下一個步驟是建立數據框架,以讀取 SQL Database 中的數據表。

支持的數據源

Microsoft Fabric 支援超過 26 個資料來源,使用受控私人端點進行連線。 使用者必須指定資源識別碼,您可以在 Azure 入口網站中其資料來源的 [屬性設定] 頁面中找到。 請確定已遵循資源標識符格式,如下表所示。

服務 資源 ID 格式
認知服務 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.CognitiveServices/accounts/{resource-name}
Azure Databricks /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Databricks/workspaces/{workspace-name}
適用於 MySQL 的 Azure 資料庫 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.DBforMySQL/flexibleServers/{server-name}
適用於 PostgreSQL 的 Azure 資料庫 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{server-name}
Azure Cosmos DB for MongoDB /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.DocumentDB/databaseAccounts/{account-name}
Azure Cosmos DB for NoSQL /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.DocumentDB/databaseAccounts/{account-name}
Azure 監視器專用連結範圍 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Insights/privateLinkScopes/{scope-name}
Azure Key Vault /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.KeyVault/vaults/{vault-name}
Azure 資料總管 (Kusto) /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Kusto/clusters/{cluster-name}
Azure Machine Learning /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.MachineLearningServices/workspaces/{workspace-name}
Microsoft Purview /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Purview/accounts/{account-name}
Azure API 管理(僅限 REST API) /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.ApiManagement/service/{service-name}
Azure 搜尋 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Search/searchServices/{service-name}
Azure SQL Database /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/servers/{server-name}
Azure SQL 資料庫 (Azure SQL 受控執行個體) /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/managedInstances/{instance-name}
Azure Blob 儲存體 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}
Azure Data Lake Storage Gen2 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}
Azure 檔案儲存體 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}
Azure 佇列儲存體 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}
Azure 資料表儲存體 (Azure 表格儲存) /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}
Azure Synapse Analytics /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Synapse/workspaces/{workspace-name}
Azure Synapse Analytics (成品) /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Synapse/workspaces/{workspace-name}
Azure Functions /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Web/sites/{function-app-name}
Azure 事件中樞 /subscriptions/{subscription-id}/resourcegroups/{resource-group-name}/providers/Microsoft.EventHub/namespaces/{namespace-name}
Azure IoT 中樞 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Devices/IotHubs/{iothub-name}
Azure Private Link Service /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Network/privateLinkServices/{private-link-service-name}
Azure 資料管理器(ADME)適用於能源 /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.OpenEnergyPlatform/energyServices/{service-name}

請注意,不支援為 Fabric 租用戶建立私人連結服務的受控私人端點。