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

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

Совет

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

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

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

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

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

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

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

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

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

Внимание

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

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

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

Например, используйте 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 может оказаться значительной помощью. Шаблон machine-learning-dependencies-role-assignment template демонстрирует, как задавать назначения ролей в исходном коде, чтобы затем использовать их повторно.

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

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

Внимание

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

Действие (Activity) Область уровня подписки Область уровня группы ресурсов Область уровня рабочей области
Создание рабочей области 1 Необязательное Владелец или участник Н/Д (становится владельцем или наследует роль с более высокой областью после создания)
Запросить квоту уровня подписки Amlcompute или установить квоту уровня рабочей области Владелец, участник или пользовательская роль
которая разрешает /locations/updateQuotas/action
в области подписки
Не авторизовано Не авторизовано
Создать новый вычислительный кластер Необязательное Необязательное Владелец, участник или настраиваемая роль, которая разрешает: /workspaces/computes/write
Создать новый вычислительный экземпляр Необязательное Необязательное Владелец, участник или настраиваемая роль, которая разрешает: /workspaces/computes/write
Отправка любого типа выполнения (V1) Необязательное Необязательное Владелец, участник или пользовательская роль, разрешающая: , , , , /workspaces/environments/build/action/workspaces/metadata/snapshots/write/workspaces/experiments/runs/submit/action/workspaces/metadata/artifacts/write/workspaces/experiments/runs/write/workspaces/environments/write/workspaces/*/read/workspaces/environments/readSecrets/action
Отправка любого типа выполнения (версия 2) Необязательное Необязательное Владелец, участник или пользовательская роль, разрешающая: /workspaces/*/read, /workspaces/environments/write, , /workspaces/metadata/codes/*/write/workspaces/metadata/artifacts/write/workspaces/environments/build/action/workspaces/jobs/*/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 в кластере.

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

  • Чтобы развернуть ресурсы в виртуальной сети или подсети, учетная запись пользователя должна иметь разрешения на доступ к следующим действиям в управлении доступом на основе ролей в 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/workspaces/datasets Microsoft.MachineLearningServices/workspaces/datasets/versions
Выполнение эксперимента и задания Microsoft.MachineLearningServices/workspaces/experiments Microsoft.MachineLearningServices/workspaces/jobs
Модели Microsoft.MachineLearningServices/workspaces/models Microsoft.MachineLearningServices/workspaces/models/versions
Моментальные снимки и код Microsoft.MachineLearningServices/workspaces/snapshots Microsoft.MachineLearningServices/workspaces/codes/versions
Модули и компоненты Microsoft.MachineLearningServices/workspaces/modules Microsoft.MachineLearningServices/workspaces/components

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

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

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

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

  • 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

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

  • создание вычисления;
  • развертывание моделей в рабочем кластере 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/metadata/codes/*/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>"
    ]
}

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

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

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

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 AND Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. Для развертываний ПАКЕТА SDK или CLI вам потребуется Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. Обратитесь к владельцу рабочей области или группы ресурсов для получения дополнительных разрешений.

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

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