Configurer Azure Private Link pour le magasin analytique Azure Cosmos DB

S’APPLIQUE À : NoSQL MongoDB Gremlin

Dans cet article, vous allez apprendre à configurer des points de terminaison privés managés pour le magasin analytique Azure Cosmos DB. Si vous utilisez le magasin transactionnel, consultez l’article Points de terminaison privés pour le magasin transactionnel. À l’aide de points de terminaison privés managés, vous pouvez limiter l’accès réseau de votre magasin analytique Azure Cosmos DB à un réseau virtuel managé associé à votre espace de travail Azure Synapse. Les points de terminaison privés managés établissent une liaison privée avec votre magasin analytique.

Notes

Si vous utilisez des zones DNS privées pour Azure Cosmos DB et que vous souhaitez créer un point de terminaison privé Synapse géré dans la sous-ressource du magasin analytique, vous devez d’abord créer une zone DNS pour le magasin analytique (privatelink.analytics.cosmos.azure.com) lié au réseau virtuel de votre instance Azure Cosmos DB.

Activer un point de terminaison privé pour le magasin analytique

Configurer un espace de travail Azure Synapse Analytics avec un réseau virtuel managé et l’exfiltration de données

Créez un espace de travail dans Azure Synapse Analytics avec l’option d’exfiltration de données activée. Avec la protection contre l’exfiltration de données, vous empêchez les utilisateurs malveillants potentiels de copier ou transférer des données à partir de vos ressources Azure vers des emplacements en dehors de l’étendue de votre organisation.

Les restrictions d’accès suivantes s’appliquent quand la protection contre l’exfiltration de données est activée pour un espace de travail Azure Synapse Analytics :

  • Si vous utilisez Azure Spark pour Azure Synapse Analytics, l’accès est autorisé uniquement aux points de terminaison privés managés qui sont approuvés pour le magasin analytique Azure Cosmos DB.

  • Si vous utilisez des pools SQL serverless Synapse, vous pouvez interroger n’importe quel compte Azure Cosmos DB avec Azure Synapse Link. Toutefois, les requêtes d’écriture CETAS (create external tables as select) sont uniquement autorisées aux points de terminaison privés managés et approuvés dans le réseau virtuel de l’espace de travail.

Notes

Vous ne pouvez pas modifier la configuration du réseau virtuel managé et de la protection contre l’exfiltration de données après que l’espace de travail a été créé.

Ajouter un point de terminaison privé managé pour le magasin analytique Azure Cosmos DB

  1. Connectez-vous au portail Azure.

  2. Dans le portail Azure, accédez à votre espace de travail Synapse Analytics et ouvrez le volet Vue d’ensemble.

  3. Lancez Synapse Studio en accédant au volet Bien démarrer et en sélectionnant Ouvrir sous Ouvrir Synapse Studio.

  4. Dans Synapse Studio, ouvrez l’onglet Gérer.

  5. Accédez à Points de terminaison privés managés, puis sélectionnez Nouveau

    Create a new private endpoint for analytical store.

  6. Sélectionnez le type de compte Azure Cosmos DB (API pour NoSQL)>Continuer.

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

  7. Remplissez le formulaire Nouveau point de terminaison privé managé avec les informations suivantes :

    • Nom : nom du point de terminaison privé managé. Ce nom ne pourra pas être changé une fois le point de terminaison créé.
    • Description : entrez une description qui identifie clairement le point de terminaison privé.
    • Abonnement Azure : sélectionnez un compte Azure Cosmos DB dans la liste des comptes disponibles dans vos abonnements Azure.
    • Nom du compte Azure Cosmos DB : sélectionnez un compte Azure Cosmos DB existant de type SQL ou MongoDB.
    • Sous-ressource cible : sélectionnez l’une des options suivantes : Analytique, si vous souhaitez ajouter le point de terminaison privé pour le magasin analytique Azure Cosmos DB. NoSQL (ou MongoDB), si vous souhaitez ajouter le point de terminaison pour un compte transactionnel ou OLTP.

    Notes

    Vous pouvez ajouter des points de terminaison privés de magasin transactionnel et de magasin analytique au même compte Azure Cosmos DB dans un espace de travail Azure Synapse Analytics. Si vous voulez seulement exécuter des requêtes analytiques, vous pouvez mapper seulement le point de terminaison privé analytique.

    Choose analytical for the target subresource.

  8. Après la création, accédez au nom du point de terminaison privé et sélectionnez Gérer les approbations dans le portail Azure.

  9. Accédez à votre compte Azure Cosmos DB, sélectionnez le point de terminaison privé, puis sélectionnez Approuver.

  10. Revenez à l’espace de travail Synapse Analytics et cliquez sur Actualiser dans le volet Points de terminaison privés managés. Vérifiez que le point de terminaison privé affiche l’état Approuvé.

    Verify that the private endpoint is approved.

Utiliser Apache Spark pour Azure Synapse Analytics

Si vous avez créé un espace de travail Azure Synapse avec la protection contre l’exfiltration de données activée, l’accès sortant de Synapse Spark aux comptes Azure Cosmos DB sera bloqué par défaut. De plus, si Azure Cosmos DB possède déjà un point de terminaison privé, Synapse Spark ne pourra pas y accéder.

Pour autoriser l’accès aux données Azure Cosmos DB :

  • Si vous utilisez Azure Synapse Link pour interroger des données Azure Cosmos DB, ajoutez un point de terminaison privé analytique managé pour le compte Azure Cosmos DB.

  • Si vous utilisez des opérations de lecture/écriture par lots et/ou de lecture/écriture en streaming dans un magasin transactionnel, ajoutez un point de terminaison privé managé de type SQL ou MongoDB pour le compte Azure Cosmos DB. Par ailleurs, définissez connectionMode sur Gateway (Passerelle) comme indiqué dans l’extrait de code suivant :

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

Utilisation de pools SQL serverless Synapse

Les pools SQL serverless Synapse utilisent des fonctionnalités multilocataires qui ne sont pas déployées dans le réseau virtuel managé. Si le compte Azure Cosmos DB a déjà un point de terminaison privé, le pool SQL serverless Synapse ne pourra pas accéder au compte à cause des contrôles d’isolation réseau qui sont appliqués au compte Azure Cosmos DB.

Pour configurer l’isolation réseau pour ce compte à partir d’un espace de travail Synapse :

  1. Autorisez l’espace de travail Synapse à accéder au compte Azure Cosmos DB en spécifiant le paramètre NetworkAclBypassResourceId sur le compte.

    Utiliser PowerShell

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

    Utilisation de l’interface de ligne de commande 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"
    

    Remarque

    Le compte Azure Cosmos DB et l’espace de travail Azure Synapse Analytics doivent se trouver sous le même locataire Microsoft Entra.

  2. Vous pouvez maintenant accéder au compte à partir de pools SQL serverless, en exécutant des requêtes T-SQL sur Azure Synapse Link. Toutefois, pour garantir l’isolation réseau des données dans le magasin analytique, vous devez ajouter un point de terminaison privé managé analytique pour ce compte. Sinon, l’accès public aux données dans le magasin analytique sera possible.

Important

Si vous utilisez Azure Synapse Link et que vous avez besoin d’une isolation réseau de vos données dans le magasin analytique, vous devez mapper le compte Azure Cosmos DB dans l’espace de travail Synapse à l’aide d’un point de terminaison privé managé analytique.

Étapes suivantes