Поделиться через


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

В этой статье объясняется, как настроить частные исходящие вызовы из службы "Поиск ИИ Azure" в ресурс Azure, работающий в виртуальной сети Azure.

Настройка частного подключения позволяет службе поиска подключаться к IP-адресу виртуальной сети, а не через порт, открытый к Интернету. Объект, созданный для подключения, называется общей приватной ссылкой. При подключении служба поиска использует общий приватный канал внутренне для доступа к ресурсу Azure внутри сетевой границы.

Общая приватная ссылка — это функция уровня "Премиум", которая взимается по использованию. При настройке общей приватной связи плата за частную конечную точку добавляется в счет Azure. При использовании общей приватной связи тарифы передачи данных для входящего и исходящего доступа также выставляются по счету. Дополнительные сведения см. в Приватный канал Azure ценах.

Примечание.

Если вы настраиваете частное подключение индексатора к Управляемый экземпляр SQL, см. в этой статье инструкции, относящиеся к этому типу ресурсов.

Поиск ИИ Azure выполняет исходящие вызовы к другим ресурсам Azure в следующих сценариях:

  • Подключения индексатора или поисковой системы к Azure OpenAI для внедрения текстовых векторов
  • Подключения индексатора к поддерживаемым источникам данных
  • Подключения индексатора (набора навыков) к служба хранилища Azure для кэширования обогащений, отладочного сеанса или записи в хранилище знаний
  • Подключения индексатора (skillset) к службам ИИ Azure для выставления счетов
  • Запросы ключа шифрования в Azure Key Vault
  • Запросы пользовательских навыков для Функции Azure или аналогичного ресурса

Общие частные ссылки работают только для подключений Azure к Azure. Если вы подключаетесь к OpenAI или другой внешней модели, подключение должно находиться через общедоступный Интернет.

Общие частные ссылки предназначены для операций и данных, к которым обращается частная конечная точка для ресурсов Azure или клиентов, работающих в виртуальной сети Azure.

Общая приватная ссылка:

  • Создание с помощью средств поиска ИИ Azure, API или пакетов SDK
  • Утвержден владельцем ресурса Azure
  • Используется внутренней службой поиска ИИ Azure для частного подключения к определенному ресурсу Azure.

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

После настройки приватного канала он автоматически используется при подключении службы поиска к нему. Вам не нужно изменять строка подключения или изменять клиент, который вы используете для выдачи запросов, хотя устройство, используемое для подключения, должно подключаться с помощью авторизованного IP-адреса в брандмауэре ресурса Azure.

Существует два сценария совместного использования Приватный канал Azure и поиска ИИ Azure.

Сценарий, описанный в этой статье.

Хотя оба сценария имеют зависимость от Приватный канал Azure, они независимы. Вы можете создать общую частную ссылку без необходимости настроить собственную службу поиска для частной конечной точки.

Ограничения

При оценке общих частных ссылок для вашего сценария помните эти ограничения.

  • Несколько типов ресурсов, используемых в общей приватной ссылке, находятся в предварительной версии. Если вы подключаетесь к ресурсу предварительной версии (База данных Azure для MySQL или Управляемый экземпляр SQL Azure), используйте предварительную версию REST API управления для создания общей приватной ссылки. К этим версиям относятся 2020-08-01-preview, 2021-04-01-previewи 2024-06-01-preview2024-03-01-preview. Рекомендуется использовать последнюю предварительную версию API.

  • Выполнение индексатора должно использовать частную среду выполнения, относящуюся к службе поиска. Подключения к частной конечной точке не поддерживаются из мультитенантной среды обработки содержимого. Параметр конфигурации для этого требования рассматривается в этой статье.

  • Просмотрите ограничения ресурсов общего приватного канала для каждого уровня.

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

  • Поддерживаемый ресурс Azure, настроенный для запуска в виртуальной сети.

  • Azure AI служба с требованиями уровня и региона по рабочей нагрузке:

    Рабочая нагрузка Требования к уровню Требования к регионам Требования к созданию службы
    Индексаторы без наборов навыков Базовый и более высокий нет нет
    Наборы навыков с внедрением навыков (интегрированная векторизация) Базовый и более высокий Регионы с высокой емкостью После 3 апреля 2024 г.
    Наборы навыков с помощью других встроенных или пользовательских навыков Standard 2 (S2) и выше нет После 3 апреля 2024 г.
  • Разрешения для поиска ИИ Azure и ресурса Azure:

    Ресурс Разрешения
    Поиск с использованием ИИ Azure Microsoft.Search/searchServices/sharedPrivateLinkResources/write
    Microsoft.Search/searchServices/sharedPrivateLinkResources/read
    Microsoft.Search/searchServices/sharedPrivateLinkResources/operationStatuses/read
    Другой ресурс Azure Разрешение на утверждение подключений к частной конечной точке. Например, на служба хранилища Azure вам потребуетсяMicrosoft.Storage/storageAccounts/privateEndpointConnectionsApproval/action.

Поддерживаемые типы ресурсов

Вы можете создать общую приватную ссылку для следующих ресурсов.

Тип ресурса Subresource (или идентификатор группы)
Microsoft.Storage/storageAccounts 1 blob, , tabledfsfile
Microsoft.DocumentDB/databaseAccounts 2 Sql
Microsoft.Sql/servers 3 sqlServer
Microsoft.KeyVault/vaults vault
Microsoft.DBforMySQL/servers (предварительная версия) mysqlServer
Microsoft.Web/sites 4 sites
Microsoft.Sql/managedInstances (предварительная версия) 5 managedInstance
Microsoft.CognitiveServices/accounts 6 7 openai_account
Microsoft.CognitiveServices/accounts 8 cognitiveservices_account

1 Если служба хранилища Azure и поиск по искусственному интеллекту Azure находятся в одном регионе, подключение к хранилищу выполняется через магистральную сеть Майкрософт, что означает, что общая приватная ссылка является избыточной для этой конфигурации. Однако если вы уже настроили частную конечную точку для служба хранилища Azure, необходимо также настроить общую частную ссылку или подключение отказывается на стороне хранилища. Кроме того, если вы используете несколько форматов хранилища для различных сценариев поиска, обязательно создайте отдельную общую приватную ссылку для каждого подресурса.

2 Тип Microsoft.DocumentDB/databaseAccounts ресурса используется для подключений индексатора к Azure Cosmos DB для NoSQL. Имя поставщика и идентификатор группы чувствительны к регистру.

3 Тип Microsoft.Sql/servers ресурса используется для подключений к базе данных SQL Azure. В настоящее время нет поддержки общей частной ссылки на Azure Synapse SQL.

4 Тип Microsoft.Web/sites ресурса используется для службы приложений и функций Azure. В контексте поиска ИИ Azure функция Azure является более вероятным сценарием. Функция Azure обычно используется для размещения логики пользовательского навыка. Функция Azure имеет планы размещения, уровня "Премиум" и "Выделенный" Служба приложений. В настоящее время Среда службы приложений (ASE) Служба Azure Kubernetes (AKS) и Azure Управление API не поддерживаются.

5 См. статью "Создание общей приватной ссылки" для Управляемый экземпляр SQL инструкций.

6 Тип Microsoft.CognitiveServices/accounts ресурса используется для векторизатора и индексатора подключений к моделям внедрения Azure OpenAI при реализации интегрированной векторизации. По состоянию на 19 ноября 2024 г. теперь поддерживается общая приватная ссылка на внедрение моделей в каталог моделей Azure AI Studio или в многомодальный API Azure AI Vision.

7 Общий приватный канал для Azure OpenAI поддерживается только в общедоступном облаке. Другие облачные предложения, такие как Microsoft Azure для государственных организаций, не поддерживают общие закрытые ссылки для openai_account идентификатора группы.

8 Общих частных ссылок теперь поддерживаются (по состоянию на ноябрь 2024 г.) для подключений к многослужбным учетным записям Azure AI. Поиск azure AI подключается к мультислужбе Azure AI для выставления счетов. Теперь эти подключения могут быть закрытыми через общую приватную ссылку.

Используйте портал Azure, REST API управления, Azure CLI или Azure PowerShell, чтобы создать общую приватную ссылку.

Несколько советов:

  • Присвойте приватной ссылке понятное имя. В ресурсе Azure PaaS общий приватный канал отображается вместе с другими частными конечными точками. Имя, например "shared-private-link-for-search", может напомнить вам, как оно используется.

После выполнения действий, описанных в этом разделе, у вас есть общая приватная ссылка, подготовленная в состоянии ожидания. Создание ссылки занимает несколько минут. После создания владелец ресурса должен утвердить запрос, прежде чем он работает.

  1. Войдите в портал Azure и найдите службу поиска.

  2. В разделе "Параметры" в области навигации слева выберите "Сеть".

  3. На странице "Общий частный доступ" нажмите кнопку "Добавить общий частный доступ".

  4. Выберите "Подключиться к ресурсу Azure" в моем каталоге или подключиться к ресурсу Azure по идентификатору ресурса.

  5. Если выбрать первый вариант (рекомендуется), портал поможет выбрать соответствующий ресурс Azure и заполнить другие свойства, например идентификатор группы ресурса и тип ресурса.

    Снимок экрана: страница

  6. Если выбрать второй вариант, введите идентификатор ресурса Azure вручную и выберите соответствующий идентификатор группы из списка в начале этой статьи.

    Снимок экрана: страница

  7. Убедитесь, что состояние подготовки — "Обновление".

    Снимок экрана: страница

  8. После успешного создания ресурса состояние подготовки ресурса изменится на "Успешно".

    Снимок экрана: страница

В случае успешного выполнения возвращается ответ 202 Accepted. Процесс создания исходящей частной конечной точки — это длительно выполняемая (асинхронная) операция. Включает развертывание следующих ресурсов:

  • Частная конечная точка с выделенным частным IP-адресом в состоянии "Pending". Частный IP-адрес выделяется из адресного пространства, выделенного для виртуальной сети среды выполнения для частного индексатора определенных служб. При утверждении частной конечной точки любая связь из службы "Поиск ИИ Azure" с ресурсом Azure поступает из частного IP-адреса и безопасного канала приватного канала.

  • Частная зона DNS для типа ресурса на основе идентификатора группы. Развернув этот ресурс, убедитесь, что в любом DNS-запросе к частному ресурсу используется IP-адрес, связанный с частной конечной точкой.

2. Утверждение подключения к частной конечной точке

Утверждение подключения к частной конечной точке предоставляется на стороне Azure PaaS. Требуется явное утверждение владельца ресурса. Следующие действия охватывают утверждение с помощью портал Azure, но ниже приведены ссылки на утверждение подключения программным способом с стороны Azure PaaS:

Используя портал Azure, выполните следующие действия.

  1. Откройте страницу "Сеть" ресурса Azure PaaS.СМС

  2. Найдите раздел, в который перечислены подключения к частной конечной точке. В следующем примере используется учетная запись хранения.

    Снимок экрана: портал Azure с панелью

  3. Выберите подключение и нажмите кнопку "Утвердить". На портале может потребоваться несколько минут.

    Снимок экрана: портал Azure, на панели

После утверждения частной конечной точки поиск Azure создает необходимые сопоставления зон DNS в зоне DNS, созданной для нее.

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

Снимок экрана: ссылка на частную конечную точку на странице сети Azure PaaS.

При выборе ссылки возникает ошибка. Сообщение "The access token is from the wrong issuer" о состоянии и must match the tenant associated with this subscription отображается, так как ресурс внутренней частной конечной точки подготовлен корпорацией Майкрософт в управляемом корпорацией Майкрософт клиенте, а связанный ресурс (поиск ИИ Azure) находится в вашем клиенте. Это по проектированию, вы не можете получить доступ к ресурсу частной конечной точки, выбрав ссылку подключения к частной конечной точке.

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

На стороне поиска ИИ Azure вы можете подтвердить утверждение запроса, вернув страницу общего закрытого доступа на странице "Сеть службы поиска". Состояние подключения должно быть утверждено.

Снимок экрана: портал Azure с ресурсом утвержденного общего приватного канала.

Кроме того, можно получить состояние подключения с помощью общего Приватный канал ресурсов — Get.

az rest --method get --uri https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/contoso/providers/Microsoft.Search/searchServices/contoso-search/sharedPrivateLinkResources/blob-pe?api-version=2024-07-01

При этом возвращается JSON, где состояние подключения отображается как состояние "состояние" в разделе "свойства". Ниже приведен пример учетной записи хранения.

{
      "name": "blob-pe",
      "properties": {
        "privateLinkResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/contoso/providers/Microsoft.Storage/storageAccounts/contoso-storage",
        "groupId": "blob",
        "requestMessage": "please approve",
        "status": "Approved",
        "resourceRegion": null,
        "provisioningState": "Succeeded"
      }
}

Если состояние подготовки (properties.provisioningState) ресурса имеет значение "Успешно" и состояниеproperties.status подключения () имеет значение "Утверждено", это означает, что общий ресурс приватного канала работает и индексатор можно настроить для обмена данными через частную конечную точку.

4. Настройка индексатора для запуска в частной среде

Выполнение индексатора выполняется в частной среде, относящемся к службе поиска, или мультитенантной среде, которая используется внутренне для разгрузки дорогостоящих наборов навыков для нескольких клиентов.

Среда выполнения является прозрачной, но после начала создания правил брандмауэра или установки частных подключений необходимо учитывать выполнение индексатора. Для частного подключения настройте выполнение индексатора, чтобы всегда выполняться в частной среде.

На этом шаге показано, как настроить индексатор для запуска в частной среде с помощью REST API. Среду выполнения также можно задать с помощью редактора JSON на портале.

Примечание.

Этот шаг можно выполнить до утверждения частного подключения конечной точки. Однако до тех пор, пока подключение частной конечной точки не будет утверждено, любой существующий индексатор, который пытается связаться с безопасным ресурсом (например, учетной записью хранения) в конечном итоге будет находиться в временном состоянии сбоя, и новые индексаторы не будут созданы.

  1. Создайте определение источника данных, индекс и набор навыков (если вы используете его) обычным образом. Все свойства в этих определениях такие же, как и для общей частной конечной точки.

  2. Создайте индексатор, указывающий на источник данных, индекс и набор навыков, созданный в предыдущем шаге. Кроме того, необходимо принудительно запустить индексатор в частной среде выполнения, задав для свойства конфигурации индексатора executionEnvironment значение private.

    {
        "name": "indexer",
        "dataSourceName": "blob-datasource",
        "targetIndexName": "index",
        "parameters": {
            "configuration": {
                "executionEnvironment": "private"
            }
        },
        "fieldMappings": []
    }
    

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

Примечание.

Если у вас уже используются индексаторы, их можно обновить с помощью API PUT, задав для свойства executionEnvironment значение private, или с помощью редактора JSON на портале.

  1. Если вы еще этого не сделали, убедитесь, что ресурс Azure PaaS отказывается от подключений из общедоступного Интернета. Если подключения принимаются, просмотрите параметры DNS на странице "Сеть " ресурса Azure PaaS.

  2. Выберите средство, которое может вызвать сценарий исходящего запроса, например подключение индексатора к частной конечной точке. Простой выбор — использование мастера импорта данных , но вы также можете попробовать клиент REST и REST API для повышения точности. Если служба поиска не настроена для частного подключения, подключение клиента REST для поиска может находиться через общедоступный Интернет.

  3. Задайте для строка подключения частный ресурс Azure PaaS. Формат строка подключения не изменяется для общей приватной ссылки. Служба поиска вызывает общую приватную ссылку внутри.

    Для рабочих нагрузок индексатора строка подключения находится в определении источника данных. Пример источника данных может выглядеть следующим образом:

     {
       "name": "my-blob-ds",
       "type": "azureblob",
       "subtype": null,
       "credentials": {
         "connectionString": "DefaultEndpointsProtocol=https;AccountName=<YOUR-STORAGE-ACCOUNT>;AccountKey=..."
       }
    
  4. Для рабочих нагрузок индексатора не забудьте задать среду выполнения в определении индексатора. Пример определения индексатора может выглядеть следующим образом:

    "name": "indexer",
    "dataSourceName": "my-blob-ds",
    "targetIndexName": "my-index",
    "parameters": {
       "configuration": {
           "executionEnvironment": "private"
           }
       },
    "fieldMappings": []
    }
    
  5. Запустите индексатор. Если выполнение индексатора успешно выполнено, и индекс поиска заполняется, общая приватная ссылка работает.

Устранение неполадок

  • Если создание индексатора завершается сбоем с сообщением "Учетные данные источника данных недопустимы", проверьте состояние утверждения общей приватной ссылки перед отладкой подключения. Если состояние равно Approved, проверьте properties.provisioningState свойство. Если это Incompleteтак, может возникнуть проблема с базовыми зависимостями. В этом случае повторите PUT запрос на повторное создание общей приватной ссылки. Возможно, вам также потребуется повторить шаг утверждения.

  • Если индексаторы завершаются последовательно или периодически, проверьте executionEnvironment свойство индексатора. Значение должно иметь значение private. Если это свойство не задано, и индексатор выполняется успешно в прошлом, это связано с тем, что служба поиска использовала частную среду собственного соглашения. Служба поиска перемещает обработку из мультитенантной среды, если система находится под нагрузкой.

  • Если при создании общей приватной ссылки возникает ошибка, проверьте ограничения службы, чтобы убедиться, что вы находитесь под квотой для вашего уровня.

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

Дополнительные сведения о частных конечных точках и других методах безопасного подключения: