Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Приватный канал Azure — это мощная служба, которая позволяет пользователям подключаться к Azure DocumentDB через назначенную частную конечную точку. Эта частная конечная точка состоит из частных IP-адресов, расположенных в подсети в собственной виртуальной сети. Конечная точка позволяет ограничить доступ к продукту Azure DocumentDB исключительно через частные IP-адреса. Риск кражи данных значительно снижается путем интеграции Private Link с строгими политиками NSG. Для более глубокого понимания частных конечных точек рекомендуется ознакомиться с тем, что такое Приватный канал Azure?.
Замечание
Приватный канал защищает подключение, однако он не предотвращает разрешение конечных точек Azure DocumentDB общедоступным DNS. Фильтрация входящих запросов обрабатывается на уровне приложения, а не на уровне транспорта или сети.
Приватный канал обеспечивает гибкость доступа к Azure DocumentDB из виртуальной сети или из любой подключенной одноранговой виртуальной сети. Кроме того, ресурсы, связанные с приватным каналом, доступны локально через частный пиринг через VPN или Azure ExpressRoute.
Чтобы установить подключение, Azure DocumentDB с приватным каналом поддерживает как методы автоматического, так и ручного утверждения.
Предпосылки
подписка Azure
- Если у вас нет подписки Azure, создайте бесплатную учетную запись.
Существующий кластер Azure DocumentDB
- Если у вас нет кластера, создайте новый кластер
Создание кластера с частной конечной точкой с помощью портала Azure
Выполните следующие действия, чтобы создать новый кластер Azure DocumentDB с частной конечной точкой с помощью портала Azure:
Войдите на портал Azure и выберите "Создать ресурс " в верхнем левом углу портала Azure.
На странице "Создание ресурса" выберите "Базы данных " и выберите Azure DocumentDB.
На странице "Выбор API" на плитке MongoDB нажмите кнопку "Создать".
Выберите тип ресурса кластера .
На странице "Создание кластера Azure DocumentDB " выберите или создайте группу ресурсов, введите имя кластера и расположение, а затем введите и подтвердите пароль администратора.
Нажмите кнопку "Далее" — сеть.
Выберите вкладку "Сеть" для метода подключения и выберите закрытый доступ.
На экране создания частной конечной точки введите или выберите соответствующие значения:
Setting Ценность Группа ресурсов Выберите группу ресурсов. Имя Введите любое имя частной конечной точки. Если это имя уже используется, создайте уникальное. Имя сетевого интерфейса Введите любое имя сетевого интерфейса. Если это имя уже используется, создайте уникальное. Местоположение Выберите регион, в котором требуется развернуть Private Link. Создайте частную конечную точку в том же расположении, где существует виртуальная сеть. Тип ресурса Выберите Microsoft.DocumentDB/mongoClusters.Целевой ресурс Выберите созданный ресурс Azure DocumentDB. Целевой субресурс Выберите тип подресурса для ранее выбранного ресурса, к которому частная конечная точка должна иметь возможность доступа. Виртуальная сеть Выберите свою виртуальную сеть. Подсеть Выберите подсеть. Интегрировать с частной зоной DNS Выберите Да. Для частного подключения к частной конечной точке требуется запись DNS. Рекомендуется интегрировать частную конечную точку с частной зоной DNS. Вы также можете использовать собственные DNS-серверы или создавать записи DNS с помощью файлов узлов на виртуальных машинах. При выборе да для этого параметра также создается частная группа зон DNS. Группа зон DNS — это связь между частной зоной DNS и частной конечной точкой. Эта ссылка помогает автоматически обновлять частную зону DNS при обновлении частной конечной точки. Например, при добавлении или удалении регионов частная зона DNS автоматически обновляется. Имя конфигурации Выберите подписку и группу ресурсов. Частная зона DNS определяется автоматически. Его нельзя изменить с помощью портала Azure. Нажмите кнопку "ОК".
Нажмите кнопку "Далее": проверка тегов>и создание. На странице "Рецензирование и создание " нажмите кнопку "Создать".
Включение частного доступа в существующем кластере
Чтобы создать частную конечную точку на узле в существующем кластере, откройте страницу "Сеть " для кластера.
Нажмите Добавить частную конечную точку.
На вкладке "Основы" экрана "Создание частной конечной точки" подтвердите подписку, группу ресурсов и регион. Введите имя конечной точки, например my-cluster-1, и имя сетевого интерфейса, например my-cluster-1-nic.
Замечание
Если у вас нет хорошей причины выбрать другое, рекомендуется выбрать подписку и регион, соответствующий вашему кластеру. Значения по умолчанию для полей формы могут быть неверными. Проверьте их и при необходимости обновите их.
По завершении выберите Далее: Ресурс. Выберите "Microsoft.DocumentDB/mongoClusters" для типа ресурса и выберите целевой кластер для ресурса. Для дочернего ресурса Target выберите "MongoCluster".
Выберите Далее: Виртуальная сеть. Выберите нужные значения параметров Виртуальная сеть и Подсеть. В разделе "Конфигурация частного IP-адреса" выберите статически назначить IP-адрес или оставьте параметр по умолчанию, динамически назначить IP-адрес.
Выберите Далее: DNS.
В разделе Частная интеграция DNS для интеграции с частной зоной DNS оставьте значение по умолчанию Да или выберите Нет.
Замечание
Для правильного разрешения DNS необходимо включить частную интеграцию DNS в кластере.
Нажмите кнопку "Далее": теги и добавьте все нужные теги.
Выберите Review + create. Просмотрите параметры и нажмите кнопку "Создать " при удовлетворении.
Создание частной конечной точки с помощью Azure CLI
Выполните следующий скрипт Azure CLI, чтобы создать частную конечную точку с именем myPrivateEndpoint для существующей учетной записи Azure DocumentDB. Замените значения переменной сведениями для вашей среды.
# 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
Интеграция частной конечной точки с частной зоной DNS
После создания частной конечной точки необходимо интегрировать ее с частной зоной DNS с помощью следующего скрипта Azure CLI:
Замечание
Для правильного разрешения DNS необходимо включить частную интеграцию DNS в кластере.
#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
Получите строку подключения для соединения
Всегда используйте mongodb+srv строку подключения для подключения к базе данных из клиента с частным IP-адресом, который имеет доступ к частной конечной точке, назначенной кластеру Azure DocumentDB.
- Выберите существующий кластер Azure DocumentDB.
- На боковой панели кластера в разделе "Параметры" выберите строки подключения.
- Скопируйте глобальную строку подключения для чтения/записи или строку собственного подключения для нативной аутентификации DocumentDB или аутентификации с использованием Microsoft Entra ID.
Замечание
В кластере реплик предоставляются только строки самостоятельного подключения.
- Используйте скопированную строку подключения в приложении или средствах управления для подключения к кластеру.
Команды MongoClusters на Private Link
az network private-link-resource list \
-g <rg-name> \
-n <resource-name> \
--type Microsoft.DocumentDB/mongoClusters
Проверка и устранение неполадок подключения к частной конечной точке
После создания частной конечной точки для кластера Azure DocumentDB важно убедиться, что разрешение DNS работает правильно и что приложения могут подключаться через частную конечную точку.
Проверка состояния частной конечной точки
Сначала убедитесь, что частная конечная точка правильно подготовлена и подключена:
- На портале Azure перейдите к кластеру Azure DocumentDB.
- На боковой панели кластера в разделе "Параметры" выберите "Сеть".
- Убедитесь, что частная конечная точка отображается в списке с состоянием "Утверждено".
- Выберите имя частной конечной точки, чтобы просмотреть сведения, включая назначенный частный IP-адрес.
Вы также можете использовать Azure CLI для проверки состояния частной конечной точки:
az network private-endpoint show \
--resource-group $ResourceGroupName \
--name $PrivateEndpointName
Проверка разрешения DNS
Azure DocumentDB использует записи SRV для обнаружения служб при использовании mongodb+srv формата строки подключения. Чтобы убедиться, что разрешение DNS работает правильно, проверьте разрешение DNS из виртуальной машины или ресурса в одной виртуальной сети или одноранговой сети.
Тестирование DNS Windows
На компьютере Windows, подключенном к виртуальной сети, используйте следующие команды:
Проверьте разрешение записей SRV:
Resolve-DnsName -Name _mongodb._tcp.<your-cluster-name>.mongocluster.cosmos.azure.com -Type SRVВыходные данные должны отображать записи SRV, указывающие на узлы кластера в частной зоне DNS.
Разрешите имена узлов отдельных узлов, чтобы убедиться, что они разрешаются на частные IP-адреса:
Resolve-DnsName -Name <your-node-hostname>.mongocluster.cosmos.azure.comВыходные данные должны отображать частные IP-адреса (например, 10.x.x.x.x) вместо общедоступных IP-адресов.
Используйте
nslookupв качестве альтернативы:nslookup -type=SRV _mongodb._tcp.<your-cluster-name>.mongocluster.cosmos.azure.com nslookup <your-node-hostname>.mongocluster.cosmos.azure.com
Тестирование DNS в Linux и macOS
На компьютере Linux или macOS, подключенном к виртуальной сети, используйте следующие команды:
Проверьте разрешение записей SRV:
dig _mongodb._tcp.<your-cluster-name>.mongocluster.cosmos.azure.com SRVВыходные данные должны отображать записи SRV с целевыми объектами, указывающими на узлы кластера.
Разрешите имена хостов отдельных узлов.
dig <your-node-hostname>.mongocluster.cosmos.azure.comЗаписи A должны разрешаться в частные IP-адреса в пределах адресного пространства виртуальной сети.
Используйте
nslookupв качестве альтернативы:nslookup -type=SRV _mongodb._tcp.<your-cluster-name>.mongocluster.cosmos.azure.com nslookup <your-node-hostname>.mongocluster.cosmos.azure.com
Распространенные сценарии устранения неполадок
Если возникли проблемы с подключением, проверьте следующее:
Разрешение DNS завершается ошибкой или возвращает общедоступные IP-адреса
- Убедитесь, что частная зона DNS правильно связана с виртуальной сетью.
- Убедитесь, что группа зон DNS настроена правильно в частной конечной точке.
- Убедитесь, что параметры DNS виртуальной сети настроены для использования DNS, предоставленного Azure (168.63.129.16) или пользовательского DNS-сервера, который перенаправит запросы в Azure DNS.
- Убедитесь, что вы проводите тестирование из ресурса внутри виртуальной сети или корректно сопряженной сети.
Время ожидания подключения или сбои
- Убедитесь, что правила группы безопасности сети (NSG) в подсети разрешают исходящее подключение через порт 27017 (порт по умолчанию MongoDB).
- Убедитесь, что сетевой интерфейс частной конечной точки имеет правильный частный IP-адрес.
- Убедитесь, что приложение или клиент использует правильный формат строки подключения (
mongodb+srv). - Убедитесь, что правила брандмауэра в кластере Azure DocumentDB разрешают подключения из частной конечной точки.
Частная зона DNS не разрешается
- Убедитесь, что имя частной зоны DNS соответствует ожидаемому формату:
privatelink.mongocluster.cosmos.azure.com - Убедитесь, что записи A существуют в частной зоне DNS для узлов кластера.
- Убедитесь, что связь виртуальной сети активна и правильно настроена в частной зоне DNS.
Просмотр сведений о частной конечной точке
Чтобы просмотреть подробные сведения о конфигурации частной конечной точки, используйте следующую команду Azure CLI:
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
Эта команда отображает ключевые сведения, включая частный IP-адрес, полное доменное имя (FQDN) и состояние подготовки.