Configurare collegamento privato di Azure per l'archivio analitico di Azure Cosmos DB

SI APPLICA A: Nosql Mongodb Gremlin

Questo articolo illustra come configurare endpoint privati gestiti per l'archivio analitico di Azure Cosmos DB. Se si usa l'archivio transazionale, vedere Endpoint privati per l'archivio transazionale . Usando gli endpoint privati gestiti, è possibile limitare l'accesso di rete dell'archivio analitico di Azure Cosmos DB a un Rete virtuale gestito associato all'area di lavoro di Azure Synapse. Gli endpoint privati gestiti stabiliscono un collegamento privato all'archivio analitico.

Nota

Se si usano DNS privato zone per Azure Cosmos DB e si vuole creare un endpoint privato gestito da Synapse nella sotto-risorsa dell'archivio analitico, è prima necessario creare una zona DNS per l'archivio analitico (privatelink.analytics.cosmos.azure.com) collegato alla rete virtuale di Azure Cosmos DB.

Abilitare un endpoint privato per l'archivio analitico

Configurare l'area di lavoro di Azure Synapse Analytics con una rete virtuale gestita ed esfiltrazione di dati

Creare un'area di lavoro in Azure Synapse Analytics con l'esfiltrazione dei dati abilitata. Con la protezione dall'esfiltrazione dei dati, è possibile assicurarsi che gli utenti malintenzionati non possano copiare o trasferire dati dalle risorse di Azure a posizioni esterne all'ambito dell'organizzazione.

Le restrizioni di accesso seguenti sono applicabili quando la protezione dell'esfiltrazione dei dati è attivata per un'area di lavoro di Azure Synapse Analytics:

  • Se si usa Azure Spark per Azure Synapse Analytics, l'accesso è consentito solo agli endpoint privati gestiti approvati per l'archivio analitico di Azure Cosmos DB.

  • Se si usano pool SQL serverless di Synapse, è possibile eseguire query su qualsiasi account Azure Cosmos DB usando Azure Collegamento a Synapse. Tuttavia, le richieste di scrittura che creano tabelle esterne come select (CETAS) sono consentite solo agli endpoint privati approvati nella rete virtuale dell'area di lavoro.

Nota

Non è possibile modificare la configurazione della rete virtuale gestita e dell'esfiltrazione dei dati dopo la creazione dell'area di lavoro.

Aggiungere un endpoint privato gestito per l'archivio analitico di Azure Cosmos DB

  1. Accedi al portale di Azure.

  2. Dal portale di Azure passare all'area di lavoro Synapse Analytics e aprire il riquadro Panoramica.

  3. Avviare Synapse Studio passando al riquadro Attività iniziali e selezionare Apri in Apri Synapse Studio.

  4. In Synapse Studio aprire la scheda Gestisci .

  5. Passare a Endpoint privati gestiti e selezionare Nuovo

    Create a new private endpoint for analytical store.

  6. Selezionare Continua il tipo di> account Azure Cosmos DB (API per NoSQL).

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

  7. Compilare il modulo Nuovo endpoint privato gestito con i dettagli seguenti:

    • Nome : nome per l'endpoint privato gestito. Questo nome non può essere aggiornato dopo la creazione.
    • Descrizione : fornire una descrizione descrittiva per identificare l'endpoint privato.
    • Sottoscrizione di Azure: selezionare un account Azure Cosmos DB dall'elenco degli account disponibili nelle sottoscrizioni di Azure.
    • Nome dell'account Azure Cosmos DB: selezionare un account Azure Cosmos DB esistente di tipo SQL o MongoDB.
    • Sotto-risorsa di destinazione: selezionare una delle opzioni seguenti: Analitico: se si vuole aggiungere l'endpoint privato per l'archivio analitico di Azure Cosmos DB. NoSQL (o MongoDB): se si vuole aggiungere un endpoint dell'account OLTP o transazionale.

    Nota

    È possibile aggiungere endpoint privati dell'archivio transazionale e dell'archivio analitico allo stesso account Azure Cosmos DB in un'area di lavoro di Azure Synapse Analytics. Se si vogliono eseguire solo query analitiche, è possibile eseguire il mapping solo dell'endpoint privato analitico.

    Choose analytical for the target subresource.

  8. Dopo aver creato, passare al nome dell'endpoint privato e selezionare Gestisci approvazioni in portale di Azure.

  9. Passare all'account Azure Cosmos DB, selezionare l'endpoint privato e selezionare Approva.

  10. Tornare all'area di lavoro Synapse Analytics e fare clic su Aggiorna nel riquadro Endpoint privati gestiti. Verificare che l'endpoint privato sia in stato Approvato .

    Verify that the private endpoint is approved.

Usare Apache Spark per Azure Synapse Analytics

Se è stata creata un'area di lavoro di Azure Synapse con protezione dell'esfiltrazione dei dati attivata, l'accesso in uscita da Synapse Spark agli account Azure Cosmos DB verrà bloccato per impostazione predefinita. Inoltre, se Azure Cosmos DB ha già un endpoint privato esistente, Synapse Spark non potrà accedervi.

Per consentire l'accesso ai dati di Azure Cosmos DB:

  • Se si usa Azure Collegamento a Synapse per eseguire query sui dati di Azure Cosmos DB, aggiungere un endpoint privato analitico gestito per l'account Azure Cosmos DB.

  • Se si usano scritture/letture batch e/o scritture di streaming/letture nell'archivio transazionale, aggiungere un endpoint privato SQL o MongoDB gestito per l'account Azure Cosmos DB. È anche necessario impostare connectionMode su Gateway , come illustrato nel frammento di codice seguente:

    # 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()
    
    

Uso dei pool SQL serverless di Synapse

I pool SQL serverless di Synapse usano funzionalità multi-tenant non distribuite nella rete virtuale gestita. Se l'account Azure Cosmos DB ha un endpoint privato esistente, il pool SQL serverless di Synapse verrà bloccato dall'accesso all'account, a causa dei controlli di isolamento della rete nell'account Azure Cosmos DB.

Per configurare l'isolamento di rete per questo account da un'area di lavoro di Synapse:

  1. Consentire all'area di lavoro di Synapse di accedere all'account Azure Cosmos DB specificando NetworkAclBypassResourceId l'impostazione nell'account.

    Tramite PowerShell

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

    Utilizzare l'interfaccia della riga di comando di Azure

    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"
    

    Nota

    L'account Azure Cosmos DB e l'area di lavoro di Azure Synapse Analytics devono trovarsi nello stesso tenant di Microsoft Entra.

  2. È ora possibile accedere all'account dai pool SQL serverless usando query T-SQL su Azure Collegamento a Synapse. Tuttavia, per garantire l'isolamento di rete per i dati nell'archivio analitico, è necessario aggiungere un endpoint privato gestito analitico per questo account. In caso contrario, i dati nell'archivio analitico non verranno bloccati dall'accesso pubblico.

Importante

Se si usa Azure Collegamento a Synapse ed è necessario l'isolamento di rete per i dati nell'archivio analitico, è necessario eseguire il mapping dell'account Azure Cosmos DB nell'area di lavoro di Synapse usando l'endpoint privato gestito da Analitico.

Passaggi successivi