Compartir a través de


Habilitación del acceso privado en Azure DocumentDB

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

  • Un clúster de Azure DocumentDB existente

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:

  1. Inicie sesión en Azure Portal y seleccione Crear un recurso en la esquina superior izquierda de Azure Portal.

  2. En la página Crear un recurso , seleccione Bases de datos y, a continuación, seleccione Azure DocumentDB.

  3. En la página De la opción Seleccionar API, en el icono de MongoDB , seleccione Crear.

  4. Elija el tipo de recurso de clúster .

  5. 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.

  6. Seleccione Siguiente: Redes.

  7. Seleccione la pestaña Redes , en Método de conectividad, seleccione Acceso privado.

  8. 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 . 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.
  9. Seleccione Aceptar.

  10. 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.

  1. Seleccione Agregar punto de conexión privado.

    Recorte de pantalla de la selección de Agregar punto de conexión privado en la pantalla Redes.

  2. 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.

  3. 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".

  4. 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.

  5. Seleccione Next: DNS (Siguiente: DNS).

  6. En Integración de DNS privado, en Integrar con la zona DNS privada, mantenga el valor predeterminado o seleccione No.

Nota:

La integración de DNS privado debe estar habilitada en el clúster para una resolución DNS adecuada.

  1. Seleccione Siguiente: Etiquetas y agregue las etiquetas que prefiera.

  2. 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.

  1. Seleccione un clúster de Azure DocumentDB existente.
  2. En la barra lateral del clúster, en Configuración, seleccione Cadenas de conexión.
  3. 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.

  1. Use la cadena de conexión copiada en la aplicación o las herramientas de administración para conectarse al clúster.
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:

  1. En Azure Portal, vaya al clúster de Azure DocumentDB.
  2. En la barra lateral del clúster, en Configuración, seleccione Redes.
  3. Compruebe que el punto de conexión privado aparece en la lista con el estado Aprobado.
  4. 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:

  1. Pruebe la resolución de los registros SRV:

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

    La salida debe mostrar registros SRV que apuntan a los nodos del clúster dentro de la zona DNS privada.

  2. 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.com
    

    La salida debe mostrar direcciones IP privadas (por ejemplo, 10.x.x.x) en lugar de direcciones IP públicas.

  3. Use nslookup como 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:

  1. Pruebe la resolución del registro SRV.

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

    La salida debe mostrar registros SRV con destinos que apuntan a los nodos del clúster.

  2. Resuelva los nombres de host de nodos individuales:

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

    Los registros A deben traducirse a direcciones IP privadas dentro del espacio de direcciones de su red virtual.

  3. Use nslookup como 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.