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


Управление доступом к рабочим областям Машинное обучение Azure

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

Совет

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

Предупреждение

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

Роли по умолчанию

Машинное обучение Azure рабочие области имеют встроенные роли, доступные по умолчанию. При добавлении пользователей в рабочую область назначьте им одну из следующих ролей.

Роль Уровень доступа
Специалист по обработке и анализу данных AzureML Может выполнять все действия в рабочем пространстве Машинного обучения Azure, кроме создания и удаления вычислительных ресурсов и изменения самого рабочего пространства.
Оператор вычислений AzureML Может создавать, управлять, удалять и получать доступ к вычислительным ресурсам в рабочей области.
Читатель действия с доступом только для чтения в рабочей области. Читатели могут просматривать списки ресурсов и сами ресурсы (включая учетные данные хранилищ данных) в рабочей области. Читатели не могут создавать или обновлять такие ресурсы.
Участник просмотр, создание, изменение или удаление (если применимо) ресурсов в рабочей области. Например, участники могут создать эксперимент, создать или подключить вычислительный кластер, выполнить запуск и развернуть веб-службу.
Ответственное лицо полный доступ к рабочей области, включая возможность просмотра, создания, изменения или удаления (если применимо) ресурсов в ней. Кроме того, можно изменить назначения ролей.

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

Роль Уровень доступа
Пользователь реестра AzureML Может получать реестры, а также читать, записывать и удалять ресурсы внутри них. Не удается создать ресурсы реестра или удалить их.

Вы можете объединить роли для предоставления различных уровней доступа. Например, предоставьте пользователю рабочей области роли AzureML Data Scientist и оператора вычислений AzureML , чтобы разрешить пользователю выполнять эксперименты при создании вычислительных ресурсов самостоятельно.

Внимание

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

Роль администратора ИИ Azure

До 2024-11-19 управляемое удостоверение, назначаемое системой, автоматически получает роль участника для группы ресурсов, содержащей рабочую область. Рабочие области, созданные после этой даты, назначают системно назначенное управляемое удостоверение на роль администратора ИИ Azure. Эта роль более узко ограничена минимальными разрешениями, необходимыми для выполнения задач управляемого удостоверения.

Роль администратора искусственного интеллекта Azure имеет следующие разрешения:

{
    "permissions": [
        {
            "actions": [
                "Microsoft.Authorization/*/read",
                "Microsoft.CognitiveServices/*",
                "Microsoft.ContainerRegistry/registries/*",
                "Microsoft.DocumentDb/databaseAccounts/*",
                "Microsoft.Features/features/read",
                "Microsoft.Features/providers/features/read",
                "Microsoft.Features/providers/features/register/action",
                "Microsoft.Insights/alertRules/*",
                "Microsoft.Insights/components/*",
                "Microsoft.Insights/diagnosticSettings/*",
                "Microsoft.Insights/generateLiveToken/read",
                "Microsoft.Insights/logDefinitions/read",
                "Microsoft.Insights/metricAlerts/*",
                "Microsoft.Insights/metricdefinitions/read",
                "Microsoft.Insights/metrics/read",
                "Microsoft.Insights/scheduledqueryrules/*",
                "Microsoft.Insights/topology/read",
                "Microsoft.Insights/transactions/read",
                "Microsoft.Insights/webtests/*",
                "Microsoft.KeyVault/*",
                "Microsoft.MachineLearningServices/workspaces/*",
                "Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action",
                "Microsoft.ResourceHealth/availabilityStatuses/read",
                "Microsoft.Resources/deployments/*",
                "Microsoft.Resources/deployments/operations/read",
                "Microsoft.Resources/subscriptions/operationresults/read",
                "Microsoft.Resources/subscriptions/read",
                "Microsoft.Resources/subscriptions/resourcegroups/deployments/*",
                "Microsoft.Resources/subscriptions/resourceGroups/read",
                "Microsoft.Resources/subscriptions/resourceGroups/write",
                "Microsoft.Storage/storageAccounts/*",
                "Microsoft.Support/*",
                "Microsoft.Search/searchServices/write",
                "Microsoft.Search/searchServices/read",
                "Microsoft.Search/searchServices/delete",
                "Microsoft.Search/searchServices/indexes/*",
                "Microsoft.Search/searchServices/listAdminKeys/action",
                "Microsoft.Search/searchServices/privateEndpointConnections/*",
                "Microsoft.DataFactory/factories/*"
            ],
            "notActions": [],
            "dataActions": [],
            "notDataActions": []
        }
    ]
}

Преобразование существующего управляемого системой удостоверения в роль администратора ИИ Azure

Совет

Преобразуйте рабочие области, созданные до 11.19.2024, для использования роли администратора ИИ Azure. Роль администратора искусственного интеллекта Azure имеет более узкую область, чем роль участника, и следует принципу наименьших привилегий.

Чтобы преобразовать рабочие области, созданные до 11.19.2024, используйте один из следующих методов:

  • REST API Azure: отправьте PATCH запрос в REST API Azure для рабочей области. Задайте значение тела запроса {"properties":{"allowRoleAssignmentOnRG":true}}. В следующем примере показан PATCH запрос с помощью curl. Замените <your-subscription>, <resource-group-name><workspace-name>и <YOUR-ACCESS-TOKEN> значениями для вашего сценария. Дополнительные сведения об использовании REST API см. в документации по REST API Azure.

    curl -X PATCH \
    "https://management.azure.com/subscriptions/<your-subscription>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>?api-version=2024-07-01-preview" \
    -H "Authorization: Bearer <YOUR-ACCESS-TOKEN>" \
    -H "Content-Type: application/json" \
    --data '{"properties":{"allowRoleAssignmentOnRG":true}}'
    

    Справочник: Microsoft.MachineLearningServices/workspaces (2024-07-01-preview)

  • Azure CLI: используйте az ml workspace update команду с параметром --allow-roleassignment-on-rg true . В следующем примере обновляется рабочая область с именем myworkspace. Для этой команды требуется расширение CLI Машинное обучение Azure версии 2.27.0 или более поздней.

    az ml workspace update --name myworkspace --allow-roleassignment-on-rg true
    
  • Пакет SDK для Python Для Azure: задайте allow_roleassignment_on_rg свойство объекта True Рабочей области и выполните операцию обновления. В следующем примере обновляется рабочая область с именем myworkspace. Для этой операции требуется пакет SDK Машинное обучение Azure версии 1.17.0 или более поздней.

    ws = ml_client.workspaces.get(name="myworkspace")
    ws.allow_roleassignment_on_rg = True
    ws = ml_client.workspaces.begin_update(workspace=ws).result()
    

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

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

Например, используйте Azure CLI для назначения роли joe@contoso.com для группы ресурсов this-rg с помощью следующей команды:

az role assignment create --role "Contributor" --assignee "joe@contoso.com" --resource-group this-rg

Управление доступом к рабочей области с помощью групп безопасности Microsoft Entra

Группы безопасности Microsoft Entra можно использовать для управления доступом к рабочим областям. Этот подход имеет следующие преимущества:

  • Руководители команд или проектов могут управлять доступом пользователей к рабочей области в качестве владельцев групп безопасности; при этом роль владельца непосредственно в ресурсе рабочей области не требуется.
  • Вы можете упорядочивать, управлять и отменять разрешения пользователей на рабочей области и других ресурсах как группу, не имея необходимости управлять разрешениями на основе пользователей.
  • Использование групп Microsoft Entra помогает избежать достижения ограничения подписки на назначения ролей.

Чтобы использовать группы безопасности Microsoft Entra, выполните следующие действия.

  1. Создайте группу безопасности.
  2. Добавьте владельца группы. У этого пользователя есть разрешения на добавление и удаление участников группы. Владелец группы не требуется быть членом группы или иметь прямую роль RBAC в рабочей области.
  3. Назначьте группу роли RBAC в рабочей области, например AzureML Специалист по обработке и анализу данных, читателя или участника.
  4. Добавление участников группы. Члены получают доступ к рабочей области.

Создание настраиваемой роли

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

Примечание.

Чтобы создать пользовательские роли в ресурсе, необходимо быть владельцем ресурса на этом уровне.

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

data_scientist_custom_role.json:

{
    "Name": "Data Scientist Custom",
    "IsCustom": true,
    "Description": "Can run experiment but can't create or delete compute.",
    "Actions": ["*"],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/*/delete",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/delete", 
        "Microsoft.Authorization/*/write"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>"
    ]
}

Совет

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

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

  • Она не может удалить рабочую область.
  • Он не может создать или обновить рабочую область.
  • Он не может создавать или обновлять вычислительные ресурсы.
  • Не удается удалить вычислительные ресурсы.
  • Она не может добавлять, удалять или изменять назначения ролей.

Чтобы развернуть эту настраиваемую роль, используйте следующую команду Azure CLI.

az role definition create --role-definition data_scientist_custom_role.json

После развертывания эта роль доступна в указанной рабочей области. Теперь можно добавлять роль и назначать ее на портале Microsoft Azure.

Дополнительные сведения о настраиваемых ролях см. в статье Настраиваемые роли Azure.

Операции Машинного обучения Azure

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

az provider operation show –n Microsoft.MachineLearningServices

Вывод списка настраиваемых ролей

В Azure CLI выполните следующую команду:

az role definition list --subscription <subscriptionId> --custom-role-only true

Чтобы просмотреть определение роли для конкретной настраиваемой роли, используйте следующую команду Azure CLI. Значение <roleName> должно находиться в том же формате, который возвращается предыдущей командой:

az role definition list -n <roleName> --subscription <subscriptionId>

Обновление пользовательской роли

В Azure CLI выполните следующую команду:

az role definition update --role-definition update_def.json --subscription <subscriptionId>

Вам нужны разрешения на всю область определения новой роли. Например, если эта новая роль распространяется на три подписки, вам потребуются разрешения на все три подписки.

Примечание.

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

Использование шаблонов Azure Resource Manager для повторяемости

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

Распространенные сценарии

В следующей таблице приведены сведения о действиях машинного обучения Azure и разрешениях, необходимых для их выполнения по крайней мере. Например, если действие может выполняться с областью рабочей области (столбец 4), все более высокие области с этим разрешением также работают автоматически. Для определенных действий разрешения различаются между API версии 1 и версии 2.

Внимание

Все пути в этой таблице, начинающиеся с /, являются относительными путями к Microsoft.MachineLearningServices/

Действие (Activity) Область уровня подписки Область уровня группы ресурсов Область уровня рабочей области
Создание рабочей области 1 Необязательное Разрешения владельца, участника или настраиваемой роли, позволяющие: Microsoft.Resources/deployments/*, Microsoft.MachineLearningServices/workspaces/write, а также разрешения на запись для зависимых ресурсов (см. пункт 3 ниже). Н/Д (становится владельцем или наследует роль с более высокой областью после создания)
Запросить квоту уровня подписки Amlcompute или установить квоту уровня рабочей области Владелец, участник или пользовательская роль
которая разрешает /locations/updateQuotas/action
в области подписки
Не авторизовано Не авторизовано
Создать новый вычислительный кластер Необязательное Необязательное Владелец, участник или настраиваемая роль, которая разрешает: /workspaces/computes/write
Создать новый вычислительный экземпляр Необязательное Необязательное Владелец, участник или настраиваемая роль, которая разрешает: /workspaces/computes/write
Отправка любого типа выполнения (V1) Необязательное Необязательное Владелец, участник или пользовательская роль, разрешающая: , , , , /workspaces/*/read/workspaces/environments/write/workspaces/experiments/runs/write/workspaces/metadata/artifacts/write/workspaces/metadata/snapshots/write/workspaces/environments/build/action/workspaces/experiments/runs/submit/action/workspaces/environments/readSecrets/action
Отправка любого типа выполнения (версия 2) Необязательное Необязательное Владелец, участник или пользовательская роль, разрешающая: /workspaces/*/read, /workspaces/environments/write, , /workspaces/jobs/*/workspaces/metadata/artifacts/write/workspaces/environments/build/action/workspaces/environments/readSecrets/action
Публикация конвейеров и конечных точек (V1) Необязательное Необязательное Владелец, участник или пользовательская роль, разрешающая: /workspaces/endpoints/pipelines/*, /workspaces/pipelinedrafts/*/workspaces/modules/*
Публикация конвейеров и конечных точек (версия 2) Необязательное Необязательное Владелец, участник или пользовательская роль, разрешающая: /workspaces/endpoints/pipelines/*, /workspaces/pipelinedrafts/*/workspaces/components/*
Подключение ресурса AKS 2 Необязательное Владелец или участник в группе ресурсов, содержащей AKS
Развертывать зарегистрированную модель на ресурсе AKS/ACI Необязательное Необязательное Владелец, участник или пользовательская роль, разрешающая: /workspaces/services/aks/write/workspaces/services/aci/write
Выполнять оценку по развернутой конечной точке AKS Необязательное Необязательное Владелец, участник или пользовательская роль: /workspaces/services/aks/score/action/workspaces/services/aks/listkeys/action (если вы не используете проверку подлинности Microsoft Entra) OR /workspaces/read (при использовании проверки подлинности маркера)
Получать доступ к хранилищу с помощью интерактивных записных книжек Необязательное Необязательное Владелец, участник или пользовательская роль, разрешающая: /workspaces/computes/read, /workspaces/notebooks/samples/read, /workspaces/notebooks/storage/*, /workspaces/listStorageAccountKeys/action/workspaces/listNotebookAccessToken/read
Создавать новые настраиваемые роли Владелец, участник или настраиваемая роль, которая разрешает: Microsoft.Authorization/roleDefinitions/write Необязательное Владелец, участник или настраиваемая роль, которая разрешает: /workspaces/computes/write
Создание подключенных конечных точек и развертываний или управление ими Необязательное Чтобы развернуть в студии, Microsoft.Resources/deployments/write Разрешение владельца, участника или настраиваемой роли Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*.
Получение учетных данных проверки подлинности для подключенных конечных точек Необязательное Необязательное Разрешение владельца, участника или настраиваемой роли Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/actionMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/listKeys/action
  1. Если при первой попытке создания рабочей области возникнет ошибка, проверьте, разрешает ли ваша роль действие Microsoft.MachineLearningServices/register/action. Это действие позволяет зарегистрировать поставщик ресурсов Машинного обучения Azure в вашей подписке Azure.

  2. При присоединении кластера AKS также необходимо иметь роль администратора кластера Служба Azure Kubernetes в кластере.

  3. Эти сценарии не включают разрешения, необходимые для создания ресурсов, зависящих от рабочих областей. Дополнительные сведения см. в разрешениях на запись для хранилища, OperationsInsights, Key Vault и реестра контейнеров.

  4. При присоединении идентичностей, управляемых пользователем, вам также необходимо иметь Microsoft.ManagedIdentity/userAssignedIdentities/assign/action разрешение на эти идентичности. Дополнительные сведения см. в встроенных ролях Azure для идентификации.

  5. При указании бессерверной пользовательской подсети необходимо также иметь Microsoft.Network/virtualNetworks/subnets/join/action в виртуальной сети. Дополнительные сведения см. в разделе "Разрешения Azure для сети".

Развертывание в виртуальной сети или подсети

  • Чтобы развернуть ресурсы в виртуальной сети или подсети, учетная запись пользователя должна иметь разрешения на доступ к следующим действиям в управлении доступом на основе ролей в Azure (Azure RBAC):

    • "Microsoft.Network/*/read" в ресурсе виртуальной сети. Это разрешение не требуется для развертываний шаблонов Azure Resource Manager (ARM).
    • "Microsoft.Network/virtualNetworks/join/action" в ресурсе виртуальной сети.
    • "Microsoft.Network/virtualNetworks/subnets/join/action" в ресурсе подсети.

    Дополнительные сведения об Azure RBAC при работе с сетью см. в разделе Встроенные роли сети.

Различия между действиями для API версии 1 и версии 2

Некоторые различия существуют между действиями для API версии 1 и API версии 2.

Актив Путь к действию для API версии 1 Путь к действию для API версии 2
Набор данных Microsoft.MachineLearningServices/рабочие пространства/наборы данных Microsoft.MachineLearningServices/workspaces/datasets/versions
Выполнение эксперимента и задания Microsoft.СлужбыМашинногоОбучения/рабочиепространства/эксперименты Microsoft.MachineLearningServices/workspaces/jobs
Модели Microsoft.MachineLearningServices/workspaces/models Microsoft.MachineLearningServices/workspaces/models/versions
Модули и компоненты Microsoft.MachineLearningServices/workspaces/modules Microsoft.MachineLearningServices/рабочие пространства/компоненты

Совместимость пользовательских ролей с API версий 1 и 2 можно обеспечить, включив оба действия или с помощью масок, которые включают оба действия, например Microsoft.MachineLearningServices/workspaces/datasets/*/read.

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

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

Если вы настроите рабочую область с управляемым пользователем удостоверением, предоставьте удостоверению следующие роли. Эти роли позволяют управляемому удостоверению создавать хранилище Azure, Azure Cosmos DB и ресурсы Azure Search при использовании ключа, управляемого пользователем:

  • Microsoft.Storage/storageAccounts/write
  • Microsoft.Search/searchServices/write
  • Microsoft.DocumentDB/databaseAccounts/write

В хранилище ключей пользователь или субъект-служба должны создавать, получать, удалять и удалять доступ к ключу с помощью политики доступа к хранилищу ключей. Дополнительные сведения см. в статье Безопасность Azure Key Vault.

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

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

Операции MLflow

Чтобы выполнить операции MLflow с рабочей областью Машинного обучения Azure, используйте следующие области в пользовательской роли:

Операция MLflow Область
(V1) Вывод списка, чтения, создания, обновления или удаления экспериментов Microsoft.MachineLearningServices/workspaces/experiments/*
(версия 2) Перечисление, чтение, создание, обновление или удаление заданий Microsoft.MachineLearningServices/workspaces/jobs/*
Получение зарегистрированной модели по имени, получение списка всех зарегистрированных моделей в реестре, поиск зарегистрированных моделей, последних моделей версий для каждого этапа запросов, получение версии зарегистрированной модели, версии модели поиска, получение URI, где хранятся артефакты версии модели, поиск по идентификаторам экспериментов Microsoft.MachineLearningServices/workspaces/models/*/read
Создание зарегистрированной модели, обновление имени или описания зарегистрированной модели, переименование существующей зарегистрированной модели, создание новой версии модели, обновление описания версии модели, переход зарегистрированной модели на одну из этапов Microsoft.MachineLearningServices/workspaces/models/*/write
Удаление зарегистрированной модели вместе со всеми ее версиями, удаление определенных версий зарегистрированной модели Microsoft.MachineLearningServices/workspaces/models/*/delete

Примеры настраиваемых ролей

Специалист по обработке и анализу данных

Используйте эту роль, чтобы предоставить специалисту по обработке и анализу данных разрешение на выполнение всех операций в рабочей области , кроме следующих:

  • Создание вычислительных ресурсов.
  • Развертывание моделей в рабочем кластере AKS.
  • Развертывание конечной точки конвейера в рабочей среде.

data_scientist_custom_role.json:

{
    "Name": "Data Scientist Custom",
    "IsCustom": true,
    "Description": "Can run experiment but can't create or delete compute or deploy production endpoints.",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/*/read",
        "Microsoft.MachineLearningServices/workspaces/*/action",
        "Microsoft.MachineLearningServices/workspaces/*/delete",
        "Microsoft.MachineLearningServices/workspaces/*/write"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/delete",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/delete", 
        "Microsoft.Authorization/*",
        "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/services/aks/write",
        "Microsoft.MachineLearningServices/workspaces/services/aks/delete",
        "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/write"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

Специалист по обработке и анализу данных, ограниченная

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

  • Создание вычислительных ресурсов.
  • Развертывание моделей в рабочем кластере AKS.
  • Развертывание конечной точки конвейера в рабочей среде.

data_scientist_restricted_custom_role.json :

{
    "Name": "Data Scientist Restricted Custom",
    "IsCustom": true,
    "Description": "Can run experiment but can't create or delete compute or deploy production endpoints",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/*/read",
        "Microsoft.MachineLearningServices/workspaces/computes/start/action",
        "Microsoft.MachineLearningServices/workspaces/computes/stop/action",
        "Microsoft.MachineLearningServices/workspaces/computes/restart/action",
        "Microsoft.MachineLearningServices/workspaces/computes/applicationaccess/action",
        "Microsoft.MachineLearningServices/workspaces/notebooks/storage/write",
        "Microsoft.MachineLearningServices/workspaces/notebooks/storage/delete",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/submit/action",
        "Microsoft.MachineLearningServices/workspaces/pipelinedrafts/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/snapshots/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/write",
        "Microsoft.MachineLearningServices/workspaces/environments/write",
        "Microsoft.MachineLearningServices/workspaces/models/*/write",
        "Microsoft.MachineLearningServices/workspaces/modules/write",
        "Microsoft.MachineLearningServices/workspaces/components/*/write",
        "Microsoft.MachineLearningServices/workspaces/datasets/*/write", 
        "Microsoft.MachineLearningServices/workspaces/datasets/*/delete",
        "Microsoft.MachineLearningServices/workspaces/computes/listNodes/action",
        "Microsoft.MachineLearningServices/workspaces/environments/build/action"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/computes/write",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/delete",
        "Microsoft.MachineLearningServices/workspaces/delete",
        "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action",
        "Microsoft.MachineLearningServices/workspaces/listKeys/action",
        "Microsoft.Authorization/*",
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/profile/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/preview/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/profile/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/preview/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/schema/read",    
        "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/schema/read",
        "Microsoft.MachineLearningServices/workspaces/datastores/write",
        "Microsoft.MachineLearningServices/workspaces/datastores/delete"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

Специалист по обработке и анализу данных MLflow

Используйте эту роль для выполнения всех поддерживаемых операций машинного обучения Azure MLflow, кроме следующих:

  • Создание вычислительных ресурсов.
  • Развертывание моделей в рабочем кластере AKS.
  • Развертывание конечной точки конвейера в рабочей среде.

mlflow_data_scientist_custom_role.json:

{
    "Name": "MLFlow Data Scientist Custom",
    "IsCustom": true,
    "Description": "Can perform azureml mlflow integrated functionalities that includes mlflow tracking, projects, model registry",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/experiments/*",
        "Microsoft.MachineLearningServices/workspaces/jobs/*",
        "Microsoft.MachineLearningServices/workspaces/models/*"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/delete",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/delete", 
        "Microsoft.Authorization/*",
        "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/services/aks/write",
        "Microsoft.MachineLearningServices/workspaces/services/aks/delete",
        "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/write"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

Операции машинного обучения (MLOps)

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

mlops_custom_role.json:

{
    "Name": "MLOps Custom",
    "IsCustom": true,
    "Description": "Can run pipelines against a published pipeline endpoint",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/read",
        "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/read",
        "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/read",
        "Microsoft.MachineLearningServices/workspaces/metadata/snapshots/read",
        "Microsoft.MachineLearningServices/workspaces/environments/read",    
        "Microsoft.MachineLearningServices/workspaces/metadata/secrets/read",
        "Microsoft.MachineLearningServices/workspaces/modules/read",
        "Microsoft.MachineLearningServices/workspaces/components/read",       
        "Microsoft.MachineLearningServices/workspaces/datasets/*/read",
        "Microsoft.MachineLearningServices/workspaces/datastores/read",
        "Microsoft.MachineLearningServices/workspaces/environments/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/read",       
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/submit/action",
        "Microsoft.MachineLearningServices/workspaces/experiments/jobs/read",       
        "Microsoft.MachineLearningServices/workspaces/experiments/jobs/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/snapshots/write",  
        "Microsoft.MachineLearningServices/workspaces/environments/build/action",
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/computes/write",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/delete",
        "Microsoft.MachineLearningServices/workspaces/delete",
        "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/listKeys/action",
        "Microsoft.Authorization/*"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

Администратор рабочей области

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

  • Создание новой рабочей области
  • назначение подписки или квот уровня рабочей области.

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

workspace_admin_custom_role.json:

{
    "Name": "Workspace Admin Custom",
    "IsCustom": true,
    "Description": "Can perform all operations except quota management and upgrades",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/*/read",
        "Microsoft.MachineLearningServices/workspaces/*/action",
        "Microsoft.MachineLearningServices/workspaces/*/write",
        "Microsoft.MachineLearningServices/workspaces/*/delete",
        "Microsoft.Authorization/roleAssignments/*"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/write"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

Маркировка данных

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

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

labeling_team_lead_custom_role.json:

{
    "Name": "Labeling Team Lead",
    "IsCustom": true,
    "Description": "Team lead for Labeling Projects",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/write",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/reject/action",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/update/action",
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/summary/read"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/write",
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/delete",
        "Microsoft.MachineLearningServices/workspaces/labeling/export/action"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

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

Учитывайте следующие моменты при использовании Azure RBAC:

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

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

  • Чтобы развернуть в студии, вам потребуется Microsoft.Resources/deployments/write и Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. Для развертываний ПАКЕТА SDK или CLI вам потребуется Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. Обратитесь к владельцу рабочей области или группы ресурсов для получения дополнительных разрешений.

  • При наличии двух назначений ролей одному и тому же пользователю Microsoft Entra с конфликтующими разделами Действий и NotActions операции, перечисленные в NotActions из одной роли, могут не входить в силу, если они также указаны как действия в другой роли. Дополнительные сведения о том, как Azure анализирует назначения ролей, см. в статье о том, как Azure RBAC определяет, имеет ли пользователь доступ к ресурсу.

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

Вернуться к роли участника

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

Внимание

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

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

  1. Удалите назначение ролей для управляемого удостоверения рабочей области. Область назначения ролей — это группа ресурсов , содержащая рабочую область, поэтому необходимо удалить роль из группы ресурсов.

    Совет

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

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

    Сведения об удалении назначения ролей см. в разделе "Удаление назначений ролей".

  2. Создайте новое назначение ролей в группе ресурсов для роли участника. При добавлении этого назначения роли в качестве назначения выберите управляемое удостоверение для рабочей области. Имя управляемого удостоверения, назначаемого системой, совпадает с именем рабочей области.

    1. На портале Azure перейдите в группу ресурсов , содержащую рабочую область. Выберите Управление доступом (IAM), а затем Добавление назначения ролей.
    2. На вкладке "Роль" выберите "Участник".
    3. На вкладке "Участники" выберите "Управляемое удостоверение", затем "+ Выбрать участников", а затем установите раскрывающийся список "Управляемое удостоверение" в "Рабочая область Azure Machine Learning". Если рабочая область является центральной рабочей областью, выберите центр ИИ Azure. В поле "Выбор" введите имя рабочей области. Выберите рабочую область из списка и нажмите кнопку "Выбрать".
    4. На вкладке "Рецензирование и назначение " выберите "Рецензирование" и " Назначить".