Delen via


Privétoegang inschakelen in Azure DocumentDB

Azure Private Link is een krachtige service waarmee gebruikers via een aangewezen privé-eindpunt verbinding kunnen maken met Azure DocumentDB. Dit privé-eindpunt bestaat uit privé-IP-adressen die zich in een subnet in uw eigen virtuele netwerk bevinden. Met het eindpunt kunt u de toegang tot het Azure DocumentDB-product beperken via privé-IP-adressen. Het risico op gegevensexfiltratie is aanzienlijk verminderd door Private Link te integreren met strikt NSG-beleid. Voor een beter begrip van privé-eindpunten kunt u overwegen wat is Azure Private Link?

Opmerking

Private Link beveiligt uw verbinding, maar verhindert niet dat uw Azure DocumentDB-eindpunten worden omgezet door openbare DNS. De filtratie van binnenkomende aanvragen wordt verwerkt op toepassingsniveau, niet op transport- of netwerkniveau.

Private Link biedt de flexibiliteit om toegang te krijgen tot Azure DocumentDB vanuit uw virtuele netwerk of vanuit een verbonden gekoppeld virtueel netwerk. Daarnaast zijn resources die zijn gekoppeld aan Private Link on-premises toegankelijk via privépeering, via VPN of Azure ExpressRoute.

Om een verbinding tot stand te brengen, ondersteunt Azure DocumentDB met Private Link zowel automatische als handmatige goedkeuringsmethoden.

Vereiste voorwaarden

  • Een Azure-abonnement

  • Een bestaand Azure DocumentDB-cluster

Een cluster maken met een privé-eindpunt met behulp van Azure Portal

Volg deze stappen om een nieuw Azure DocumentDB-cluster te maken met een privé-eindpunt met behulp van Azure Portal:

  1. Meld u aan bij Azure Portal en selecteer vervolgens Een resource maken in de linkerbovenhoek van Azure Portal.

  2. Selecteer Databases op de pagina Een resource maken en selecteer vervolgens Azure DocumentDB.

  3. Op de pagina API-optie selecteren, selecteer de MongoDB-tegel en klik op Maken.

  4. Kies het cluster-resourcetype.

  5. Op de pagina Een Azure DocumentDB-cluster maken selecteert of maakt u een resourcegroep, voert u een clusternaam en locatie in en voert u het beheerderswachtwoord in en bevestigt u dit.

  6. Selecteer Volgende: Netwerken.

  7. Selecteer het tabblad Netwerken voor connectiviteitsmethode en selecteer Privétoegang.

  8. In het scherm "Privé-eindpunt maken", voer de juiste waarden in of selecteer deze.

    Configuratie Waarde
    Bronnengroep Selecteer een resourcegroep.
    Naam Voer een naam in voor uw privé-eindpunt. Als deze naam wordt gebruikt, maakt u een unieke naam.
    Netwerkinterfacenaam Voer een willekeurige naam in voor uw netwerkinterface. Als deze naam wordt gebruikt, maakt u een unieke naam.
    Locatie Selecteer de regio waar u Private Link wilt implementeren. Maak het privé-eindpunt op dezelfde locatie waar uw virtuele netwerk bestaat.
    Hulpmiddeltype Selecteer Microsoft.DocumentDB/mongoClusters.
    Doelresource Selecteer de Azure DocumentDB-resource die u hebt gemaakt.
    Subresource van doel Selecteer het type subresource voor de resource die u eerder hebt geselecteerd en waartoe uw privé-eindpunt toegang moet hebben.
    Virtueel netwerk Selecteer uw virtuele netwerk.
    Subnet Selecteer uw subnet.
    Integreren met privé-DNS-zone Selecteer Ja. Als u privé verbinding wilt maken met uw privé-eindpunt, hebt u een DNS-record nodig. U wordt aangeraden uw privé-eindpunt te integreren met een privé-DNS-zone. U kunt ook uw eigen DNS-servers gebruiken of DNS-records maken met behulp van de hostbestanden op uw virtuele machines. Wanneer u ja selecteert voor deze optie, wordt er ook een privé-DNS-zonegroep gemaakt. DNS-zonegroep is een koppeling tussen de privé-DNS-zone en het privé-eindpunt. Met deze koppeling kunt u de privé-DNS-zone automatisch bijwerken wanneer het privé-eindpunt wordt bijgewerkt. Wanneer u bijvoorbeeld regio's toevoegt of verwijdert, wordt de privé-DNS-zone automatisch bijgewerkt.
    Configuratienaam Selecteer uw abonnement en resourcegroep. De privé-DNS-zone wordt automatisch bepaald. U kunt deze niet wijzigen met behulp van Azure Portal.
  9. Klik op OK.

  10. Selecteer Volgende: Labels>beoordelen en maken. Selecteer op de pagina Beoordelen en maken de optie Maken.

Privétoegang inschakelen op een bestaand cluster

Als u een privé-eindpunt wilt maken voor een knooppunt in een bestaand cluster, opent u de pagina Netwerken voor het cluster.

  1. Selecteer Privé-eindpunt toevoegen.

    Schermopname van het selecteren van Privé-eindpunt toevoegen op het netwerkscherm.

  2. Bevestig op het tabblad Basis van het scherm Een privé-eindpunt maken het abonnement, de resourcegroep, en de regio. Voer een naam in voor het eindpunt, zoals mijn-cluster-1 en een netwerkinterfacenaam, zoals my-cluster-1-nic.

    Opmerking

    Tenzij u een goede reden hebt om anders te kiezen, raden we u aan een abonnement en regio te kiezen die overeenkomen met die van uw cluster. De standaardwaarden voor de formuliervelden zijn mogelijk niet juist. Controleer deze en werk deze indien nodig bij.

  3. Selecteer Volgende: Hulpmiddel. Kies Microsoft.DocumentDB/mongoClusters voor resourcetype en kies het doelcluster voor Resource. Kies 'MongoCluster' voor de doelsubresource.

  4. Selecteer Volgende: Virtueel netwerk. Kies het gewenste virtuele netwerk en subnet. Selecteer onder Privé-IP-configuratie statisch IP-adres toewijzen of behoud het standaard-IP-adres, dynamisch IP-adres toewijzen.

  5. Selecteer Volgende: DNS.

  6. Houd onder Privé-DNS-integratie voor Integratie met privé-DNS-zone de standaard Ja of selecteer Nee.

Opmerking

Privé-DNS-integratie moet zijn ingeschakeld op het cluster voor de juiste DNS-resolutie.

  1. Selecteer Volgende: Tags en voeg eventuele gewenste tags toe.

  2. Kies Beoordelen + creëren. Controleer de instellingen en selecteer Maken wanneer u tevreden bent.

Een privé-eindpunt maken met behulp van Azure CLI

Voer het volgende Azure CLI-script uit om een privé-eindpunt met de naam myPrivateEndpoint te maken voor een bestaand Azure DocumentDB-account. Vervang de variabelewaarden door de details voor uw omgeving.

# 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 

Het privé-eindpunt integreren met een privé-DNS-zone

Nadat u het privé-eindpunt hebt gemaakt, moet u het integreren met een privé-DNS-zone met behulp van het volgende Azure CLI-script:

Opmerking

Privé-DNS-integratie moet zijn ingeschakeld op het cluster voor de juiste DNS-resolutie.

#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 

Verbindingsreeks ophalen om verbinding te maken

Gebruik altijd de verbindingsreeks mongodb+srv om verbinding te maken met een database vanaf een client met een privé-IP-adres dat toegang heeft tot het privé-eindpunt dat aan het Azure DocumentDB-cluster is toegewezen.

  1. Selecteer een bestaand Azure DocumentDB-cluster.
  2. Selecteer in de zijbalk van het cluster onder Instellingen de verbindingsreeksen.
  3. Kopieer de globale lees-schrijf of eigen verbindingsreeks voor ingebouwde DocumentDB-verificatie of Microsoft Entra ID-verificatie.

Opmerking

Op een replicacluster worden alleen zelfverbindingsreeksen opgegeven.

  1. Gebruik de gekopieerde verbindingsreeks in uw toepassing of beheerhulpprogramma's om verbinding te maken met het cluster.
az network private-link-resource list \
  -g <rg-name> \
  -n <resource-name> \
  --type Microsoft.DocumentDB/mongoClusters 

Connectiviteit met privé-eindpunten controleren en oplossen

Nadat u een privé-eindpunt voor uw Azure DocumentDB-cluster hebt gemaakt, is het belangrijk om te controleren of de DNS-omzetting correct werkt en of uw toepassingen verbinding kunnen maken via het privé-eindpunt.

Status van privé-eindpunt controleren

Controleer eerst of het privé-eindpunt correct is ingericht en verbonden:

  1. Navigeer in Azure Portal naar uw Azure DocumentDB-cluster.
  2. Selecteer Netwerken in de zijbalk van het cluster onder Instellingen.
  3. Controleer of het privé-eindpunt wordt weergegeven in de lijst met de status Goedgekeurd.
  4. Selecteer de naam van het privé-eindpunt om de details ervan weer te geven, inclusief het privé-IP-adres dat is toegewezen.

U kunt azure CLI ook gebruiken om de status van het privé-eindpunt te controleren:

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

DNS-resolutie testen

Azure DocumentDB maakt gebruik van SRV-records voor servicedetectie bij gebruik van de indeling van de mongodb+srv verbindingsreeks. Als u wilt controleren of de DNS-omzetting correct werkt, test u de DNS-omzetting van een virtuele machine of resource binnen hetzelfde virtuele netwerk of een gekoppeld netwerk.

Windows DNS-testen

Gebruik de volgende opdrachten vanaf een Windows-computer die is verbonden met het virtuele netwerk:

  1. Test de SRV-recordresolutie:

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

    In de uitvoer moeten SRV-records worden weergegeven die verwijzen naar uw clusterknooppunten in de privé-DNS-zone.

  2. Los de hostnamen van afzonderlijke knooppunten op om te controleren of ze worden omgezet in privé-IP-adressen:

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

    In de uitvoer moeten privé-IP-adressen (bijvoorbeeld 10.x.x.x.x) worden weergegeven in plaats van openbare IP-adressen.

  3. Als nslookup alternatief gebruiken:

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

DNS-tests voor Linux en macOS

Gebruik de volgende opdrachten vanaf een Linux- of macOS-machine die is verbonden met het virtuele netwerk:

  1. Test de SRV-recordresolutie:

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

    In de uitvoer moeten SRV-records worden weergegeven met doeladressen die naar uw clusterknooppunten verwijzen.

  2. Los de hostnamen van afzonderlijke knooppunten op:

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

    De A-records moeten worden omgezet in privé-IP-adressen in de adresruimte van uw virtuele netwerk.

  3. Als nslookup alternatief gebruiken:

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

Veelvoorkomende scenario's voor probleemoplossing

Als u verbindingsproblemen ondervindt, controleert u het volgende:

DNS-omzetting mislukt of retourneert openbare IP-adressen

  • Controleer of de privé-DNS-zone juist is gekoppeld aan uw virtuele netwerk.
  • Controleer of de DNS-zonegroep juist is geconfigureerd op het privé-eindpunt.
  • Controleer of de DNS-instellingen van uw virtuele netwerk zijn ingesteld op het gebruik van door Azure geleverde DNS (168.63.129.16) of een aangepaste DNS-server die query's doorstuurt naar Azure DNS.
  • Zorg ervoor dat u test vanuit een resource binnen het virtuele netwerk of een correct gesynchroniseerd netwerk.

Verbindingstime-outs of fouten

  • Controleer of NSG-regels (Network Security Group) op het subnet uitgaande connectiviteit toestaan op poort 27017 (standaardpoort van MongoDB).
  • Controleer of aan de netwerkinterface van het privé-eindpunt het juiste privé-IP-adres is toegewezen.
  • Controleer of de toepassing of client de juiste verbindingsreeksindeling (mongodb+srv) gebruikt.
  • Zorg ervoor dat firewallregels in het Azure DocumentDB-cluster verbindingen vanaf het privé-eindpunt toestaan.

Privé-DNS-zone wordt niet opgelost

  • Controleer of de naam van de privé-DNS-zone overeenkomt met de verwachte indeling: privatelink.mongocluster.cosmos.azure.com.
  • Controleer of er een record bestaat in de privé-DNS-zone voor uw clusterknooppunten.
  • Controleer of de koppeling van het virtuele netwerk actief is en juist is geconfigureerd in de privé-DNS-zone.

Details van privé-eindpunt weergeven

Als u gedetailleerde informatie over de configuratie van uw privé-eindpunt wilt weergeven, gebruikt u de volgende Azure CLI-opdracht:

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

Met deze opdracht worden belangrijke informatie weergegeven, waaronder het privé-IP-adres, de FQDN (Fully Qualified Domain Name) en de inrichtingsstatus.