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

SI APPLICA A: NoSQL MongoDB Gremlin

Questo articolo descrive come configurare endpoint privati gestiti per l'archivio analitico di Azure Cosmos DB. Se si usa l'archivio transazionale, vedere l’articolo Endpoint privati per l'archivio transazionale. Gli endpoint privati gestiti consentono di limitare l'accesso di rete dell'archivio analitico di Azure Cosmos DB a una rete virtuale gestita associata all'area di lavoro di Azure Synapse. Gli endpoint privati gestiti stabiliscono un collegamento privato con l'archivio analitico.

Nota

Se per Azure Cosmos DB si usano zone con DNS privato e si desidera 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) collegata 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 rete virtuale gestita ed esfiltrazione di dati

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

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

  • 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 i pool SQL serverless di Synapse, è possibile eseguire query su qualsiasi account Azure Cosmos DB tramite Collegamento ad Azure Synapse. Tuttavia, le richieste di scrittura che creano tabelle esterne come select (CETAS) sono consentite solo per endpoint privati approvati nella rete virtuale dell'area di lavoro.

Nota

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

Aggiungere endpoint privati gestiti per l'archivio analitico di Azure Cosmos DB

  1. Accedere 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 schedaGestisci.

  5. Passare a Endpoint privati gestiti e selezionare Nuovo

    Creare un nuovo endpoint privato per l'archivio analitico.

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

    Selezionare l'API Azure Cosmos DB per NoSQL per creare un endpoint privato.

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

    • Nome: nome per l'endpoint privato gestito. Dopo la creazione, il nome non può essere aggiornato.
    • Descrizione: fornire una descrizione 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.
    • Risorsa secondaria 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 di account OLTP o transazionale.

    Nota

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

    Scegliere analitico per la sottorisorsa di destinazione.

  8. Dopo la creazione, passare al nome dell'endpoint privato e selezionare Gestisci approvazioni nel portale di Azure.

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

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

    Verificare che l'endpoint privato sia approvato.

Usare Apache Spark per Azure Synapse Analytics

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

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

  • Se si usa Collegamento ad Azure Synapse per eseguire le 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/letture di streaming nell'archivio transazionale, aggiungere un endpoint privato SQL o MongoDB gestito per l'account Azure Cosmos DB. Inoltre è necessario impostare connectionMode su Gateway, come mostrato 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 sarà bloccato dall'accesso all'account. Questo avviene a causa dei controlli di isolamento rete nell'account Azure Cosmos DB.

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

  1. Consentire all'area di lavoro Synapse di accedere all'account Azure Cosmos DB specificando l’impostazione NetworkAclBypassResourceId 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 dovranno trovarsi nello stesso tenant di Microsoft Entra.

  2. Ora è possibile accedere all'account dai pool SQL serverless usando le query T-SQL tramite Collegamento ad Azure Synapse. Tuttavia, per garantire l'isolamento 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 per l’accesso pubblico.

Importante

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

Passaggi successivi