Konfigurieren von Azure Private Link für Azure Cosmos DB-Analysespeicher

GILT FÜR: NoSQL MongoDB Gremlin

In diesem Artikel erfahren Sie, wie Sie verwaltete private Endpunkte für Azure Cosmos DB-Analysespeicher einrichten. Wenn Sie den Transaktionsspeicher verwenden, lesen Sie den Artikel Private Endpunkte für den Transaktionsspeicher. Mithilfe verwalteter privater Endpunkte können Sie den Netzwerkzugriff von Azure Cosmos DB-Analysespeicher auf das verwaltete virtuelle Netzwerk beschränken, das Ihrem Azure Synapse-Arbeitsbereich zugeordnet ist. Mit verwalteten privaten Endpunkten wird eine private Verbindung mit Ihrem Analysespeicher hergestellt.

Hinweis

Wenn Sie private DNS-Zonen für Azure Cosmos DB verwenden und einen von Synapse verwalteten privaten Endpunkt für die Unterressource des Analysespeichers erstellen möchten, müssen Sie zunächst eine DNS-Zone für den Analysespeicher (privatelink.analytics.cosmos.azure.com) erstellen, der mit Ihrem virtuellen Azure Cosmos DB-Netzwerk verknüpft ist.

Aktivieren eines privaten Endpunkts für den Analysespeicher

Einrichten eines Azure Synapse Analytics-Arbeitsbereichs mit einem verwalteten virtuellen Netzwerk und Datenexfiltration

Erstellen Sie einen Arbeitsbereich in Azure Synapse Analytics mit aktivierter Datenexfiltration. Mit dem Schutz vor Datenexfiltration können Sie sicherstellen, dass böswillige Benutzer keine Daten aus Ihren Azure-Ressourcen an Orte außerhalb Ihres Organisationsbereichs kopieren oder übertragen können.

Die folgenden Zugriffsbeschränkungen gelten, wenn der Schutz vor Datenexfiltration für einen Azure Synapse Analytics-Arbeitsbereich aktiviert ist:

  • Wenn Sie Azure Spark für Azure Synapse Analytics verwenden, ist nur der Zugriff auf die genehmigten verwalteten privaten Endpunkte für Azure Cosmos DB-Analysespeicher zulässig.

  • Wenn Sie serverlose Synapse-SQL-Pools verwenden, können Sie mit Azure Synapse Link jedes Azure Cosmos DB-Konto abfragen. Schreibanforderungen, die externe Tabellen mit einer CETAS-Anweisung erstellen, sind jedoch nur für die genehmigten verwalteten privaten Endpunkte im virtuellen Arbeitsbereichsnetzwerk zulässig.

Hinweis

Nachdem der Arbeitsbereich erstellt wurde, können Sie die Konfiguration für das verwaltete virtuelle Netzwerk und die Datenexfiltration nicht mehr ändern.

Hinzufügen eines verwalteten privaten Endpunkts für Azure Cosmos DB-Analysespeicher

  1. Melden Sie sich beim Azure-Portal an.

  2. Navigieren Sie im Azure-Portal zu Ihrem Synapse Analytics-Arbeitsbereich, und öffnen Sie den Bereich Übersicht.

  3. Starten Sie Synapse Studio, indem Sie zum Bereich Erste Schritte navigieren und unter Synapse Studio öffnen die Option Öffnen auswählen.

  4. Öffnen Sie in Synapse Studio die Registerkarte Verwalten.

  5. Navigieren Sie zu Verwaltete private Endpunkte, und wählen Sie Neu aus.

    Create a new private endpoint for analytical store.

  6. Wählen Sie den Kontotyp Azure Cosmos DB (API für NoSQL)>Weiter aus.

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

  7. Füllen Sie das Formular Neuer verwalteter privater Endpunkt mit den folgenden Details aus:

    • Name: Der Name für den verwalteten privaten Endpunkt. Dieser Name kann nach dem Erstellen nicht mehr aktualisiert werden.
    • Beschreibung: Geben Sie eine benutzerfreundliche Beschreibung zum Identifizieren des privaten Endpunkts an.
    • Azure-Abonnement: Wählen Sie ein Azure Cosmos DB-Konto aus der Liste verfügbarer Konten in Ihren Azure-Abonnements aus.
    • Azure Cosmos DB-Kontoname: Wählen Sie ein vorhandenes Azure Cosmos DB-Konto vom Typ SQL oder MongoDB aus.
    • Untergeordnete Zielressource: Wählen Sie eine der folgenden Optionen aus: Analytisch: Wenn Sie den privaten Endpunkt für Azure Cosmos DB-Analysespeicher hinzufügen möchten. NoSQL (oder MongoDB): Wenn Sie einen OLTP- oder Transaktionskontoendpunkt hinzufügen möchten.

    Hinweis

    Sie können private Endpunkte sowohl für den Transaktionsspeicher als auch den Analysespeicher dem gleichen Azure Cosmos DB-Konto in einem Azure Synapse Analytics-Arbeitsbereich hinzufügen. Wenn Sie nur analytische Abfragen ausführen möchten, können Sie auch nur den analytischen privaten Endpunkt zuordnen.

    Choose analytical for the target subresource.

  8. Wechseln Sie nach dem Erstellen zum Namen des privaten Endpunkts, und wählen Sie Genehmigungen im Azure-Portal verwalten aus.

  9. Navigieren Sie zu Ihrem Azure Cosmos DB-Konto, wählen Sie den privaten Endpunkt aus, und wählen Sie dann Genehmigen aus.

  10. Navigieren Sie zurück zum Synapse Analytics-Arbeitsbereich, und klicken Sie im Bereich Verwaltete private Endpunkte auf Aktualisieren. Vergewissern Sie sich, dass der private Endpunkt den Status Genehmigt hat.

    Verify that the private endpoint is approved.

Verwenden von Apache Spark für Azure Synapse Analytics

Wenn Sie einen Azure Synapse-Arbeitsbereich mit aktiviertem Schutz vor Datenexfiltration erstellt haben, wird der ausgehende Zugriff von Synapse Spark auf Azure Cosmos DB-Konten standardmäßig blockiert. Wenn Azure Cosmos DB bereits über einen vorhandenen privaten Endpunkt verfügt, ist der Zugriff darauf für Synapse Spark ebenfalls blockiert.

Zum Genehmigen des Zugriffs auf Azure Cosmos DB-Daten führen Sie die folgenden Schritte aus:

  • Wenn Sie Azure Synapse Link zum Abfragen von Azure Cosmos DB-Daten verwenden, fügen Sie einen verwalteten analytischen privaten Endpunkt für das Azure Cosmos DB-Konto hinzu.

  • Wenn Sie Schreib-/Lesevorgänge in Batches und/oder Schreib-/Lesevorgänge per Streaming in den Transaktionsspeicher verwenden, fügen Sie einen verwalteten privaten SQL- oder MongoDB-Endpunkt für das Azure Cosmos DB-Konto hinzu. Außerdem sollten Sie connectionMode auf Gateway festlegen, wie im folgenden Codeausschnitt gezeigt:

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

Verwenden serverloser Synapse-SQL-Pools

Serverlose Synapse-SQL-Pools nutzen Funktionen für mehrere Mandanten, die im verwalteten virtuellen Netzwerk nicht bereitgestellt werden. Wenn das Azure Cosmos DB-Konto über einen vorhandenen privaten Endpunkt verfügt, wird aufgrund von Überprüfungen der Netzwerkisolation für das Azure Cosmos DB-Konto der Zugriff vom serverlosen Synapse-SQL-Pool auf das Konto blockiert.

Zum Konfigurieren der Netzwerkisolation für dieses Konto über einen Synapse-Arbeitsbereich führen Sie die folgenden Schritte aus:

  1. Gestatten Sie dem Synapse-Arbeitsbereich den Zugriff auf das Azure Cosmos DB-Konto, indem Sie die Einstellung NetworkAclBypassResourceId für das Konto angeben.

    Mithilfe von PowerShell

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

    Mithilfe der 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"
    

    Hinweis

    Das Azure Cosmos DB-Konto und der Azure Synapse Analytics-Arbeitsbereich sollten zum selben Microsoft Entra-Mandanten gehören.

  2. Sie können jetzt von serverlosen SQL-Pools auf das Konto zugreifen, indem Sie T-SQL-Abfragen über Azure Synapse Link verwenden. Um jedoch Netzwerkisolation für die Daten im Analysespeicher sicherzustellen, müssen Sie für dieses Konto einen analytischen verwalteten privaten Endpunkt hinzufügen. Andernfalls werden die Daten im Analysespeicher nicht für den öffentlichen Zugriff blockiert.

Wichtig

Wenn Sie Azure Synapse Link verwenden und Netzwerkisolation für Ihre Daten im Analysespeicher benötigen, müssen Sie das Azure Cosmos DB-Konto dem Synapse-Arbeitsbereich mithilfe eines analytischen verwalteten privaten Endpunkts zuordnen.

Nächste Schritte