Administración del acceso a áreas de trabajo de Azure Machine Learning

En este artículo se explica cómo administrar el acceso (autorización) a las áreas de trabajo de Azure Machine Learning. Puede usar el control de acceso basado en rol de Azure (RBAC de Azure) para administrar el acceso a los recursos de Azure, lo que proporciona a los usuarios la capacidad de crear nuevos recursos o usar los existentes. Se asignan roles específicos a los usuarios de Microsoft Entra ID que les conceden acceso a los recursos. Azure proporciona tanto roles integrados como la capacidad de crear roles personalizados.

Sugerencia

Aunque este artículo se centra en Azure Machine Learning, los servicios individuales proporcionan su propia configuración de RBAC. Por ejemplo, con la información de este artículo, podrá configurar quién puede enviar solicitudes de puntuación a un modelo implementado como un servicio web en Azure Kubernetes Service. Pero Azure Kubernetes Service proporciona su propio conjunto de roles de Azure. Para obtener información específica de RBAC que podría resultar útil con Azure Machine Learning, consulte los siguientes vínculos:

Advertencia

La aplicación de algunos roles puede limitar la funcionalidad de la interfaz de usuario en el Estudio de Azure Machine Learning para otros usuarios. Por ejemplo, si el rol de un usuario no tiene la capacidad de crear una instancia de proceso, la opción para crear una instancia de proceso no está disponible en Studio. Este comportamiento es el esperado y evita que el usuario intente realizar operaciones que devolverán un error de acceso denegado.

Roles predeterminados

Las áreas de trabajo de Azure Machine Learning tienen roles integrados que se encuentran disponibles de manera predeterminada. Al agregar usuarios a un área de trabajo, se les puede asignar uno de los siguientes roles.

Role Nivel de acceso
Científico de datos de AzureML Puede realizar todas las acciones dentro de un área de trabajo de Azure Machine Learning, excepto crear o eliminar recursos de proceso, y modificar la propia área de trabajo.
Operador de proceso de AzureML Puede crear, administrar, eliminar y acceder a los recursos de proceso dentro de un área de trabajo.
Lector Acciones de solo lectura en el área de trabajo. Los lectores pueden enumerar y ver los recursos (incluidas las credenciales del almacén de datos) de un área de trabajo, pero no pueden crear ni actualizar estos recursos.
Colaborador Ver, crear, editar o eliminar (si procede) los recursos de un área de trabajo. Por ejemplo, los colaboradores pueden crear un experimento, crear o conectar un clúster de proceso, enviar una ejecución e implementar un servicio web.
Propietario Acceso total al área de trabajo, incluida la posibilidad de ver, crear, editar o eliminar (si procede) los recursos de un área de trabajo. Además, puede cambiar las asignaciones de roles.

Además, los registros de Azure Machine Learning tienen un rol de usuario del registro de AzureML que se puede asignar a un recurso del registro para conceder permisos de nivel de usuario a los científicos de datos. Para los permisos de nivel de administrador para crear o eliminar registros, use el rol Colaborador o Propietario.

Role Nivel de acceso
Usuario del registro de AzureML Puede obtener registros y leer, escribir y eliminar recursos dentro de ellos. No pueden crear nuevos recursos del registro ni eliminarlos.

Puede combinar los roles para conceder distintos niveles de acceso. Por ejemplo, puede conceder a un usuario de área de trabajo los roles de Científico de datos de AzureML y Operador de proceso de AzureML para permitir que el usuario realice experimentos mientras crea procesos en forma de autoservicio.

Importante

El acceso de los roles puede tener un ámbito de varios niveles en Azure. Por ejemplo, un usuario con acceso de propietario a un área de trabajo podría no tener acceso de propietario al grupo de recursos que contiene el área de trabajo. Para obtener más información, consulte Cómo funciona Azure RBAC.

Administración del acceso al área de trabajo

Si es propietario de un área de trabajo, puede agregar y eliminar roles del área de trabajo. También puede asignar roles a los usuarios. Use los siguientes vínculos para descubrir cómo administrar el acceso:

Por ejemplo, use la CLI de Azure para asignar el rol Colaborador a joe@contoso.com para el grupo de recursos this-rg con el siguiente comando:

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

Uso de grupos de seguridad de Microsoft Entra para administrar el acceso al área de trabajo

Puede usar grupos de seguridad de Microsoft Entra para administrar el acceso a las áreas de trabajo. Este procedimiento tiene las siguientes ventajas:

  • Los responsables del equipo o del proyecto pueden administrar el acceso de los usuarios al área de trabajo como propietarios de grupos de seguridad, sin necesidad de un rol de propietario en el recurso del área de trabajo directamente.
  • Puede organizar, administrar y revocar los permisos de los usuarios en el área de trabajo y otros recursos como grupo, sin tener que administrar permisos por usuario.
  • El uso de grupos de Microsoft Entra le ayuda a evitar alcanzar el límite de suscripción en las asignaciones de roles.

Para usar grupos de seguridad de Microsoft Entra:

  1. Creación de un grupo de seguridad.
  2. Agregue un propietario del grupo. Este usuario tiene permisos para agregar o quitar miembros del grupo. No es necesario que el propietario del grupo sea miembro del grupo o que tenga un rol RBAC directo en el área de trabajo.
  3. Asigne al grupo un rol RBAC en el área de trabajo, como Científico de datos, Lector o Colaborador de AzureML.
  4. Agregar miembros de grupo. Los miembros obtienen acceso al área de trabajo.

Creación de un rol personalizado

Si los roles integrados no son suficientes, puede crear roles personalizados. Los roles personalizados pueden poseer permisos para leer, escribir, eliminar y procesar recursos de ese área de trabajo. Puede hacer que el rol esté disponible en un nivel de área de trabajo específico, un nivel de grupo de recursos específico o un nivel de suscripción específico.

Nota

Debe ser un propietario del recurso en ese nivel para crear roles personalizados en ese recurso.

Para crear un rol personalizado, primero debe construir un archivo JSON de definición de rol que especifica el permiso y el ámbito del rol. En el ejemplo siguiente se define un rol personalizado de científico de datos personalizado con ámbito en un nivel de área de trabajo específico:

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>"
    ]
}

Sugerencia

Puede cambiar el campo AssignableScopes para establecer el ámbito de este rol personalizado en el nivel de suscripción, el nivel de grupo de recursos o un nivel de área de trabajo específica. El rol personalizado anterior es solo un ejemplo, consulte algunos roles personalizados sugeridos para el servicio Azure Machine Learning Service.

Este rol personalizado puede hacer todo en el área de trabajo, excepto las siguientes acciones:

  • No puede eliminar el área de trabajo.
  • No puede crear ni actualizar el área de trabajo.
  • No puede crear ni actualizar recursos de proceso.
  • No puede eliminar recursos de proceso.
  • No puede agregar, eliminar o modificar asignaciones de roles.

Para implementar este rol personalizado, use el siguiente comando de la CLI de Azure:

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

Después de la implementación, este rol está disponible en el área de trabajo especificada. Ahora puede agregar y asignar este rol en Azure Portal.

Para más información sobre los roles personalizados, consulte Roles personalizados de Azure.

Operaciones de Azure Machine Learning

Para más información sobre las operaciones (acciones y no acciones) que se pueden usar con roles personalizados, consulte Operaciones del proveedor de recursos. También puede usar el siguiente comando de la CLI de Azure para enumerar las operaciones:

az provider operation show –n Microsoft.MachineLearningServices

Lista de roles personalizados

Ejecute el siguiente comando en la CLI de Azure:

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

Para ver la definición de roles de un rol personalizado específico, use el siguiente comando de la CLI de Azure. Tenga en cuenta que <roleName> debe tener el mismo formato devuelto por el comando anterior:

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

Actualización de un rol personalizado

Ejecute el siguiente comando en la CLI de Azure:

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

Debe tener permisos en todo el ámbito de la nueva definición de roles. Por ejemplo, si este nuevo rol tiene un ámbito entre tres suscripciones, debe tener permisos en las tres suscripciones.

Nota

Las actualizaciones de roles pueden tardar entre 15 minutos y una hora en aplicarse a todas las asignaciones de roles de ese ámbito.

Uso de plantillas de Azure Resource Manager para repetibilidad

Si prevé que tendrá que volver a crear asignaciones de roles complejas, una plantilla Azure Resource Manager puede ser una gran ayuda. En la plantilla machine-learning-dependencies-role-assignment template, se muestra cómo se pueden especificar las asignaciones de roles en el código fuente para su reutilización.

Escenarios frecuentes

En la tabla siguiente se proporciona un resumen de las actividades de Azure Machine Learning y los permisos necesarios para realizarlas en el menor ámbito. Por ejemplo, si una actividad se puede realizar con un ámbito de área de trabajo (columna 4), cualquier el ámbito superior con ese permiso también funciona automáticamente. Para determinadas actividades, los permisos difieren entre las API de la versión 1 y las de la versión 2.

Importante

Todas las rutas de acceso de esta tabla que comienzan por / son rutas de acceso relativas a Microsoft.MachineLearningServices/:

Actividad Ámbito a nivel de supervisión Ámbito a nivel de grupo de recursos Ámbito a nivel de área de trabajo
Crear área de trabajo nueva 1 No se requiere Propietario o colaborador N/A (se convierte en Propietario o hereda el rol del ámbito superior después de la creación)
Solicitud de cuota de Amlcompute de nivel de suscripción o establecimiento de cuota de nivel de área de trabajo Propietario, colaborador o rol personalizado
que permite /locations/updateQuotas/action
en el ámbito de suscripción
No autorizado No autorizado
Crear un clúster de proceso No se requiere No se requiere Propietario, colaborador o rol personalizado que permita: /workspaces/computes/write
Crear una instancia de proceso No se requiere No se requiere Propietario, colaborador o rol personalizado que permita: /workspaces/computes/write
Envío de cualquier tipo de ejecución (versión 1) No se requiere No se requiere Propietario, colaborador o rol personalizado que permite: /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
Envío de cualquier tipo de ejecución (versión 2) No se requiere No se requiere Propietario, colaborador o rol personalizado que permite: /workspaces/*/read, /workspaces/environments/write, /workspaces/jobs/*, /workspaces/metadata/artifacts/write, /workspaces/metadata/codes/*/write, /workspaces/environments/build/action, /workspaces/environments/readSecrets/action
Publicación de canalizaciones y puntos de conexión (versión 1) No se requiere No se requiere Propietario, colaborador o rol personalizado que permite: /workspaces/endpoints/pipelines/*, /workspaces/pipelinedrafts/*, /workspaces/modules/*
Publicación de canalizaciones y puntos de conexión (versión 2) No se requiere No se requiere Propietario, colaborador o rol personalizado que permite: /workspaces/endpoints/pipelines/*, /workspaces/pipelinedrafts/*, /workspaces/components/*
Asociación de un recurso de AKS 2 No se requiere Propietario o colaborador en el grupo de recursos que contiene AKS
Implementación de un modelo registrado en un recurso AKS/ACI No se requiere No se requiere Propietario, colaborador o rol personalizado que permite: /workspaces/services/aks/write, /workspaces/services/aci/write
Puntuación con un punto de conexión de AKS implementado No se requiere No se requiere Propietario, colaborador o rol personalizado que permite: /workspaces/services/aks/score/action, /workspaces/services/aks/listkeys/action (cuando no se usa la autenticación de Microsoft Entra) O /workspaces/read (cuando se usa la autenticación de token)
Acceso al almacenamiento mediante cuadernos interactivos No se requiere No se requiere Propietario, colaborador o rol personalizado que permite: /workspaces/computes/read, /workspaces/notebooks/samples/read, /workspaces/notebooks/storage/*, /workspaces/listStorageAccountKeys/action, /workspaces/listNotebookAccessToken/read
Creación de un nuevo rol personalizado Propietario, colaborador o rol personalizado que permita Microsoft.Authorization/roleDefinitions/write. No se requiere Propietario, colaborador o rol personalizado que permita: /workspaces/computes/write
Creación o administración de implementaciones y puntos de conexión en línea No se requiere Para implementar en Studio, Microsoft.Resources/deployments/write Propietario, colaborador o rol personalizado que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*.
Recuperación de credenciales de autenticación para puntos de conexión en línea No se requiere No se requiere Propietario, colaborador o rol personalizado que permite Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action y Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action
  1. Si recibe un error al intentar crear un área de trabajo por primera vez, asegúrese de que su rol permita Microsoft.MachineLearningServices/register/action. Esta acción le permite registrar el proveedor de recursos de Azure Machine Learning con su suscripción de Azure.

  2. Al adjuntar un clúster de AKS, también deberá tener el rol de Administrador de clústeres de Azure Kubernetes Service en el clúster.

Implementación en una red o subred virtuales

  • Para implementar recursos en una red virtual o subred, la cuenta de usuario debe tener permisos para realizar las siguientes acciones en los controles de acceso basados en roles de Azure (Azure RBAC):

    • "Microsoft.Network/*/read" en el recurso de red virtual. Este permiso no es necesario para las implementaciones de plantillas de Azure Resource Manager (ARM).
    • "Microsoft.Network/virtualNetworks/join/action" en el recurso de red virtual.
    • "Microsoft.Network/virtualNetworks/subnets/join/action" en el recurso de subred.

    Para obtener más información sobre Azure RBAC con redes, consulte los roles integrados de redes.

Diferencias entre las acciones de las versiones 1 y 2 de la API

Existen ciertas diferencias entre las acciones de las API de la versión 1 y las API de la versión 2.

Recurso Ruta de acceso de la acción para la API de la versión 1 Ruta de acceso de la acción para la API de la versión 2
Dataset Microsoft.MachineLearningServices/workspaces/datasets Microsoft.MachineLearningServices/workspaces/datasets/versions
Ejecuciones y trabajos del experimento Microsoft.MachineLearningServices/workspaces/experiments Microsoft.MachineLearningServices/workspaces/jobs
Modelos Microsoft.MachineLearningServices/workspaces/models Microsoft.MachineLearningServices/workspaces/models/versions
Instantáneas y código Microsoft.MachineLearningServices/workspaces/snapshots Microsoft.MachineLearningServices/workspaces/codes/versions
Módulos y componentes Microsoft.MachineLearningServices/workspaces/modules Microsoft.MachineLearningServices/workspaces/components

Puede hacer que los roles personalizados sean compatibles con las API de la versión 1 y de la versión 2 mediante la inclusión de ambas acciones o el uso de caracteres comodín que incluyan ambas acciones, por ejemplo Microsoft.MachineLearningServices/workspaces/datasets/*/read.

Creación de un área de trabajo que use una clave administrada por el cliente

Cuando se usa una clave administrada por el cliente (CMK), esta se almacena en un almacén de Azure Key Vault. El usuario o la entidad de servicio que se use para crear el área de trabajo deberá tener acceso al almacén de claves como propietario o colaborador.

Si el área de trabajo está configurada con una identidad administrada asignada por el usuario, se debe conceder a la identidad los siguientes roles. Estos roles permiten a la identidad administrada crear los recursos de Azure Storage, Azure Cosmos DB y Azure Search que se usan al usar una clave administrada por el cliente:

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

Dentro del almacén de claves, el usuario o la entidad de servicio deberá tener acceso de nivel creación, obtención, eliminación y purga a la clave. Este acceso puede establecerse mediante una directiva de acceso del almacén de claves. Para obtener más información, consulte Seguridad de Azure Key Vault.

Identidad administrada asignada por el usuario con el clúster de proceso de Azure Machine Learning

Para asignar una identidad asignada por el usuario a un clúster de proceso de Azure Machine Learning, necesita permisos de escritura para crear el proceso y el rol de operador de identidad administrada. Para obtener más información sobre Azure RBAC con identidades administradas, consulte Cómo administrar una identidad administrada asignada por el usuario.

Operaciones de MLflow

Para realizar operaciones de MLflow con el área de trabajo Azure Machine Learning, use el rol personalizado en los siguientes ámbitos:

Operación de MLflow Ámbito
(versión 1) Enumerar, leer, crear, actualizar o eliminar experimentos Microsoft.MachineLearningServices/workspaces/experiments/*
(versión 2) Enumerar, leer, crear, actualizar o eliminar trabajos Microsoft.MachineLearningServices/workspaces/jobs/*
Obtener el modelo registrado por nombre, obtener una lista de todos los modelos registrados en el registro, buscar modelos registrados, modelos de versión más recientes para cada fase de solicitudes, obtener la versión de un modelo registrado, buscar versiones del modelo, obtener el URI donde se almacenan los artefactos de una versión del modelo, buscar ejecuciones por identificadores de experimento Microsoft.MachineLearningServices/workspaces/models/*/read
Crear un nuevo modelo registrado, actualizar el nombre o la descripción de un modelo registrado, cambiar el nombre del modelo registrado existente, crear una versión del modelo, actualizar la descripción de una versión del modelo, pasar un modelo registrado a una de las fases Microsoft.MachineLearningServices/workspaces/models/*/write
Eliminar un modelo registrado junto con todas sus versiones, eliminar versiones específicas de un modelo registrado Microsoft.MachineLearningServices/workspaces/models/*/delete

Roles personalizados de ejemplo

Científico de datos

Permite que un científico de datos realice todas las operaciones dentro de un área de trabajo excepto:

  • Creación de proceso
  • Implementación de modelos en un clúster de AKS de producción
  • Implementación de un punto de conexión de canalización de producción

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>"
    ]
}

Restringido para el científico de datos

Una definición de roles más restringida sin caracteres comodín en las acciones permitidas. Puede realizar todas las operaciones dentro de un área de trabajo excepto:

  • Creación de proceso
  • Implementación de modelos en un clúster de AKS de producción
  • Implementación de un punto de conexión de canalización de producción

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>"
    ]
}

Científico de datos de MLflow

Permite que un científico de datos realice todas las operaciones admitidas en Azure Machine Learning de MLflow excepto:

  • Creación de proceso
  • Implementación de modelos en un clúster de AKS de producción
  • Implementación de un punto de conexión de canalización de producción

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

permite asignar un rol a una entidad de servicio y usarlo para automatizar las canalizaciones de MLOps. Por ejemplo, para enviar ejecuciones en una canalización ya publicada:

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>"
    ]
}

Administrador del área de trabajo

permite realizar todas las operaciones dentro del ámbito de un área de trabajo, excepto:

  • Crear una nueva área de trabajo
  • Asignación de cuotas de nivel de suscripción o de área de trabajo

El administrador del área de trabajo tampoco puede crear un nuevo rol. Solo puede asignar roles integrados o personalizados existentes dentro del ámbito de su área de trabajo:

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>"
    ]
}

Etiquetado de datos

Hay un rol integrado para el etiquetado de datos, con ámbito solo para etiquetar los datos. Los siguientes roles personalizados proporcionan otros niveles de acceso para un proyecto de etiquetado de datos.

El responsable del equipo de etiquetado le permite revisar y rechazar el conjunto de datos etiquetado y ver la información de etiquetado. Además de esto, este rol también permite realizar el rol de un etiquetador.

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>"
    ]
}

Solución de problemas

Estos son algunos de los aspectos que debe tener en cuenta al usar RBAC de Azure:

  • Al crear un recurso en Azure (por ejemplo, un área de trabajo), no es directamente el propietario del recurso. El rol se hereda del rol más alto del ámbito con el que está autorizado en esa suscripción. Por ejemplo, si es un administrador de red y tiene permisos para crear un área de trabajo de Machine Learning, se le asignará el rol de administrador de red en esa área de trabajo, y no el rol de propietario.

  • Para realizar operaciones de cuota en un área de trabajo, necesita permisos de nivel de suscripción. Esto significa que la configuración de la cuota de nivel de suscripción o de nivel de área de trabajo para los recursos de proceso administrados solo puede producirse si tiene permisos de escritura en el ámbito de la suscripción.

  • Para implementar en Studio, necesita Microsoft.Resources/deployments/write Y Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. Para las implementaciones del SDK o la CLI, necesita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. Póngase en contacto con el propietario del área de trabajo o del grupo de recursos para obtener los permisos adicionales.

  • Cuando hay dos asignaciones de roles al mismo usuario de Microsoft Entra con secciones en conflicto de Actions/NotActions, las operaciones enumeradas en NotActions de un rol podrían no surtir efecto si también aparecen como acciones en otro rol. Para más información sobre cómo Azure analiza las asignaciones de roles, consulte Cómo determina Azure RBAC si un usuario tiene acceso a un recurso.

  • A veces, puede transcurrir una hora hasta que las nuevas asignaciones de roles tengan efecto sobre los permisos almacenados en caché en la pila.

Pasos siguientes