Azure Веб-приложение VNet интеграция с учетной записью хранения с помощью Private Link - PullRequest
1 голос
/ 30 марта 2020

* ОБНОВЛЕНИЕ 2 апреля 2020 года *

Сегодня звонили в Microsoft. Оказывается, службы приложений в настоящее время не могут использовать частную зону DNS. Итак, вам нужно настроить свой собственный DNS-сервер. Это будет исправлено, но они не могут дать мне ETA. Так что пока это либо собственный DNS-сервер, либо использование конечных точек службы. Я обновлю этот вопрос, когда это изменится


У меня есть API в Azure Службе приложений (S1), для которого я настроил VNet Интеграция (su bnet 10.240.0.32/27 ). У меня также есть учетная запись стража, для которой я настроил частную ссылку (su bnet 10.240.0.0/27 и получил ip 10.240.0.4). Это, однако, не работает. Я получаю следующую ошибку:

StorageException: этот запрос не авторизован для выполнения этой операции.

Кто-нибудь знает, нужно ли мне что-то еще настроить для этой работы?

В этом do c указано, что мне не нужно менять строку подключения. Соединения работали до того, как была настроена частная ссылка.

* Обновление *

Я также пытался использовать базу данных Azure SQL. Развернуто частная ссылка на SQL в том же су bnet, что и для хранения. Не очень удача и здесь. Получается следующая ошибка:

SqlException: Причина: ошибка, связанная с экземпляром c, произошла при установлении соединения с SQL сервером. Конечная точка данных publi c на этом сервере недоступна. Чтобы подключиться к этому серверу, используйте частную конечную точку из вашей виртуальной сети.

Когда я добавляю «WEBSITE_VNET_ROUTE_ALL» (чтобы вместо этого сделать все исходящие трафик c go через vnet только частных ips) к веб-приложению и установите его в '1', я получаю следующую ошибку:

SqlException: ошибка, связанная с сетью или экземпляром, указанная c при установлении соединения на SQL сервер. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Сервер настроен для разрешения удаленных подключений. (поставщик: поставщик TCP, ошибка: 0 - при поиске в базе данных произошла неустранимая ошибка.)

Затем я создал виртуальную машину в том же su bnet, что и частные ссылки. С этого виртуального компьютера я могу запустить эту команду, которая приятно возвращается с правильным ip:. \ Psping.exe azurenetworking.database. windows. net: 1433

enter image description here

Ответы [ 2 ]

1 голос
/ 02 апреля 2020

Ошибка может возникнуть при доступе к хранилищу больших двоичных объектов через конечную точку publi c, но при включении настроек брандмауэра учетной записи хранения VNet.

В этом случае интеграция приложения VNet с подключением к учетной записи хранения можно использовать конечную точку службы вместо частную конечную точку . Чтобы использовать конечные точки службы с вашим приложением, используйте региональный VNet Интеграция для подключения к выбранной виртуальной сети. Затем настройте конечные точки службы Microsoft.Storage на su bnet, который вы использовали для интеграции.

Если вы все еще хотите использовать частную конечную точку, я боюсь, что вам нужно использовать собственную DNS-сервер для разрешения имен из службы приложений Azure (веб-приложение, функция или бот), использующей интеграцию виртуальной сети с экземплярами ролей или виртуальными машинами в одной виртуальной сети. См. Разрешение имен для ресурсов в Azure виртуальных сетях .

При использовании частной ссылки DNS-имя хранилища больших двоичных объектов преобразуется в публичный c IP-адрес, а не в IP-адрес частной конечной точки из консоли службы приложения. Похоже, что вы получаете доступ к хранилищу больших двоичных объектов за пределами VNet через конечную точку publi c при доступе из службы приложений. Между тем, он может быть преобразован в частный IP-адрес конечной точки из виртуальной машины в том же su bnet, что и в частной конечной точке. См. Изменения DNS для частных конечных точек .

enter image description here

0 голосов
/ 27 апреля 2020

У меня была эта проблема при использовании службы приложения для связи с частной конечной точкой sql, этот комментарий заставил систему начать работать для меня:

Сегодня я настроил следующие четыре пункта и попробовал их

  1. Создайте частную зону DNS и подключите ее к VNET (privatelink.blob.core. windows. net)
  2. Установите VNET DNS для 168.63.129.16
  3. Настройка веб-приложений на региональные VNET Интеграция
  4. Установите WEBSITE_VNET_ROUTE_ALL для веб-приложений на 1

Я получил PrivateIP от KUDU (nameresolver xxxx.blob) .core. windows. net) Я также смог получить к нему доступ со стороны PrivateIP, используя curl в KUDU.

Кажется, важно установить оба значения: 2 и 4

С https://feedback.azure.com/forums/169385-web-apps/suggestions/38383642-web-app-and-private-dns-zone-support

Затем я использовал nameresolver в средах командной строки kudu, чтобы увидеть, к каким IP-адресам разрешается. Одна из моих сред все еще не работает, но я думаю, что она менялась так много раз, что попадала в какое-то странное состояние. Настройка VNET DNS была последней частью головоломки, хотя

Надеюсь, это поможет

...