Abilitare l'accesso privato in Azure Cosmos DB per MongoDB vCore
SI APPLICA A: MongoDB vCore
Il servizio di collegamento privato di Azure è un servizio potente che consente agli utenti di connettersi ad Azure Cosmos DB for MongoDB vCore tramite un endpoint privato designato. Questo endpoint privato è costituito da indirizzi IP privati che si trovano in una subnet all'interno della propria rete virtuale. L'endpoint consente di limitare l'accesso al prodotto Azure Cosmos DB for MongoDB vCore esclusivamente tramite indirizzi IP privati. Il rischio di esfiltrazione dei dati è notevolmente ridotto grazie all'integrazione del collegamento privato con criteri NSG rigorosi. Per una comprensione più approfondita degli endpoint privati, vedere Che cos'è il collegamento privato di Azure?.
Nota
Il collegamento privato protegge la connessione, ma non impedisce che gli endpoint di Azure Cosmos DB vengano risolti dal DNS pubblico. La filtraggio delle richieste in ingresso viene gestito al livello di applicazione, non al livello di trasporto o di rete.
Il collegamento privato offre la flessibilità necessaria per accedere a Azure Cosmos DB for MongoDB vCore dall'interno della rete virtuale o da qualsiasi rete virtuale con peering connessa. Inoltre, le risorse collegate al collegamento privato sono accessibili in locale tramite peering privato attraverso la VPN o Azure ExpressRoute.
Per stabilire una connessione, Azure Cosmos DB for MongoDB vCore con collegamento privato supporta metodi di approvazione sia automatici che manuali. Per altre informazioni, vedere Endpoint privati in Azure Cosmos DB.
Prerequisiti
- Un cluster Azure Cosmos DB for MongoDB vCore esistente.
- Se non si ha una sottoscrizione di Azure, creare un account gratuitamente.
- Se si ha una sottoscrizione di Azure esistente, creare un nuovo cluster Azure Cosmos DB for MongoDB vCore.
Creare un cluster con un endpoint privato usando il portale di Azure
Seguire questa procedura per creare un nuovo cluster Azure Cosmos DB for MongoDB vCore con un endpoint privato usando il portale di Azure:
Accedere al portale di Azure e quindi selezionare Crea una risorsa nell'angolo superiore sinistro del portale di Azure.
Nella pagina Crea una risorsa selezionare Database e quindi Azure Cosmos DB.
Nella pagina Seleziona opzione API, nel riquadro MongoDB, selezionare Crea.
Scegliere il tipo di risorsa cluster vCore.
Nella pagina Crea un cluster Azure Cosmos DB for MongoDB vCore selezionare o creare un Gruppo di risorse, immettere un nome del cluster, una posizione e quindi immettere e confermare la password dell'amministratore.
Selezionare Avanti: Rete.
Selezionare la scheda Rete e selezionare Accesso privato in Metodo di connettività.
Nella schermata Crea endpoint privato immettere o selezionare i valori appropriati per:
Impostazione Valore Gruppo di risorse Selezionare un gruppo di risorse. Nome Immettere un nome per l'endpoint privato. Se il nome è già usato, creare un nome univoco. Nome interfaccia di rete Immettere qualsiasi nome per l'interfaccia di rete. Se il nome è già usato, creare un nome univoco. Ufficio Selezionare l'area in cui si vuole distribuire il collegamento privato. Creare l'endpoint privato nella stessa posizione in cui si trova la rete virtuale. Tipo di risorsa Selezionare Microsoft.DocumentDB/mongoClusters
.Risorsa di destinazione Selezionare la risorsa vCore di Azure Cosmos DB for MongoDB creata. Sottorisorsa di destinazione Selezionare il tipo di sottorisorsa per la risorsa selezionata in precedenza a cui l'endpoint privato deve avere la possibilità di accedere. Rete virtuale Selezionare la rete virtuale. Subnet Selezionare la subnet. Integra con la zona DNS privato Selezionare Sì. Per connettersi in privato con l'endpoint privato, è necessario un record DNS. È consigliabile integrare l'endpoint privato con una zona DNS privata. È anche possibile usare i propri server DNS o creare record DNS usando i file host delle macchine virtuali. Quando si seleziona Sì per questa opzione, viene creato anche un gruppo di zone DNS private. Il gruppo di zone DNS è un collegamento tra la zona DNS privata e l'endpoint privato. Questo collegamento consente di aggiornare automaticamente la zona DNS privata quando viene eseguito un aggiornamento all'endpoint privato. Ad esempio, quando si aggiungono o si rimuovono aree, la zona DNS privata viene aggiornata automaticamente. Nome configurazione Selezionare la sottoscrizione e il gruppo di risorse. La zona DNS privata viene determinata automaticamente. Non è possibile modificarla usando il portale di Azure. Selezionare OK.
Selezionare Avanti: Tag>Rivedi e crea. Nella pagina Rivedi e crea selezionare Crea.
Abilitare l'accesso privato in un cluster esistente
Per creare un endpoint privato in un nodo in un cluster esistente, aprire la pagina Rete per il cluster.
Selezionare Aggiungi endpoint privato.
Nella scheda Nozioni di base della schermata Crea un endpoint privato verificare Sottoscrizione, Gruppo di risorse e Area. Immettere un Nome per l'endpoint, ad esempio my-cluster-1 e un Nome di interfaccia di rete, ad esempio my-cluster-1-nic.
Nota
A meno che non si abbia un buon motivo per decidere diversamente, è consigliabile scegliere una sottoscrizione e un'area corrispondenti a quelle del cluster. I valori predefiniti per i campi modulo potrebbero non essere corretti. Controllarli e aggiornarli, se necessario.
Selezionare Avanti: Risorsa. Scegliere "Microsoft.DocumentDB/mongoClusters" per Tipo di risorsae scegliere il cluster di destinazione per Risorsa. Per Risorsa secondaria di destinazionescegliere "MongoCluster".
Selezionare Avanti: Rete virtuale. Scegliere Rete virtuale e Subnet desiderate. In Configurazione IP privato selezionare Allocare staticamente indirizzo IP o mantenere l'indirizzo IP predefinito, Allocare dinamicamente indirizzo IP.
Selezionare Avanti: DNS.
In Integrazione DNS privato, per Integrazione con zona DNS privata, mantenere l'impostazione predefinita Sì o selezionare No.
Selezionare Avanti: Tag e aggiungere eventuali tag desiderati.
Selezionare Rivedi e crea. Esaminare le impostazioni e, se soddisfano, selezionare Crea.
Creare un endpoint privato con l'interfaccia della riga di comando di Azure
Eseguire lo script dell'interfaccia della riga di comando di Azure seguente per creare un endpoint privato denominato myPrivateEndpoint per un account Azure Cosmos DB esistente. Sostituire i valori delle variabili con i dettagli dell'ambiente in uso.
# Resource group where the Azure Cosmos DB account and virtual network resources are located
ResourceGroupName="myResourceGroup"
# Name of the existing Azure Cosmos DB account
MongovCoreClusterName="myMongoCluster"
# Subscription ID where the Azure Cosmos DB account and virtual network resources are located
SubscriptionId="<your Azure subscription ID>"
# API type of your Azure Cosmos DB account: Sql, SqlDedicated, MongoCluster, Cassandra, Gremlin, or Table
CosmosDbSubResourceType="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/$MongovCoreClusterName" \
--group-ids MongoCluster --connection-name $PrivateConnectionName
Integrare l'endpoint privato con una zona DNS privata
Dopo aver creato l'endpoint privato, è possibile integrarlo con una zona DNS privata usando lo script dell'interfaccia della riga di comando di Azure seguente:
#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
Comandi di MongoClusters nel collegamento privato
az network private-link-resource list \
-g <rg-name> \
-n <resource-name> \
--type Microsoft.DocumentDB/mongoClusters