Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ:
Расширение машинного обучения Azure CLI версии 2 (current)
Python SDK azure-ai-ml версии 2 (current)
Внедрение секретов в сетевых конечных точках помогает безопасно использовать ключи API и другие секреты в развертываниях, не предоставляя их в коде. В этой статье описывается:
- Почему инъекция секретов важна для обеспечения безопасности развертываний
- Как использовать управляемые удостоверения для получения секретов
- Как функция внедрения секретов упрощает процесс
К концу вы узнаете, какой подход подходит для вашего сценария.
Внедрение секретов в контексте веб-конечной точки — это процесс извлечения секретов, таких как ключи API, из хранилищ секретов и внедрения их в контейнер пользователя, который выполняется в интерактивном развертывании. Сервер вывода выводов, на котором выполняется ваш скрипт оценки, или инференс-стек, который вы приносите, используя подход внедрения BYOC (принеси свой контейнер), безопасно обращается к секретам с помощью переменных среды.
Внимание
Эта функция сейчас доступна в виде общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания. Ее не следует использовать для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены.
Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.
формулировка проблемы;
При создании сетевого развертывания может потребоваться использовать секреты из развертывания для доступа к внешним службам. Некоторые из этих внешних служб включают службу Microsoft Azure OpenAI, средства Foundry и безопасность содержимого ИИ Azure.
Чтобы использовать секреты, необходимо безопасно передать их в пользовательский контейнер, который выполняется внутри развертывания. Не включайте секреты в определение развертывания, так как это может привести к их раскрытию.
Лучше всего хранить секреты в секретных хранилищах, а затем безопасно извлекать их из развертывания. Однако этот подход представляет свою собственную проблему: как развертывание должно пройти проверку подлинности в хранилищах секретов для получения секретов. Так как сетевое развертывание запускает контейнер пользователя с помощью удостоверения конечной точки, являющегося управляемым удостоверением, вы можете использовать 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, из хранилищ секретов, их можно внедрить в контейнер пользователя, который выполняется внутри сетевого развертывания двумя способами:
- Внедрение секретов самостоятельно с помощью управляемых удостоверений — для максимального контроля и гибкости
- Внедрение секретов с помощью функции внедрения секретов — для упрощенного подхода без кода
Выберите подход, который лучше всего соответствует вашим требованиям безопасности и рабочему процессу разработки.
Оба подхода включают два шага.
- Извлечение секретов из хранилищ секретов с использованием идентификатора конечной точки.
- Вставьте секреты в контейнер пользователя.
Инъекция секретов с помощью управляемых удостоверений
В определении развертывания используйте идентификатор конечной точки для вызова API из хранилища секретов. Эту логику можно реализовать в скрипте оценки или в сценариях оболочки, которые выполняются в контейнере BYOC. Дополнительные сведения о реализации инъекции секретов с помощью управляемых удостоверений см. в примере использования управляемых удостоверений для взаимодействия с внешними службами.
Внедрение секретов с помощью функции внедрения секретов
Чтобы использовать функцию внедрения секретов, сопоставьте секреты из подключений к рабочей области или Key Vault с переменными среды в определении развертывания. Этот подход не требует написания кода в скрипте оценки или в сценариях оболочки, выполняемых в контейнере BYOC. Чтобы сопоставить секреты из подключений к рабочей области или Key Vault с переменными среды, необходимо выполнить следующие условия:
- При создании конечной точки, если вы определяете онлайн конечную точку для обеспечения доступа к хранилищам секретов по умолчанию (подключения к рабочим областям в текущей рабочей области), удостоверение пользователя, создающего развертывание под этой конечной точкой, должно обладать разрешениями для чтения секретов из подключений к рабочим областям.
- Удостоверение конечной точки, которое используется в развертывании, должно иметь разрешения на чтение секретов из подключений к рабочему пространству или Key Vault (хранилище ключей), как указано в определении развертывания.
Примечание.
- Если конечная точка успешно создана с помощью SAI и установите флаг для принудительного доступа к хранилищам секретов по умолчанию, конечная точка автоматически имеет разрешение для подключений к рабочей области.
- Если конечная точка использует UAI, или если вы не установите флаг, чтобы обеспечить доступ к хранилищам секретов по умолчанию, удостоверение конечной точки может не иметь разрешения на подключение к рабочей области. В этой ситуации необходимо вручную назначить роль идентификатору конечной точки для подключений рабочей области.
- Идентичность конечной точки не получает автоматического разрешения на внешний Key Vault. Если вы используете Key Vault в качестве хранилища секретов, необходимо вручную назначить ему роль для удостоверения конечной точки.
Дополнительные сведения об использовании внедрения секретов см. в статье "Развертывание моделей машинного обучения в сетевых конечных точках с помощью внедрения секретов (предварительная версия)".
Дальнейшие шаги
Теперь, когда вы понимаете понятия внедрения секретов, узнайте, как реализовать его:
- Развертывание с помощью внедрения секретов (предварительная версия) — пошаговое руководство по реализации внедрения секретов в развертываниях
- Проверка подлинности для управляемых конечных точек в Сети. Общие сведения о параметрах проверки подлинности для конечных точек
- Общие сведения о сетевых конечных точках . Основные сведения о сетевых конечных точках
Готовы приступить к работе? Следуйте руководству по развертыванию.