為 Azure Cosmos DB 分析存放區設定 Azure Private Link

適用於:NoSQL MongoDB Gremlin

在本文中,您將能瞭解如何為 Azure Cosmos DB 分析存放區設定受控私人端點。 如果您使用的是交易式存放區,請參閱適用於交易式存放區的私人端點。 您能夠使用受控私人端點來將 Azure Cosmos DB 分析存放區的網路存取限制為與您的 Azure Synapse 工作區相關聯的受控虛擬網路。 受控私人端點會建立對您的分析存放區的私人連結。

注意

如果您的 Azure Cosmos DB 使用的是私人 DNS 區域,並且想要建立 Synapse 受控私人端點至分析存放區子資源,您必須先為與 Azure Cosmos DB 虛擬網路相連的分析存放區建立 DNS 區域 (privatelink.analytics.cosmos.azure.com)。

為分析存放區啟用私人端點

使用受控虛擬網路和資料外流,來設定 Azure Synapse Analytics 工作區

在 Azure Synapse Analytics 中建立已啟用「資料外洩」的工作區。 藉由使用資料外洩保護,您能確保惡意使用者將無法從您的 Azure 資源複製資料,或是傳輸到組織範圍外的位置。

在 Azure Synapse Analytics 工作區的資料外洩保護開啟時,將能套用下列存取限制:

  • 如果您使用的式適用於 Azure Synapse Analytics 的 Azure Spark,則只有已核准受控私人端點才能存取。

  • 如果您使用的是 Synapse 無伺服器 SQL 集區,您可以使用 Azure Synapse Link 來查詢任何 Azure Cosmos DB 帳戶。 不過,僅有工作區虛擬網路中的已核准管理私人端點才能進行會建立外部資料表作為選擇 (CETAS) 的寫入要求。

注意

在建立工作區之後,您無法變更受控虛擬網路和資料外洩保護設定。

為 Azure Cosmos DB 分析存放區新增受控私人端點

  1. 登入 Azure 入口網站

  2. 在 Azure 入口網站中,流覽至您的 Synapse Analytics 工作區,然後開啟 [總覽] 窗格。

  3. 流覽至 [開始使用] 窗格以啟動 Synapse Studio,然後選取位於 [開啟Synapse Studio] 下的 [開啟]’。

  4. 在 Synapse Studio 中,開啟 [管理] 索引標籤。

  5. 瀏覽至 [受控私人端點] 並選取 [+ 新增]

    Create a new private endpoint for analytical store.

  6. 選取 [Azure Cosmos DB (API for NoSQL) 帳戶類型]>[繼續]

    Select Azure Cosmos DB API for NoSQL to create a private endpoint.

  7. 在 [新增受控私人端點] 表單中填寫下列詳細資料:

    • 名稱 - 您受控私人端點的名稱。 建立之後即無法更新此名稱。
    • 描述 - 提供容易記住的描述來識別您的私人端點。
    • Azure 訂閱 - 從您的 Azure 訂閱內的可用帳戶清單中,選取一個 Azure Cosmos DB 帳戶。
    • Azure Cosmos DB 帳戶名稱 - 選取 SQL 或 MongoDB 類型的現有 Azure Cosmos DB 帳戶。
    • 目標子資源 - 請選取下列其中一個選項:分析:若是您想為 Azure Cosmos DB 分析存放區新增私人端點。 NoSQL (或 MongoDB):如果您想要加入 OLTP 或交易式帳戶端點。

    注意

    您可以將交易式存放區和分析存放區私人端點新增至 Azure Synapse Analytics 工作區中的相同 Azure Cosmos DB 帳戶。 如果您只想要執行分析查詢,建議您只對應分析私用端點即可。

    Choose analytical for the target subresource.

  8. 建立之後,請移至私人端點名稱,然後選取 [管理 Azure 入口網站中的核准]

  9. 流覽至您的 Azure Cosmos DB 帳戶,選取私人端點,然後選取 [核准]

  10. 流覽回 Synapse Analytics 工作區,然後按一下 [受控私人端點] 窗格上的 [重新整理]。 確認私人端點處於 [已核准] 狀態。

    Verify that the private endpoint is approved.

使用適用於 Azure Synapse Analytics 的 Apache Spark

如果您建立的 Azure Synapse 工作區已開啟資料外洩保護,則根據預設,其會封鎖從 Synapse Spark 到 Azure Cosmos DB 帳戶的輸出存取。 此外,如果 Azure Cosmos DB 已有現存的私人端點,Synapse Spark 將會遭到封鎖而無法存取它。

容許對 Azure Cosmos DB 資料的存取:

  • 如果您在查詢 Azure Cosmos DB 資料時使用的是 Azure Synapse Link,請為 Azure Cosmos DB 帳戶新增受控分析私人端點。

  • 如果您使用的是批次寫入/讀取及/或串流寫入/讀取交易式存放區,請為 Azure Cosmos DB 帳戶新增受控 SQLMongoDB 私人端點。 此外,您也應該將 connectionMode 設定為 閘道器,如下列程式碼片段所示:

    # Write a Spark DataFrame into an Azure Cosmos DB container
    # To select a preferred lis of regions in a multi-region account, add .option("spark.cosmos.preferredRegions", "<Region1>, <Region2>")
    
    YOURDATAFRAME.write\
      .format("cosmos.oltp")\
      .option("spark.synapse.linkedService", "<your-Cosmos-DB-linked-service-name>")\
      .option("spark.cosmos.container","<your-Cosmos-DB-container-name>")\
      .option("spark.cosmos.write.upsertEnabled", "true")\
      .option("spark.cosmos.connection.mode", "Gateway")\
      .mode('append')\
      .save()
    
    

使用 Synapse 無伺服器 SQL 集區

Synapse 無伺服器 SQL 集區會使用未部署到受控虛擬網路的多租用戶功能。 如果 Azure Cosmos DB 帳戶具有現存的私人端點,由於 Azure Cosmos DB 帳戶上的網路隔離檢查,Synapse 無伺服器 SQL 集區對帳戶的存取將會被封鎖。

若要從 Synapse 工作區設定此帳戶的網路隔離:

  1. 藉由指定帳戶上的 NetworkAclBypassResourceId 設定,以允許 Synapse 工作區存取 Azure Cosmos DB 帳戶。

    使用 PowerShell

    Update-AzCosmosDBAccount -Name MyCosmosDBDatabaseAccount -ResourceGroupName MyResourceGroup -NetworkAclBypass AzureServices -NetworkAclBypassResourceId "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Synapse/workspaces/wsName"
    

    使用 Azure CLI

    az cosmosdb update --name MyCosmosDBDatabaseAccount --resource-group MyResourceGroup --network-acl-bypass AzureServices --network-acl-bypass-resource-ids "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Synapse/workspaces/wsName"
    

    注意

    Azure Cosmos DB 帳戶和 Azure Synapse Analytics 工作區應位於相同的 Microsoft Entra 租用戶下。

  2. 您現在可以透過 Azure Synapse Link 使用 T SQL 查詢,從無伺服器 SQL 集區存取帳戶。 不過,若要確保分析存放區中資料的網路隔離,您必須為此帳戶新增分析受控私人端點。 否則,分析存放區中的資料將不會封鎖公用存取。

重要

如果您使用的是 Azure Synapse Link 且需要網路隔離分析存放區中的資料,您必須使用分析受控私人端點將 Azure Cosmos DB 帳戶對應到 Synapse 工作區。

下一步