Partager via


Activer l’accès privé dans Azure DocumentDB

Azure Private Link est un service puissant qui permet aux utilisateurs de se connecter à Azure DocumentDB via un point de terminaison privé désigné. Ce point de terminaison privé se compose d’adresses IP privées situées dans un sous-réseau au sein de votre propre réseau virtuel. Le point de terminaison vous permet de restreindre l’accès au produit Azure DocumentDB uniquement via des adresses IP privées. Le risque d’exfiltration des données est considérablement réduit en intégrant Private Link à des stratégies de groupe de sécurité réseau strictes. Pour mieux comprendre les points de terminaison privés, consultez Qu’est-ce qu’Azure Private Link ?.

Note

Private Link sécurise votre connexion, mais elle n’empêche pas vos points de terminaison Azure DocumentDB d’être résolus par dns public. La filtrage des demandes entrantes est gérée au niveau de l’application, et non au niveau du transport ou du réseau.

Private Link offre la possibilité d’accéder à Azure DocumentDB à partir de votre réseau virtuel ou de n’importe quel réseau virtuel pair connecté. En outre, les ressources liées à Private Link sont accessibles localement via un peering privé, via VPN ou Azure ExpressRoute.

Pour établir une connexion, Azure DocumentDB avec Private Link prend en charge les méthodes d’approbation automatique et manuelle.

Prerequisites

  • Un abonnement Azure

  • Un cluster Azure DocumentDB existant

    • Si vous n’avez pas de cluster, créez un cluster

Créer un cluster avec un point de terminaison privé à l’aide du portail Azure

Procédez comme suit pour créer un cluster Azure DocumentDB avec un point de terminaison privé à l’aide du portail Azure :

  1. Connectez-vous au portail Azure, puis sélectionnez Créer une ressource dans le coin supérieur gauche du portail Azure.

  2. Dans la page Créer une ressource , sélectionnez Bases de données , puis Azure DocumentDB.

  3. Dans la page d’option Sélectionner l’API, dans la vignette MongoDB , sélectionnez Créer.

  4. Choisissez le type de ressource de cluster .

  5. Dans la page Créer un cluster Azure DocumentDB , sélectionnez ou créez un groupe de ressources, entrez un nom de cluster et un emplacement, puis entrez et confirmez le mot de passe administrateur.

  6. Sélectionnez Suivant : Mise en réseau.

  7. Sélectionnez l’onglet Mise en réseau , pour la méthode Connectivité, sélectionnez Accès privé.

  8. Dans l’écran Créer un point de terminaison privé, entrez ou sélectionnez les valeurs appropriées pour :

    Réglage Valeur
    groupe de ressources Sélectionnez un groupe de ressources.
    Nom Entrez n’importe quel nom pour votre point de terminaison privé. Si ce nom est pris, créez-en un unique.
    Nom de l’interface réseau Entrez n’importe quel nom pour votre interface réseau. Si ce nom est pris, créez-en un unique.
    Emplacement Sélectionnez la région dans laquelle vous souhaitez déployer Private Link. Créez le point de terminaison privé dans le même emplacement que celui où existe votre réseau virtuel.
    Type de ressource Sélectionnez Microsoft.DocumentDB/mongoClusters.
    Ressource cible Sélectionnez la ressource Azure DocumentDB que vous avez créée.
    Sous-ressource cible Sélectionnez le type de sous-ressource de la ressource sélectionnée précédemment que votre point de terminaison privé doit avoir la possibilité d’accéder.
    Réseau virtuel Sélectionnez votre réseau virtuel.
    Sous-réseau Sélectionnez votre sous-réseau.
    Intégrer à une zone DNS privée Sélectionnez Oui. Pour vous connecter en privé à votre point de terminaison privé, vous avez besoin d’un enregistrement DNS. Nous vous recommandons d’intégrer votre point de terminaison privé à une zone DNS privée. Vous pouvez également utiliser vos propres serveurs DNS ou créer des enregistrements DNS à l’aide des fichiers hôtes sur vos machines virtuelles. Lorsque vous sélectionnez Oui pour cette option, un groupe de zones DNS privé est également créé. Le groupe de zones DNS est un lien entre la zone DNS privée et le point de terminaison privé. Ce lien vous aide à mettre à jour automatiquement la zone DNS privée en cas de mise à jour vers le point de terminaison privé. Par exemple, lorsque vous ajoutez ou supprimez des régions, la zone DNS privée est automatiquement mise à jour.
    Nom de la configuration Sélectionnez votre abonnement et votre groupe de ressources. La zone DNS privée est déterminée automatiquement. Vous ne pouvez pas le modifier à l’aide du portail Azure.
  9. Sélectionnez OK.

  10. Sélectionnez Suivant : Révision des balises>+ créer. Dans la page Vérifier + créer , sélectionnez Créer.

Activer l’accès privé sur un cluster existant

Pour créer un point de terminaison privé vers un nœud d’un cluster existant, ouvrez la page Mise en réseau du cluster.

  1. Sélectionnez Ajouter un point de terminaison privé.

    Capture d’écran de la sélection de l’option Ajouter un point de terminaison privé sur l’écran Mise en réseau.

  2. Sous l’onglet Informations de base de l’écran Créer un point de terminaison privé, confirmez l’Abonnement, le Groupe de ressources et la Région. Entrez un Nom pour le point de terminaison, tel que mon-cluster-1 et un Nom d’interface réseau, tel que mon-cluster-1-nic.

    Note

    Sauf si vous avez une bonne raison de faire un choix différent, nous vous recommandons de choisir un abonnement et une région qui correspondent à ceux de votre cluster. Les valeurs par défaut des champs de formulaire peuvent être incorrectes. Vérifiez-les et mettez-les à jour si nécessaire.

  3. Sélectionnez Suivant : Ressource. Choisissez « Microsoft.DocumentDB/mongoClusters » pour le type de ressource, puis choisissez le cluster cible pour la ressource. Pour la sous-ressource Cible, choisissez « MongoCluster ».

  4. Sélectionnez Suivant : réseau virtuel. Choisissez le réseau virtuel et le sous-réseau désirés. Sous Configuration d’adresse IP privée, sélectionnez Allouer statiquement l’adresse IP ou conservez l’adresse IP par défaut, Allouer dynamiquement l’adresse IP.

  5. Sélectionnez Suivant : DNS.

  6. Sous Intégration de DNS privé, pour Intégrer à une zone DNS privée, conservez la valeur par défaut Oui ou sélectionnez Non.

Note

L’intégration DNS privée doit être activée sur le cluster pour une résolution DNS appropriée.

  1. Sélectionnez Suivant : Balises > et ajoutez les balises souhaitées.

  2. Sélectionnez Vérifier + créer. Passez en revue les paramètres, puis sélectionnez Créer lorsque vous êtes satisfait.

Créer un point de terminaison privé à l’aide d’Azure CLI

Exécutez le script Azure CLI suivant pour créer un point de terminaison privé nommé myPrivateEndpoint pour un compte Azure DocumentDB existant. Remplacez les valeurs de variable par les détails de votre environnement.

# Resource group where the Azure DocumentDB account and virtual network resources are located  
ResourceGroupName="myResourceGroup" 

# Name of the existing Azure DocumentDB account  
ClusterName="myMongoCluster" 

# Subscription ID where the Azure DocumentDB account and virtual network resources are located  
SubscriptionId="<your Azure subscription ID>"  

# API type of your Azure DocumentDB account: Sql, SqlDedicated, MongoCluster, Cassandra, Gremlin, or Table 
SubResourceType="MongoCluster"  

# Name of the virtual network to create  
VNetName="myVnet"  

# Name of the subnet to create  
SubnetName="mySubnet"  

# Name of the private endpoint to create  
PrivateEndpointName="myPrivateEndpoint"  

# Name of the private endpoint connection to create 
PrivateConnectionName="myConnection" 

az network vnet create \
  --name $VNetName \
  --resource-group $ResourceGroupName \
  --subnet-name $SubnetName 

az network vnet subnet update \
  --name <name> \
  --resource-group $ResourceGroupName \
  --vnet-name $VNetName \
  --disable-private-endpoint-network-policies true 

az network private-endpoint create \
  --name $PrivateEndpointName \
  --resource-group $ResourceGroupName \
  --vnet-name $VNetName \
  --subnet $SubnetName \
  --private-connection-resource-id "/subscriptions/$SubscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.DocumentDB/mongoClusters/$ClusterName" \
  --group-ids MongoCluster --connection-name $PrivateConnectionName 

Intégrer le point de terminaison privé à une zone DNS privée

Après avoir créé le point de terminaison privé, vous devez l’intégrer à une zone DNS privée à l’aide du script Azure CLI suivant :

Note

L’intégration DNS privée doit être activée sur le cluster pour une résolution DNS appropriée.

#Zone name differs based on the API type and group ID you are using. 
zoneName="privatelink.mongocluster.cosmos.azure.com" 

az network private-dns zone create \
  --resource-group $ResourceGroupName \
  --name $zoneName 

az network private-dns link vnet create --resource-group $ResourceGroupName \
  --zone-name $zoneName \
  --name <dns-link-name> \
  --virtual-network $VNetName \
  --registration-enabled false 

#Create a DNS zone group
az network private-endpoint dns-zone-group create \
  --resource-group $ResourceGroupName \
  --endpoint-name <pe-name> \
  --name <zone-group-name> \
  --private-dns-zone $zoneName \
  --zone-name mongocluster 

Obtenez la chaîne de connexion pour se connecter

Utilisez toujours la mongodb+srv chaîne de connexion pour vous connecter à la base de données à partir d’un client avec une adresse IP privée qui a accès au point de terminaison privé affecté au cluster Azure DocumentDB.

  1. Sélectionnez un cluster Azure DocumentDB existant.
  2. Dans la barre latérale du cluster, sous Paramètres, sélectionnez Chaînes de connexion.
  3. Copiez la chaîne de connexion globale en lecture-écriture ou votre propre chaîne de connexion pour l'authentification native de DocumentDB ou l'authentification Microsoft Entra ID.

Note

Sur un cluster réplica, seules les chaînes de connexion propres sont fournies.

  1. Utilisez la chaîne de connexion copiée dans vos outils d’application ou de gestion pour vous connecter au cluster.
az network private-link-resource list \
  -g <rg-name> \
  -n <resource-name> \
  --type Microsoft.DocumentDB/mongoClusters 

Vérifier et résoudre les problèmes de connectivité de point de terminaison privé

Après avoir créé un point de terminaison privé pour votre cluster Azure DocumentDB, il est important de vérifier que la résolution DNS fonctionne correctement et que vos applications peuvent se connecter via le point de terminaison privé.

Vérifier l’état du point de terminaison privé

Tout d’abord, vérifiez que le point de terminaison privé est correctement approvisionné et connecté :

  1. Dans le portail Azure, accédez à votre cluster Azure DocumentDB.
  2. Dans la barre latérale du cluster, sous Paramètres, sélectionnez Mise en réseau.
  3. Vérifiez que le point de terminaison privé apparaît dans la liste avec l’état Approuvé.
  4. Sélectionnez le nom du point de terminaison privé pour afficher ses détails, y compris l’adresse IP privée affectée.

Vous pouvez également utiliser Azure CLI pour vérifier l’état du point de terminaison privé :

az network private-endpoint show \
  --resource-group $ResourceGroupName \
  --name $PrivateEndpointName

Tester la résolution DNS

Azure DocumentDB utilise des enregistrements SRV pour la découverte des services lors de l’utilisation du format de chaîne de connexion mongodb+srv. Pour vérifier que la résolution DNS fonctionne correctement, testez la résolution DNS à partir d’une machine virtuelle ou d’une ressource au sein du même réseau virtuel ou d’un réseau homologué.

Test DNS Windows

À partir d’une machine Windows connectée au réseau virtuel, utilisez les commandes suivantes :

  1. Testez la résolution de l’enregistrement SRV :

    Resolve-DnsName -Name _mongodb._tcp.<your-cluster-name>.mongocluster.cosmos.azure.com -Type SRV
    

    La sortie doit afficher les enregistrements SRV pointant vers vos nœuds de cluster dans la zone DNS privée.

  2. Résolvez les noms d’hôte de nœud individuels pour vérifier qu’ils sont résolus en adresses IP privées :

    Resolve-DnsName -Name <your-node-hostname>.mongocluster.cosmos.azure.com
    

    La sortie doit afficher des adresses IP privées (par exemple, 10.x.x.x) au lieu d’adresses IP publiques.

  3. Utilisez nslookup comme alternative.

    nslookup -type=SRV _mongodb._tcp.<your-cluster-name>.mongocluster.cosmos.azure.com
    nslookup <your-node-hostname>.mongocluster.cosmos.azure.com
    

Tests DNS Linux et macOS

À partir d’une machine Linux ou macOS connectée au réseau virtuel, utilisez les commandes suivantes :

  1. Testez la résolution d’enregistrements SRV :

    dig _mongodb._tcp.<your-cluster-name>.mongocluster.cosmos.azure.com SRV
    

    La sortie doit afficher les enregistrements SRV avec des cibles pointant vers vos nœuds de cluster.

  2. Résolvez les noms d’hôte de nœud individuels :

    dig <your-node-hostname>.mongocluster.cosmos.azure.com
    

    Les enregistrements A doivent se résoudre en adresses IP privées dans l’espace d’adressage de votre réseau virtuel.

  3. Utilisez nslookup comme alternative

    nslookup -type=SRV _mongodb._tcp.<your-cluster-name>.mongocluster.cosmos.azure.com
    nslookup <your-node-hostname>.mongocluster.cosmos.azure.com
    

Scénarios courants de résolution des problèmes

Si vous rencontrez des problèmes de connectivité, vérifiez les points suivants :

La résolution DNS échoue ou retourne des adresses IP publiques

  • Vérifiez que la zone DNS privée est correctement liée à votre réseau virtuel.
  • Vérifiez que le groupe de zones DNS est correctement configuré sur le point de terminaison privé.
  • Vérifiez que les paramètres DNS de votre réseau virtuel sont définis pour utiliser le DNS fourni par Azure (168.63.129.16) ou un serveur DNS personnalisé qui transfère les requêtes à Azure DNS.
  • Vérifiez que vous testez à partir d’une ressource au sein du réseau virtuel ou d’un réseau correctement associé.

Temps d'attente de connexion ou défaillances

  • Vérifiez que les règles de groupe de sécurité réseau (NSG) sur le sous-réseau autorisent la connectivité sortante sur le port 27017 (port par défaut MongoDB).
  • Vérifiez que l’interface réseau du point de terminaison privé dispose de l’adresse IP privée appropriée.
  • Vérifiez que l’application ou le client utilise le format de chaîne de connexion correct (mongodb+srv).
  • Vérifiez que les règles de pare-feu sur le cluster Azure DocumentDB autorisent les connexions à partir du point de terminaison privé.

Zone DNS privée non résolue

  • Vérifiez que le nom de la zone DNS privée correspond au format attendu : privatelink.mongocluster.cosmos.azure.com.
  • Vérifiez qu’il existe des enregistrements A dans la zone DNS privée de vos nœuds de cluster.
  • Vérifiez que la liaison de réseau virtuel est active et correctement configurée dans la zone DNS privée.

Afficher les détails du point de terminaison privé

Pour afficher des informations détaillées sur la configuration de votre point de terminaison privé, utilisez la commande Azure CLI suivante :

az network private-endpoint show \
  --resource-group $ResourceGroupName \
  --name $PrivateEndpointName \
  --query '{Name:name, PrivateIpAddress:customDnsConfigs[0].ipAddresses[0], FQDN:customDnsConfigs[0].fqdn, ProvisioningState:provisioningState}' \
  --output table

Cette commande affiche des informations clés, notamment l’adresse IP privée, le nom de domaine complet (FQDN) et l’état d’approvisionnement.