Проверка подлинности для управляемых конечных точек в Сети

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

В этой статье описываются понятия удостоверения и разрешения в контексте сетевых конечных точек. Начнем с обсуждения идентификаторов Microsoft Entra, поддерживающих Azure RBAC. В зависимости от цели удостоверения Microsoft Entra мы называем его удостоверением пользователя или удостоверением конечной точки.

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

Удостоверение конечной точки — это идентификатор Microsoft Entra, который запускает контейнер пользователя в развертываниях. Другими словами, если удостоверение связано с конечной точкой и используется для контейнера пользователя для развертывания, то это называется удостоверением конечной точки. Удостоверение конечной точки также потребует надлежащих разрешений для взаимодействия контейнера пользователя с ресурсами по мере необходимости. Например, для удостоверения конечной точки потребуются соответствующие разрешения для извлечения изображений из Реестр контейнеров Azure или взаимодействия с другими службами Azure.

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

Ограничение

Проверка подлинности идентификатора Microsoft Entra (aad_token) поддерживается только для управляемых конечных точек в Интернете. Для сетевых конечных точек Kubernetes можно использовать ключ или маркер Машинное обучение Azure (aml_token).

Разрешения, необходимые для удостоверения пользователя

При входе в клиент Azure с учетной записью Майкрософт (например, с помощью az login), выполните шаг проверки подлинности пользователя (обычно известный как authn) и удостоверение в качестве пользователя определяется. Теперь предположим, что вы хотите создать конечную точку в сети в рабочей области, вам потребуется соответствующее разрешение. Это место, где происходит авторизация (обычно известная как authz).

Операции уровня управления

Управление операциями плоскости управления и изменение сетевых конечных точек. К этим операциям относятся операции создания, чтения, обновления и удаления (CRUD) в сетевых конечных точках и сетевых развертываниях. Для сетевых конечных точек и развертываний запросы на выполнение операций плоскости управления отправляются в рабочую область Машинное обучение Azure.

Проверка подлинности для операций уровня управления

Для операций уровня управления можно пройти проверку подлинности клиента в рабочей области: с помощью маркера Microsoft Entra.

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

Авторизация для операций уровня управления

Для операций уровня управления удостоверение пользователя должно иметь надлежащее управление доступом на основе ролей Azure (Azure RBAC) для доступа к ресурсам. В частности, для операций CRUD в сетевых конечных точках и развертываниях необходимо, чтобы удостоверение было назначено следующими действиями:

Операция Обязательная роль Azure RBAC Область назначения роли
Операции создания и обновления в сетевых конечных точках и развертываниях Владелец, участник или любая роль, разрешающаяMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/write Рабочая область
Удаление операций в сетевых конечных точках и развертываниях Владелец, участник или любая роль, разрешающаяMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/delete Рабочая область
Операции создания и обновления и удаления в сетевых конечных точках и развертываниях с помощью Студия машинного обучения Azure Владелец, участник или любая роль, разрешающаяMicrosoft.Resources/deployments/write группа ресурсов, в которой принадлежит рабочая область
Операции чтения в сетевых конечных точках и развертываниях Владелец, участник или любая роль, разрешающаяMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/read Рабочая область
Получение маркера Машинное обучение Azure (aml_token) для вызова сетевых конечных точек (как управляемых, так и Kubernetes) из рабочей области Владелец, участник или любая роль, разрешающаяMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/token/action конечная точка
Получение ключа для вызова сетевых конечных точек (как управляемых, так и Kubernetes) из рабочей области Владелец, участник или любая роль, разрешающаяMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/listKeys/action конечная точка
Повторное создание ключей для сетевых конечных точек (как управляемых, так и Kubernetes) Владелец, участник или любая роль, разрешающаяMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/regenerateKeys/action конечная точка
Получение маркера Microsoft Entra (aad_token) для вызова управляемых сетевых конечных точек Не требует роли. Неприменимо

Примечание.

Вы можете получить маркерaad_token Microsoft Entra () непосредственно из идентификатора Microsoft Entra после входа, и вам не требуется дополнительное разрешение Azure RBAC в рабочей области.

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

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

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

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

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

Если (1) конечная точка создается с помощью UAI или (2) флаг не устанавливается для принудительного доступа к хранилищам секретов по умолчанию, даже если конечная точка использует SAI, удостоверение пользователя не требует разрешения на чтение секретов из подключений к рабочей области. В этом случае удостоверение конечной точки не будет автоматически предоставлено разрешение на чтение секретов, но вы по-прежнему можете вручную предоставить удостоверению конечной точки это разрешение, назначив соответствующие роли при необходимости. Независимо от того, было ли назначение роли выполнено автоматически или вручную, извлечение секретов и внедрение по-прежнему будет активировано, если вы сопоставили переменные среды с секретными ссылками в определении развертывания, и он будет использовать удостоверение конечной точки для этого.

Дополнительные сведения об управлении авторизацией в рабочей области Машинное обучение Azure см. в статье "Управление доступом к Машинное обучение Azure".

Дополнительные сведения о внедрении секретов см. в статье "Внедрение секретов" в сетевых конечных точках.

Операции плоскости данных

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

Проверка подлинности для операций плоскости данных

Для операций плоскости данных можно выбрать один из трех способов проверки подлинности клиента для отправки запросов в URI оценки конечной точки:

  • key
  • токен Машинное обучение Azure (aml_token)
  • Токен Microsoft Entra (aad_token)

Дополнительные сведения о проверке подлинности клиентов для операций плоскости данных см. в статье "Проверка подлинности клиентов для сетевых конечных точек".

Авторизация для операций плоскости данных

Для операций плоскости данных удостоверение пользователя должно иметь надлежащее управление доступом на основе ролей Azure (Azure RBAC) для доступа к ресурсам, только если для конечной точки задано использование маркера Microsoft Entra (aad_token). В частности, для операций плоскости данных в сетевых конечных точках и развертываниях необходимо, чтобы удостоверение было назначено следующими действиями:

Операция Обязательная роль Azure RBAC Область назначения роли
Вызов сетевых конечных точек с помощью ключа или маркера Машинное обучение Azure (aml_token). Не требует роли. Нет данных
Вызов управляемых сетевых конечных точек с помощью маркера Microsoft Entra (aad_token). Владелец, участник или любая роль, разрешающаяMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/score/action конечная точка
Вызов сетевых конечных точек Kubernetes с помощью маркера Microsoft Entra (aad_token). Не требует роли. Нет данных

Разрешения, необходимые для удостоверения конечной точки

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

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

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

Если удостоверение конечной точки является удостоверением, назначаемое системой, некоторые роли назначаются удостоверению конечной точки для удобства.

Роль Description Условие автоматического назначения ролей
AcrPull Позволяет удостоверению конечной точки извлекать изображения из Реестр контейнеров Azure (ACR), связанного с рабочей областью. Удостоверение конечной точки — это назначаемое системой удостоверение (SAI).
Storage Blob Data Reader Позволяет удостоверению конечной точки считывать большие двоичные объекты из хранилища данных по умолчанию рабочей области. Удостоверение конечной точки — это назначаемое системой удостоверение (SAI).
AzureML Metrics Writer (preview) Позволяет удостоверению конечной точки записывать метрики в рабочую область. Удостоверение конечной точки — это назначаемое системой удостоверение (SAI).
Azure Machine Learning Workspace Connection Secrets Reader1 Позволяет удостоверению конечной точки считывать секреты из подключений к рабочей области. Удостоверение конечной точки — это назначаемое системой удостоверение (SAI). Конечная точка создается с флагом для принудительного доступа к хранилищам секретов по умолчанию. Удостоверение пользователя, создающее конечную точку, имеет то же разрешение на чтение секретов из подключений к рабочей области. 2

1 Дополнительные сведения о Azure Machine Learning Workspace Connection Secrets Reader роли см. в разделе "Назначение разрешений для удостоверения".

2 Даже если удостоверение конечной точки является SAI, если флаг принудительного применения не задан или удостоверение пользователя не имеет разрешения, для этой роли нет автоматического назначения ролей. Дополнительные сведения см. в статье "Развертывание онлайн-конечной точки с помощью внедрения секретов".

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

Выбор разрешений и область для авторизации

Azure RBAC позволяет определять и назначать роли с набором разрешенных и/или запрещенных действий в определенных область. Эти роли и область можно настроить в соответствии с вашими бизнес-потребностями. Следующие примеры служат отправной точкой и могут быть расширены по мере необходимости.

Примеры удостоверения пользователя

  • Чтобы управлять всеми операциями, перечисленными в предыдущей таблице, для операций плоскости управления и таблицы для операций плоскости данных, можно использовать встроенную рольAzureML Data Scientist, содержащую действие Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*/actionsразрешения.
  • Чтобы управлять операциями для конкретной конечной точки, рассмотрите возможность использования область/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>/onlineEndpoints/<endpointName>.
  • Чтобы управлять операциями для всех конечных точек в рабочей области, рассмотрите возможность использования область/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>.

Примеры для удостоверения конечной точки

  • Чтобы разрешить контейнеру пользователя считывать большие двоичные объекты, рассмотрите возможность использования встроенной роли Storage Blob Data Reader , которая включает действие Microsoft.Storage/storageAccounts/blobServices/containers/blobs/readданных разрешений.

Дополнительные сведения о рекомендациях по операциям плоскости управления см. в статье "Управление доступом к Машинное обучение Azure". Дополнительные сведения об определении ролей, область и назначении ролей см. в статье Azure RBAC. Сведения о область назначенных ролей см. в статье "Общие сведения о область для Azure RBAC".