Включение частного доступа в Azure Cosmos DB для виртуального ядра MongoDB

Область применения: Виртуальные ядра MongoDB

Приватный канал Azure — это мощная служба, которая позволяет пользователям подключаться к Azure Cosmos DB для виртуальных ядер MongoDB через назначенную частную конечную точку. Эта частная конечная точка состоит из частных IP-адресов, расположенных в подсети в собственной виртуальной сети. Конечная точка позволяет ограничить доступ к продукту Виртуального ядра Azure Cosmos DB для MongoDB исключительно через частные IP-адреса. Риск кражи данных существенно снижается путем интеграции Приватный канал с строгими политиками NSG. Для более глубокого понимания частных конечных точек рассмотрите возможность проверка, чтобы узнать, что такое Приватный канал Azure?.

Примечание.

Приватный канал защищает подключение, однако это не предотвращает разрешение конечных точек Azure Cosmos DB общедоступным DNS. Фильтрация входящих запросов обрабатывается на уровне приложения, а не на уровне транспорта или сети.

Приватный канал обеспечивает гибкость доступа к виртуальному ядеру Azure Cosmos DB для MongoDB из виртуальной сети или из любой подключенной одноранговой виртуальной сети. Кроме того, ресурсы, связанные с Приватный канал, доступны локально через частный пиринг через VPN или Azure ExpressRoute.

Чтобы установить подключение, azure Cosmos DB для виртуальных ядер MongoDB с Приватный канал поддерживает методы автоматического и ручного утверждения. Дополнительные сведения см. в частных конечных точках в Azure Cosmos DB.

Необходимые компоненты

Создание кластера с частной конечной точкой с помощью портал Azure

Выполните следующие действия, чтобы создать новый кластер виртуальных ядер Azure Cosmos DB для MongoDB с частной конечной точкой с помощью портал Azure:

  1. Войдите в портал Azure, а затем выберите "Создать ресурс" в верхнем левом углу портал Azure.

  2. На странице "Создание ресурса" выберите "Базы данных" и выберите Azure Cosmos DB.

  3. На странице "Выбор API" на плитке MongoDB нажмите кнопку "Создать".

  4. Выберите тип ресурса кластера виртуальных ядер.

  5. На странице "Создание кластера виртуальных ядер Azure Cosmos DB для MongoDB" выберите или создайте группу ресурсов, введите имя кластера и расположение, а затем введите и подтвердите пароль администратора.

  6. Выберите Далее: сеть.

  7. Выберите вкладку "Сеть" для метода Подключение ivity, выберите закрытый доступ.

  8. На экране создания частной конечной точки введите или выберите соответствующие значения:

    Параметр Значение
    Группа ресурсов Выберите группу ресурсов.
    Имя. Введите любое имя для частной конечной точки. Если это имя уже используется, создайте уникальное имя.
    Имя сетевого интерфейса Введите любое имя сетевого интерфейса. Если это имя уже используется, создайте уникальное имя.
    Расположение Выберите регион, в котором требуется развернуть Приватный канал. Создайте частную конечную точку в том же расположении, где находится виртуальная сеть.
    Целевой подресурс Выберите тип подресурса для ресурса, выбранного ранее, что частная конечная точка должна иметь возможность доступа.
    Виртуальная сеть Выберите свою виртуальную сеть.
    Подсеть Выберите подсеть.
    Интегрировать с частной зоной DNS Выберите Да. Для частного подключения к частной конечной точке требуется запись DNS. Рекомендуем интегрировать частную конечную точку с частной зоной DNS. Вы также можете использовать собственные DNS-серверы или создать записи DNS с использованием файлов узлов на своих виртуальных машинах. Если для этого параметра выбирается "Да", также создается группа частных зон DNS. Группа зон DNS устанавливает связь между частной зоной DNS и частной конечной точкой. Эта ссылка помогает автоматически обновлять частную зону DNS при обновлении частной конечной точки. Например, при добавлении или удалении регионов частная зона DNS обновляется автоматически.
    Имя конфигурации Выберите подписку и группу ресурсов. Частная зона DNS определяется автоматически. Ее нельзя изменить на портале Azure.
  9. Щелкните ОК.

  10. Нажмите кнопку "Далее": проверка тегов>и создание. На странице "Рецензирование и создание" нажмите кнопку "Создать".

Включение частного доступа в существующем кластере

Чтобы создать частную конечную точку на узле в существующем кластере, откройте страницу "Сеть " для кластера.

  1. Нажмите Добавить частную конечную точку.

    Снимок экрана: выбор параметра

  2. На вкладке "Основы" экрана "Создание частной конечной точки" подтвердите подписку, группу ресурсов и регион. Введите имя конечной точки, например my-cluster-1, и имя сетевого интерфейса, например my-cluster-1-nic.

    Примечание.

    Если у вас нет хорошей причины выбрать другое, рекомендуется выбрать подписку и регион, соответствующий вашему кластеру. Значения по умолчанию для полей формы могут быть неверными. Проверьте их и при необходимости обновите их.

  3. По завершении выберите Далее: Ресурс. Для целевого подресурса выберите целевой узел кластера. Обычно координатор является нужным узлом.

  4. Выберите Далее: Виртуальная сеть. Выберите нужные значения параметров Виртуальная сеть и Подсеть. В разделе "Конфигурация частного IP-адреса" выберите статически выделить IP-адрес или сохраните ip-адрес по умолчанию, динамически выделяет IP-адрес.

  5. Выберите Далее: DNS.

  6. В разделе Частная зона DNS интеграции для интеграции с частной зоной DNS сохраните значение по умолчанию "Да" или нажмите кнопку "Нет".

  7. Нажмите кнопку "Далее": теги и добавьте все нужные теги.

  8. Выберите Review + create (Просмотреть и создать). Просмотрите параметры и нажмите кнопку "Создать " при удовлетворении.

Создание частной конечной точки с помощью Azure CLI

Выполните следующий скрипт Azure CLI, чтобы создать частную конечную точку с именем myPrivateEndpoint для существующей учетной записи Azure Cosmos DB. Замените значения переменных на значения для вашей среды.

# 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 

Интеграция частной конечной точки с частной зоной DNS

После создания частной конечной точки ее можно интегрировать с частной зоной DNS с помощью следующего сценария Azure CLI.

#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 
az network private-link-resource list \
  -g <rg-name> \
  -n <resource-name> \
  --type Microsoft.DocumentDB/mongoClusters 

Следующий шаг