Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Private Link es un servicio eficaz que permite a los usuarios conectarse a Azure DocumentDB a través de un punto de conexión privado designado. Este punto de conexión privado consta de direcciones IP privadas ubicadas en una subred dentro de su propia red virtual. El punto de conexión le permite restringir el acceso al producto de Azure DocumentDB únicamente a través de direcciones IP privadas. El riesgo de filtración de datos se reduce considerablemente mediante la integración de Private Link con estrictas directivas de NSG. Para comprender mejor los puntos de conexión privados, considere la posibilidad de consultar ¿Qué es Azure Private Link?.
Nota:
Private Link protege la conexión, pero no impide que los puntos de conexión de Azure DocumentDB se resuelvan mediante DNS público. La filtración de las solicitudes entrantes se controla en el nivel de aplicación, no en el nivel de transporte o red.
Private Link ofrece la flexibilidad de acceder a Azure DocumentDB desde dentro de la red virtual o desde cualquier red virtual emparejada conectada. Además, los recursos vinculados a Private Link son accesibles de forma local a través del emparejamiento privado, a través de VPN o Azure ExpressRoute.
Para establecer una conexión, Azure DocumentDB con Private Link admite métodos de aprobación automáticos y manuales.
Prerrequisitos
Una suscripción de Azure
- Si no tiene ninguna suscripción a Azure, cree una cuenta gratuita
Un clúster de Azure DocumentDB existente
- Si no tiene un clúster, cree un nuevo clúster.
Creación de un clúster con un punto de conexión privado mediante Azure Portal
Siga estos pasos para crear un clúster de Azure DocumentDB con un punto de conexión privado mediante Azure Portal:
Inicie sesión en Azure Portal y seleccione Crear un recurso en la esquina superior izquierda de Azure Portal.
En la página Crear un recurso , seleccione Bases de datos y, a continuación, seleccione Azure DocumentDB.
En la página De la opción Seleccionar API, en el icono de MongoDB , seleccione Crear.
Elija el tipo de recurso de clúster .
En la página Crear un clúster de Azure DocumentDB , seleccione o cree un grupo de recursos, escriba un nombre de clúster y una ubicación y escriba y confirme la contraseña del administrador.
Seleccione Siguiente: Redes.
Seleccione la pestaña Redes , en Método de conectividad, seleccione Acceso privado.
En la pantalla Crear punto de conexión privado, escriba o seleccione los valores adecuados para:
Configuración Importancia Grupo de recursos Seleccione un grupo de recursos. Nombre Escriba cualquier nombre para el punto de conexión privado. Si se toma este nombre, cree uno que sea único. Nombre de la interfaz de red Escriba cualquier nombre para la interfaz de red. Si se toma este nombre, cree uno que sea único. Ubicación Seleccione la región en la que desea implementar Private Link. Cree el punto de conexión privado en la misma ubicación donde existe la red virtual. Tipo de recurso Seleccione Microsoft.DocumentDB/mongoClusters.Recurso de destino Seleccione el recurso de Azure DocumentDB que ha creado. Subrecurso de destino Seleccione el tipo de subrecurso del recurso seleccionado anteriormente al que su punto de conexión privado pueda acceder. Red de área virtual Seleccione la red virtual. Subnet Seleccione su subred. Integración con una zona DNS privada Seleccione Sí. Para conectar de forma privada con el punto de conexión privado, necesita un registro DNS. Se recomienda integrar el punto de conexión privado con una zona DNS privada. También puede usar sus propios servidores DNS o crear registros DNS mediante los archivos host de las máquinas virtuales. Al seleccionar Sí para esta opción, también se crea un grupo de zonas DNS privadas. El grupo de zonas DNS es un vínculo entre la zona DNS privada y el punto de conexión privado. Este vínculo le ayuda a actualizar automáticamente la zona DNS privada cuando hay una actualización al punto de conexión privado. Por ejemplo, al agregar o quitar regiones, la zona DNS privada se actualiza automáticamente. Nombre de la configuración Seleccione la suscripción y el grupo de recursos. La zona DNS privada se determina automáticamente. No se puede cambiar mediante Azure Portal. Seleccione Aceptar.
Seleccione Siguiente: Etiquetas>Revisar y crear. En la página Revisar y crear , seleccione Crear.
Habilitación de acceso privado en un clúster existente
Para crear un punto de conexión privado para un nodo de un clúster existente, abra la página Redes del clúster.
Seleccione Agregar punto de conexión privado.
En la pestaña Aspectos básicos de la pantalla Crear un punto de conexión privado, confirme la suscripción, el grupo de recursos y la región. Escriba un nombre para el punto de conexión, como my-cluster-1 y un nombre de interfaz de red, como my-cluster-1-nic.
Nota:
Se recomienda seleccionar una suscripción y una región que coincidan con las del clúster, a menos que tenga una buena razón para no hacerlo. Es posible que los valores predeterminados de los campos del formulario no sean correctos. Compruébelos y actualícelos si es necesario.
Seleccione Siguiente: Resource (Siguiente: Recurso). Elija "Microsoft.DocumentDB/mongoClusters" en Tipo de recurso y elija el clúster de destino para Recurso. En Subrecurso de destino, elija "MongoCluster".
Seleccione Siguiente: Red Virtual. Elija los valores deseados para Red virtual y Subred. En Configuración de IP privada, seleccione Asignar estáticamente la dirección IP o mantenga la dirección IP predeterminada y asigne dinámicamente la dirección IP.
Seleccione Next: DNS (Siguiente: DNS).
En Integración de DNS privado, en Integrar con la zona DNS privada, mantenga el valor predeterminado Sí o seleccione No.
Nota:
La integración de DNS privado debe estar habilitada en el clúster para una resolución DNS adecuada.
Seleccione Siguiente: Etiquetas y agregue las etiquetas que prefiera.
Selecciona Revisar + crear. Revise la configuración y, cuando esté satisfecho, seleccione Crear.
Creación de un punto de conexión privado mediante la CLI de Azure
Ejecute el siguiente script de la CLI de Azure para crear un punto de conexión privado denominado myPrivateEndpoint para una cuenta de Azure DocumentDB existente. Reemplaza los valores de variable por los detalles de su entorno.
# 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
Integración del punto de conexión privado con una zona DNS privada
Después de crear el punto de conexión privado, debe integrarlo con una zona DNS privada mediante el siguiente script de la CLI de Azure:
Nota:
La integración de DNS privado debe estar habilitada en el clúster para una resolución DNS adecuada.
#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
Obtención de la cadena de conexión para conectarse
Utilice siempre la cadena de conexión mongodb+srv para conectarse a la base de datos desde un cliente con una dirección IP privada que tenga acceso al punto de conexión privado asignado al clúster de Azure DocumentDB.
- Seleccione un clúster de Azure DocumentDB existente.
- En la barra lateral del clúster, en Configuración, seleccione Cadenas de conexión.
- Copie la cadena global de lectura y escritura o conexión automática para la autenticación nativa de DocumentDB o la autenticación de Microsoft Entra ID.
Nota:
En un clúster de réplica solo se proporcionan cadenas de conexión independientes.
- Use la cadena de conexión copiada en la aplicación o las herramientas de administración para conectarse al clúster.
Comandos de MongoClusters en Private Link
az network private-link-resource list \
-g <rg-name> \
-n <resource-name> \
--type Microsoft.DocumentDB/mongoClusters
Comprobación y solución de problemas de conectividad de punto de conexión privado
Después de crear un punto de conexión privado para el clúster de Azure DocumentDB, es importante comprobar que la resolución DNS funciona correctamente y que las aplicaciones pueden conectarse a través del punto de conexión privado.
Comprobación del estado del punto de conexión privado
En primer lugar, confirme que el punto de conexión privado está aprovisionado y conectado correctamente:
- En Azure Portal, vaya al clúster de Azure DocumentDB.
- En la barra lateral del clúster, en Configuración, seleccione Redes.
- Compruebe que el punto de conexión privado aparece en la lista con el estado Aprobado.
- Seleccione el nombre del punto de conexión privado para ver sus detalles, incluida la dirección IP privada asignada.
También puede usar la CLI de Azure para comprobar el estado del punto de conexión privado:
az network private-endpoint show \
--resource-group $ResourceGroupName \
--name $PrivateEndpointName
Prueba de la resolución DNS
Azure DocumentDB utiliza registros SRV para el descubrimiento de servicios al usar el formato de cadena de conexión mongodb+srv. Para comprobar que la resolución DNS funciona correctamente, pruebe la resolución DNS desde una máquina virtual o un recurso dentro de la misma red virtual o una red emparejada.
Pruebas de DNS de Windows
Desde una máquina Windows conectada a la red virtual, use los siguientes comandos:
Pruebe la resolución de los registros SRV:
Resolve-DnsName -Name _mongodb._tcp.<your-cluster-name>.mongocluster.cosmos.azure.com -Type SRVLa salida debe mostrar registros SRV que apuntan a los nodos del clúster dentro de la zona DNS privada.
Resuelva los nombres de host de cada nodo para verificar que se resuelven en direcciones IP privadas.
Resolve-DnsName -Name <your-node-hostname>.mongocluster.cosmos.azure.comLa salida debe mostrar direcciones IP privadas (por ejemplo, 10.x.x.x) en lugar de direcciones IP públicas.
Use
nslookupcomo alternativa:nslookup -type=SRV _mongodb._tcp.<your-cluster-name>.mongocluster.cosmos.azure.com nslookup <your-node-hostname>.mongocluster.cosmos.azure.com
Pruebas de DNS de Linux y macOS
Desde una máquina Linux o macOS conectada a la red virtual, use los siguientes comandos:
Pruebe la resolución del registro SRV.
dig _mongodb._tcp.<your-cluster-name>.mongocluster.cosmos.azure.com SRVLa salida debe mostrar registros SRV con destinos que apuntan a los nodos del clúster.
Resuelva los nombres de host de nodos individuales:
dig <your-node-hostname>.mongocluster.cosmos.azure.comLos registros A deben traducirse a direcciones IP privadas dentro del espacio de direcciones de su red virtual.
Use
nslookupcomo alternativa:nslookup -type=SRV _mongodb._tcp.<your-cluster-name>.mongocluster.cosmos.azure.com nslookup <your-node-hostname>.mongocluster.cosmos.azure.com
Escenarios habituales de solución de problemas
Si encuentra problemas de conectividad, compruebe lo siguiente:
Se produce un error en la resolución DNS o se devuelven direcciones IP públicas
- Compruebe que la zona DNS privada está vinculada correctamente a la red virtual.
- Confirme que el grupo de zonas DNS está configurado correctamente en el punto de conexión privado.
- Compruebe que la configuración dns de la red virtual está establecida para usar DNS proporcionado por Azure (168.63.129.16) o un servidor DNS personalizado que reenvía consultas a Azure DNS.
- Asegúrese de que está probando desde un recurso dentro de la red virtual o una red emparejada correctamente.
Tiempos de espera o errores de conexión
- Compruebe que las reglas del grupo de seguridad de red (NSG) de la subred permiten la conectividad saliente en el puerto 27017 (puerto predeterminado de MongoDB).
- Confirme que la interfaz de red del punto de conexión privado tiene asignada la dirección IP privada correcta.
- Compruebe que la aplicación o el cliente usan el formato de cadena de conexión correcto (
mongodb+srv). - Asegúrese de que las reglas de firewall en el clúster de Azure DocumentDB permiten conexiones desde el punto de conexión privado.
Zona DNS privada que no se resuelve
- Compruebe que el nombre de la zona DNS privada coincide con el formato esperado:
privatelink.mongocluster.cosmos.azure.com. - Compruebe que existen registros A en la zona DNS privada para los nodos del clúster.
- Confirme que el vínculo de red virtual está activo y configurado correctamente en la zona DNS privada.
Visualización de los detalles del punto de conexión privado
Para ver información detallada sobre la configuración del punto de conexión privado, use el siguiente comando de la CLI de Azure:
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
Este comando muestra información clave, incluida la dirección IP privada, el nombre de dominio completo (FQDN) y el estado de aprovisionamiento.