Внедрение секретов в сетевых конечных точках (предварительная версия)

ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)Python SDK azure-ai-ml версии 2 (current)

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

Важно!

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

Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.

формулировка проблемы;

При создании сетевого развертывания может потребоваться использовать секреты из развертывания для доступа к внешним службам. Некоторые из этих внешних служб включают службу Microsoft Azure OpenAI, службы ИИ Azure и содержимое ИИ Azure Сейф ty.

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

Лучше всего хранить секреты в секретных хранилищах, а затем безопасно извлекать их из развертывания. Однако этот подход представляет свою собственную проблему: как развертывание должно пройти проверку подлинности в хранилищах секретов для получения секретов. Так как сетевое развертывание запускает контейнер пользователя с помощью удостоверения конечной точки, который является управляемым удостоверением, вы можете использовать Azure RBAC для управления разрешениями удостоверения конечной точки и разрешить конечной точке получать секреты из хранилищ секретов. Для этого подхода необходимо выполнить следующие задачи:

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

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

Управляемое удостоверение, связанное с конечной точкой

Сетевое развертывание запускает контейнер пользователя с управляемым удостоверением, связанным с конечной точкой. Это управляемое удостоверение, называемое удостоверением конечной точки, — это идентификатор Microsoft Entra, поддерживающий Azure RBAC. Таким образом, вы можете назначить роли Azure удостоверению для управления разрешениями, необходимыми для выполнения операций. Удостоверение конечной точки может быть удостоверением, назначенным системой (SAI) или удостоверением, назначенным пользователем (UAI). Вы можете решить, какие из этих удостоверений следует использовать при создании конечной точки.

  • Для назначаемого системой удостоверения удостоверение создается автоматически при создании конечной точки, а роли с основными разрешениями (например, разрешением на извлечение Реестр контейнеров Azure и средством чтения данных BLOB-объектов хранилища) автоматически назначаются.
  • Для удостоверения, назначаемого пользователем, сначала необходимо создать удостоверение, а затем связать его с конечной точкой при создании конечной точки. Вы также несете ответственность за назначение соответствующих ролей UAI по мере необходимости.

Дополнительные сведения об использовании управляемых удостоверений конечной точки см. в статье "Как получить доступ к ресурсам из конечных точек с управляемыми удостоверениями" и пример использования управляемых удостоверений для взаимодействия с внешними службами.

Назначение роли идентификатору конечной точки

Для хранилищ секретов требуются следующие роли:

  • Для секретов, хранящихся в подключениях к рабочей области, Workspace Connections предоставляет API секретов списка (предварительная версия), для которых требуется удостоверение, которое вызывает API для Azure Machine Learning Workspace Connection Secrets Reader назначения удостоверению роли (или эквивалентно).
  • Для секретов, хранящихся во внешнем хранилище ключей Microsoft Azure: Key Vault предоставляет API получения секретных версий, для которых требуется удостоверение, которое вызывает API для Key Vault Secrets User назначения ему роли (или эквивалентно).

Реализация внедрения секретов

После извлечения секретов (таких как ключи API) из хранилищ секретов можно внедрить их в контейнер пользователя, который выполняется в интерактивном развертывании:

  • Вставляете секреты самостоятельно с помощью управляемых удостоверений.
  • Внедрение секретов с помощью функции внедрения секретов.

Оба этих подхода включают два шага.

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

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

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

Внедрение секретов с помощью функции внедрения секретов

Чтобы использовать функцию внедрения секретов, в определении развертывания сопоставите секреты (которые вы хотите ссылаться) из подключений к рабочей области или Key Vault с переменными среды. Этот подход не требует написания кода в скрипте оценки или в сценариях оболочки, выполняемых в контейнере BYOC. Чтобы сопоставить секреты из подключений к рабочей области или Key Vault с переменными среды, необходимо выполнить следующие условия:

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

Примечание.

  • Если конечная точка была успешно создана с помощью SAI и флага для принудительного доступа к хранилищам секретов по умолчанию, то конечная точка автоматически будет иметь разрешение для подключений к рабочей области.
  • В случае, если конечная точка использовала UAI или флаг для принудительного доступа к хранилищам секретов по умолчанию не задана, удостоверение конечной точки может не иметь разрешения для подключений к рабочей области. В такой ситуации необходимо вручную назначить роль для подключений рабочей области к удостоверению конечной точки.
  • Удостоверение конечной точки не будет автоматически получать разрешение для внешнего хранилища ключей. Если вы используете Key Vault в качестве секретного хранилища, вам потребуется вручную назначить роль для Key Vault удостоверению конечной точки.

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