Administración del acceso a un área de trabajo de Azure Machine LearningManage access to an Azure Machine Learning workspace

En este artículo, obtendrá información sobre cómo administrar el acceso (autorización) a un área de trabajo de Azure Machine Learning.In this article, you learn how to manage access (authorization) to an Azure Machine Learning workspace. El control de acceso basado en roles de Azure (Azure RBAC) se usa para administrar el acceso a los recursos de Azure, como la capacidad de crear nuevos recursos o usar los existentes.Azure role-based access control (Azure RBAC) is used to manage access to Azure resources, such as the ability to create new resources or use existing ones. Se asignan roles específicos a los usuarios de Azure Active Directory (Azure AD) que les conceden acceso a los recursos.Users in your Azure Active Directory (Azure AD) are assigned specific roles, which grant access to resources. Azure proporciona tanto roles integrados como la capacidad de crear roles personalizados.Azure provides both built-in roles and the ability to create custom roles.

Sugerencia

Aunque este artículo se centra en Azure Machine Learning, los servicios individuales en los que se basa Azure Machine Learning proporcionan su propia configuración de RBAC.While this article focuses on Azure Machine Learning, individual services that Azure ML relies on provide their own RBAC settings. 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.For example, using the information in this article, you can configure who can submit scoring requests to a model deployed as a web service on Azure Kubernetes Service. Pero Azure Kubernetes Service proporciona su propio conjunto de roles de Azure.But Azure Kubernetes Service provides its own set of Azure roles. Para obtener información específica de RBAC que podría resultar útil con Azure Machine Learning, consulte los siguientes vínculos:For service specific RBAC information that may be useful with Azure Machine Learning, see the following links:

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.Applying some roles may limit UI functionality in Azure Machine Learning studio for other users. 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 estará disponible en Estudio.For example, if a user's role does not have the ability to create a compute instance, the option to create a compute instance will not be available in studio. Este comportamiento es el esperado y evita que el usuario intente realizar operaciones que devolverán un error de acceso denegado.This behavior is expected, and prevents the user from attempting operations that would return an access denied error.

Roles predeterminadosDefault roles

Un área de trabajo de Azure Machine Learning es un recurso de Azure.An Azure Machine Learning workspace is an Azure resource. Al igual que otros recursos de Azure, cuando se crea un área de trabajo de Azure Machine Learning nueva, viene con tres roles predeterminados.Like other Azure resources, when a new Azure Machine Learning workspace is created, it comes with three default roles. Puede agregar usuarios al área de trabajo y asignarlos a uno de estos roles integrados.You can add users to the workspace and assign them to one of these built-in roles.

RoleRole Nivel de accesoAccess level
LectorReader Acciones de solo lectura en el área de trabajo.Read-only actions in the workspace. Los lectores pueden enumerar y ver los recursos (incluidas las credenciales del almacén de datos) de un área de trabajo,Readers can list and view assets, including datastore credentials, in a workspace. pero no pueden crear ni actualizar estos recursos.Readers can't create or update these assets.
ColaboradorContributor Ver, crear, editar o eliminar (si procede) los recursos de un área de trabajo.View, create, edit, or delete (where applicable) assets in a workspace. 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.For example, contributors can create an experiment, create or attach a compute cluster, submit a run, and deploy a web service.
PropietarioOwner Acceso total al área de trabajo, incluida la posibilidad de ver, crear, editar o eliminar (si procede) los recursos de un área de trabajo.Full access to the workspace, including the ability to view, create, edit, or delete (where applicable) assets in a workspace. Además, puede cambiar las asignaciones de roles.Additionally, you can change role assignments.
Rol personalizadoCustom Role Permite personalizar el acceso a las operaciones de control o de plano de datos específicas dentro de un área de trabajo.Allows you to customize access to specific control or data plane operations within a workspace. Por ejemplo, el envío de una ejecución, la creación de un proceso, la implementación de un modelo o el registro de un conjunto de registros.For example, submitting a run, creating a compute, deploying a model or registering a dataset.

Importante

El acceso de los roles puede tener un ámbito de varios niveles en Azure.Role access can be scoped to multiple levels in 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.For example, someone with owner access to a workspace may not have owner access to the resource group that contains the workspace. Para obtener más información, consulte Cómo funciona Azure RBAC.For more information, see How Azure RBAC works.

Actualmente no hay ningún rol integrado adicional que sea específico de Azure Machine Learning.Currently there are no additional built-in roles that are specific to Azure Machine Learning. Para obtener más información acerca de los roles integrados, consulte Roles integrados en Azure.For more information on built-in roles, see Azure built-in roles.

Administración del acceso al área de trabajoManage workspace access

Si es propietario de un área de trabajo, puede agregar y eliminar roles del área de trabajo.If you're an owner of a workspace, you can add and remove roles for the workspace. También puede asignar roles a los usuarios.You can also assign roles to users. Use los siguientes vínculos para descubrir cómo administrar el acceso:Use the following links to discover how to manage access:

Si ha instalado la CLI de Azure Machine Learning, puede usar comandos de la CLI para asignar roles a los usuarios.If you have installed the Azure Machine Learning CLI, you can use CLI commands to assign roles to users:

az ml workspace share -w <workspace_name> -g <resource_group_name> --role <role_name> --user <user_corp_email_address>

El campo user es la dirección de correo electrónico de un usuario existente en la instancia de Azure Active Directory donde se encuentra la suscripción principal del área de trabajo.The user field is the email address of an existing user in the instance of Azure Active Directory where the workspace parent subscription lives. Este es un ejemplo de cómo utilizar este comando:Here is an example of how to use this command:

az ml workspace share -w my_workspace -g my_resource_group --role Contributor --user jdoe@contoson.com

Nota

El comando "az ml workspace share" no funciona para la cuenta federada de Azure Active Directory B2B."az ml workspace share" command does not work for federated account by Azure Active Directory B2B. Use el portal de la interfaz de usuario de Azure en lugar del comando.Please use Azure UI portal instead of command.

Creación de un rol personalizadoCreate custom role

Si los roles integrados no son suficientes, puede crear roles personalizados.If the built-in roles are insufficient, you can create custom roles. Los roles personalizados pueden tener permisos para leer, escribir, eliminar y procesar recursos de ese área de trabajo.Custom roles might have read, write, delete, and compute resource permissions in that workspace. 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.You can make the role available at a specific workspace level, a specific resource group level, or a specific subscription level.

Nota

Debe ser un propietario del recurso en ese nivel para crear roles personalizados en ese recurso.You must be an owner of the resource at that level to create custom roles within that resource.

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.To create a custom role, first construct a role definition JSON file that specifies the permission and scope for the role. En el ejemplo siguiente se define un rol personalizado llamado "Data Scientist Custom" (Personalizado para científico de datos) con ámbito en un nivel de área de trabajo específica:The following example defines a custom role named "Data Scientist Custom" scoped at a specific workspace level:

data_scientist_custom_role.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/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace_name>"
    ]
}

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.You can change the AssignableScopes field to set the scope of this custom role at the subscription level, the resource group level, or a specific workspace level. El rol personalizado anterior es solo un ejemplo, consulte algunos roles personalizados sugeridos para el servicio Azure Machine Learning Service.The above custom role is just an example, see some suggested custom roles for the Azure Machine Learning service.

Este rol personalizado puede hacer todo en el área de trabajo, excepto las siguientes acciones:This custom role can do everything in the workspace except for the following actions:

  • No puede crear o actualizar un recurso de proceso.It can't create or update a compute resource.
  • No puede eliminar un recurso de proceso.It can't delete a compute resource.
  • No puede agregar, eliminar o modificar asignaciones de roles.It can't add, delete, or alter role assignments.
  • No puede eliminar el área de trabajo.It can't delete the workspace.

Para implementar este rol personalizado, use el siguiente comando de la CLI de Azure:To deploy this custom role, use the following Azure CLI command:

az role definition create --role-definition data_scientist_role.json

Después de la implementación, este rol está disponible en el área de trabajo especificada.After deployment, this role becomes available in the specified workspace. Ahora puede agregar y asignar este rol en Azure Portal.Now you can add and assign this role in the Azure portal. O bien, puede asignar este rol a un usuario mediante el comando de la CLI az ml workspace share:Or, you can assign this role to a user by using the az ml workspace share CLI command:

az ml workspace share -w my_workspace -g my_resource_group --role "Data Scientist" --user jdoe@contoson.com

Para más información sobre los roles personalizados, consulte Roles personalizados de Azure.For more information on custom roles, see Azure custom roles.

Operaciones de Azure Machine LearningAzure Machine Learning operations

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.For more information on the operations (actions and not actions) usable with custom roles, see Resource provider operations. También puede usar el siguiente comando de la CLI de Azure para enumerar las operaciones:You can also use the following Azure CLI command to list operations:

az provider operation show –n Microsoft.MachineLearningServices

Lista de roles personalizadosList custom roles

Ejecute el siguiente comando en la CLI de Azure:In the Azure CLI, run the following command:

az role definition list --subscription <sub-id> --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.To view the role definition for a specific custom role, use the following Azure CLI command. Tenga en cuenta que <role-name> debe tener el mismo formato devuelto por el comando anterior:The <role-name> should be in the same format returned by the command above:

az role definition list -n <role-name> --subscription <sub-id>

Actualización de un rol personalizadoUpdate a custom role

Ejecute el siguiente comando en la CLI de Azure:In the Azure CLI, run the following command:

az role definition update --role-definition update_def.json --subscription <sub-id>

Debe tener permisos en todo el ámbito de la nueva definición de roles.You need to have permissions on the entire scope of your new role definition. Por ejemplo, si este nuevo rol tiene un ámbito entre tres suscripciones, debe tener permisos en las tres suscripciones.For example if this new role has a scope across three subscriptions, you need to have permissions on all three subscriptions.

Nota

Las actualizaciones de roles pueden tardar entre 15 minutos y una hora en aplicarse a todas las asignaciones de roles de ese ámbito.Role updates can take 15 minutes to an hour to apply across all role assignments in that scope.

Uso de plantillas de Azure Resource Manager para repetibilidadUse Azure Resource Manager templates for repeatability

Si prevé que tendrá que volver a crear asignaciones de roles complejas, una plantilla Azure Resource Manager puede ser una gran ayuda.If you anticipate that you will need to recreate complex role assignments, an Azure Resource Manager template can be a big help. La plantilla 201-machine-learning-dependencies-role-assignment muestra cómo se pueden especificar las asignaciones de roles en el código fuente para su reutilización.The 201-machine-learning-dependencies-role-assignment template shows how role assignments can be specified in source code for reuse.

Escenarios frecuentesCommon scenarios

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.The following table is a summary of Azure Machine Learning activities and the permissions required to perform them at the least scope. 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 funcionará automáticamente.For example, if an activity can be performed with a workspace scope (Column 4), then all higher scope with that permission will also work automatically:

Importante

Todas las rutas de acceso de esta tabla que comienzan por / son rutas de acceso relativas a Microsoft.MachineLearningServices/:All paths in this table that start with / are relative paths to Microsoft.MachineLearningServices/ :

ActividadActivity Ámbito a nivel de supervisiónSubscription-level scope Ámbito a nivel de grupo de recursosResource group-level scope Ámbito a nivel de área de trabajoWorkspace-level scope
Crear área de trabajo nuevaCreate new workspace No se requiereNot required Propietario o colaboradorOwner or contributor N/A (se convierte en Propietario o hereda el rol del ámbito superior después de la creación)N/A (becomes Owner or inherits higher scope role after creation)
Solicitud de cuota de Amlcompute de nivel de suscripción o establecimiento de cuota de nivel de área de trabajoRequest subscription level Amlcompute quota or set workspace level quota Propietario, colaborador o rol personalizadoOwner, or contributor, or custom role
que permite /locations/updateQuotas/actionallowing /locations/updateQuotas/action
en el ámbito de suscripciónat subscription scope
No autorizadoNot Authorized No autorizadoNot Authorized
Crear un clúster de procesoCreate new compute cluster No se requiereNot required No se requiereNot required Propietario, colaborador o rol personalizado que permita: /workspaces/computes/writeOwner, contributor, or custom role allowing: /workspaces/computes/write
Crear una instancia de procesoCreate new compute instance No se requiereNot required No se requiereNot required Propietario, colaborador o rol personalizado que permita: /workspaces/computes/writeOwner, contributor, or custom role allowing: /workspaces/computes/write
Envío de cualquier tipo de ejecuciónSubmitting any type of run No se requiereNot required No se requiereNot required Propietario, colaborador o rol personalizado que permita: "/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"Owner, contributor, or custom role allowing: "/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"
Publicación de canalizaciones y puntos de conexiónPublishing pipelines and endpoints No se requiereNot required No se requiereNot required Propietario, colaborador o rol personalizado que permita: "/workspaces/endpoints/pipelines/*", "/workspaces/pipelinedrafts/*", "/workspaces/modules/*"Owner, contributor, or custom role allowing: "/workspaces/endpoints/pipelines/*", "/workspaces/pipelinedrafts/*", "/workspaces/modules/*"
Implementación de un modelo registrado en un recurso AKS/ACIDeploying a registered model on an AKS/ACI resource No se requiereNot required No se requiereNot required Propietario, colaborador o rol personalizado que permita: "/workspaces/services/aks/write", "/workspaces/services/aci/write"Owner, contributor, or custom role allowing: "/workspaces/services/aks/write", "/workspaces/services/aci/write"
Puntuación con un punto de conexión de AKS implementadoScoring against a deployed AKS endpoint No se requiereNot required No se requiereNot required 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 Azure Active Directory) o "/workspaces/read" (cuando se usa la autenticación por tokens)Owner, contributor, or custom role allowing: "/workspaces/services/aks/score/action", "/workspaces/services/aks/listkeys/action" (when you are not using Azure Active Directory auth) OR "/workspaces/read" (when you are using token auth)
Acceso al almacenamiento mediante cuadernos interactivosAccessing storage using interactive notebooks No se requiereNot required No se requiereNot required Propietario, colaborador o rol personalizado que permita: "/workspaces/computes/read", "/workspaces/notebooks/samples/read", "/workspaces/notebooks/storage/*", "/workspaces/listKeys/action"Owner, contributor, or custom role allowing: "/workspaces/computes/read", "/workspaces/notebooks/samples/read", "/workspaces/notebooks/storage/*", "/workspaces/listKeys/action"
Creación de un nuevo rol personalizadoCreate new custom role Propietario, colaborador o rol personalizado que permita Microsoft.Authorization/roleDefinitions/write.Owner, contributor, or custom role allowing Microsoft.Authorization/roleDefinitions/write No se requiereNot required Propietario, colaborador o rol personalizado que permita: /workspaces/computes/writeOwner, contributor, or custom role allowing: /workspaces/computes/write

Sugerencia

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.If you receive a failure when trying to create a workspace for the first time, make sure that your role allows Microsoft.MachineLearningServices/register/action. Esta acción le permite registrar el proveedor de recursos de Azure Machine Learning con su suscripción de Azure.This action allows you to register the Azure Machine Learning resource provider with your Azure subscription.

Identidad administrada asignada por el usuario con el clúster de proceso de Azure Machine LearningUser-assigned managed identity with Azure ML compute cluster

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.To assign a user assigned identity to an Azure Machine Learning compute cluster, you need write permissions to create the compute and the Managed Identity Operator Role. Para obtener más información sobre Azure RBAC con identidades administradas, consulte Cómo administrar una identidad administrada asignada por el usuario.For more information on Azure RBAC with Managed Identities, read How to manage user assigned identity

Operaciones de MLflowMLflow operations

Para realizar operaciones de MLflow con el área de trabajo Azure Machine Learning, use el rol personalizado en los siguientes ámbitos:To perform MLflow operations with your Azure Machine Learning workspace, use the following scopes your custom role:

Operación de MLflowMLflow operation ÁmbitoScope
Enumerar todos los experimentos en el almacén de seguimiento del área de trabajo, obtener un experimento por identificador, obtener un experimento por nombreList all experiments in the workspace tracking store, get an experiment by id, get an experiment by name Microsoft.MachineLearningServices/workspaces/experiments/read
Crear un experimento con un nombre, establecer una etiqueta en un experimento, restaurar un experimento marcado para su eliminaciónCreate an experiment with a name , set a tag on an experiment, restore an experiment marked for deletion Microsoft.MachineLearningServices/workspaces/experiments/write
Eliminar un experimentoDelete an experiment Microsoft.MachineLearningServices/workspaces/experiments/delete
Obtener una ejecución y datos y metadatos relacionados, obtener una lista de todos los valores de la métrica especificada para una ejecución determinada, enumerar los artefactos de una ejecuciónGet a run and related data and metadata, get a list of all values for the specified metric for a given run, list artifacts for a run Microsoft.MachineLearningServices/workspaces/experiments/runs/read
Crear una nueva ejecución dentro de un experimento, eliminar ejecuciones, restaurar ejecuciones eliminadas, registrar métricas en la ejecución actual, establecer etiquetas en una ejecución, eliminar etiquetas en una ejecución, registrar los parámetros (par clave-valor) que se usan para una ejecución, registrar un lote de métricas, parámetros y etiquetas para una ejecución, actualizar el estado de ejecuciónCreate a new run within an experiment, delete runs, restore deleted runs, log metrics under the current run, set tags on a run, delete tags on a run, log params (key-value pair) used for a run, log a batch of metrics, params, and tags for a run, update run status Microsoft.MachineLearningServices/workspaces/experiments/runs/write
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 del 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 experimentoGet registered model by name, fetch a list of all registered models in the registry, search for registered models, latest version models for each requests stage, get a registered model’s version, search model versions, get URI where a model version’s artifacts are stored, search for runs by experiment ids 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 nueva versión del modelo, actualizar la descripción de una versión del modelo, pasar un modelo registrado a una de las fasesCreate a new registered model, update a registered model’s name/description, rename existing registered model, create new version of the model, update a model version’s description, transition a registered model to one of the stages Microsoft.MachineLearningServices/workspaces/models/write
Eliminar un modelo registrado junto con todas sus versiones, eliminar versiones específicas de un modelo registradoDelete a registered model along with all its version, delete specific versions of a registered model Microsoft.MachineLearningServices/workspaces/models/delete

Roles personalizados de ejemploExample custom roles

Científico de datosData scientist

Permite que un científico de datos realice todas las operaciones dentro de un área de trabajo excepto:Allows a data scientist to perform all operations inside a workspace except:

  • Creación de procesoCreation of compute
  • Implementación de modelos en un clúster de AKS de producciónDeploying models to a production AKS cluster
  • Implementación de un punto de conexión de canalización de producciónDeploying a pipeline endpoint in production

data_scientist_custom_role.json :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/<subscription_id>"
    ]
}

Restringido para el científico de datosData scientist restricted

Una definición de roles más restringida sin caracteres comodín en las acciones permitidas.A more restricted role definition without wildcards in the allowed actions. Puede realizar todas las operaciones dentro de un área de trabajo excepto:It can perform all operations inside a workspace except:

  • Creación de procesoCreation of compute
  • Implementación de modelos en un clúster de AKS de producciónDeploying models to a production AKS cluster
  • Implementación de un punto de conexión de canalización de producciónDeploying a pipeline endpoint in production

data_scientist_restricted_custom_role.json :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/read",
        "Microsoft.MachineLearningServices/workspaces/notebooks/storage/write",
        "Microsoft.MachineLearningServices/workspaces/notebooks/storage/delete",
        "Microsoft.MachineLearningServices/workspaces/notebooks/samples/read",
        "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/datasets/registered/write", 
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/delete",
        "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/write",
        "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/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/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/<subscription_id>"
    ]
}

Científico de datos de MLflowMLflow data scientist

permite que un científico de datos realice todas las operaciones admitidas en AzureML de MLflow excepto:Allows a data scientist to perform all MLflow AzureML supported operations except:

  • Creación de procesoCreation of compute
  • Implementación de modelos en un clúster de AKS de producciónDeploying models to a production AKS cluster
  • Implementación de un punto de conexión de canalización de producciónDeploying a pipeline endpoint in production

mlflow_data_scientist_custom_role.json :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/read",
        "Microsoft.MachineLearningServices/workspaces/experiments/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/delete",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/read",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/write",
        "Microsoft.MachineLearningServices/workspaces/models/read",
        "Microsoft.MachineLearningServices/workspaces/models/write",
        "Microsoft.MachineLearningServices/workspaces/models/delete"
    ],
    "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/<subscription_id>"
    ]
}

MLOpsMLOps

permite asignar un rol a una entidad de servicio y usarlo para automatizar las canalizaciones de MLOps.Allows you to assign a role to a service principal and use that to automate your MLOps pipelines. Por ejemplo, para enviar ejecuciones en una canalización ya publicada:For example, to submit runs against an already published pipeline:

mlops_custom_role.json :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/experiments/runs/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/read",
        "Microsoft.MachineLearningServices/workspaces/datastores/read",
        "Microsoft.MachineLearningServices/workspaces/environments/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/snapshots/write",
        "Microsoft.MachineLearningServices/workspaces/environments/build/action",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/submit/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/<subscription_id>"
    ]
}

Administrador del área de trabajoWorkspace Admin

permite realizar todas las operaciones dentro del ámbito de un área de trabajo, excepto:Allows you to perform all operations within the scope of a workspace, except:

  • Crear una nueva área de trabajoCreating a new workspace
  • Asignación de cuotas de nivel de suscripción o de área de trabajoAssigning subscription or workspace level quotas

El administrador del área de trabajo tampoco puede crear un nuevo rol.The workspace admin also cannot create a new role. Solo puede asignar roles integrados o personalizados existentes dentro del ámbito de su área de trabajo:It can only assign existing built-in or custom roles within the scope of their workspace:

workspace_admin_custom_role.json :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/<subscription_id>"
    ]
}

Etiquetador de datosData labeler

Permite definir un rol con ámbito únicamente para etiquetar los datos:Allows you to define a role scoped only to labeling data:

labeler_custom_role.json :labeler_custom_role.json :

{
    "Name": "Labeler Custom",
    "IsCustom": true,
    "Description": "Can label data for Labeling",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/write"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/summary/read"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscription_id>"
    ]
}

Solución de problemasTroubleshooting

Estos son algunos de los aspectos que debe tener en cuenta al usar el control de acceso basado en rol de Azure (RBAC de Azure):Here are a few things to be aware of while you use Azure role-based access control (Azure RBAC):

  • Al crear un recurso en Azure (por ejemplo, un área de trabajo), no es directamente el propietario del recurso.When you create a resource in Azure, such as a workspace, you are not directly the owner of the resource. El rol se hereda del rol más alto del ámbito con el que está autorizado en esa suscripción.Your role is inherited from the highest scope role that you are authorized against in that subscription. 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.As an example if you are a Network Administrator, and have the permissions to create a Machine Learning workspace, you would be assigned the Network Administrator role against that workspace, and not the Owner role.

  • Para realizar operaciones de cuota en un área de trabajo, necesita permisos de nivel de suscripción.To perform quota operations in a workspace, you need subscription level permissions. 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.This means setting either subscription level quota or workspace level quota for your managed compute resources can only happen if you have write permissions at the subscription scope.

  • Cuando hay dos asignaciones de roles al mismo usuario de Azure Active Directory 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.When there are two role assignments to the same Azure Active Directory user with conflicting sections of Actions/NotActions, your operations listed in NotActions from one role might not take effect if they are also listed as Actions in another role. 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.To learn more about how Azure parses role assignments, read How Azure RBAC determines if a user has access to a resource

  • Para implementar los recursos de proceso dentro de una red virtual, debe tener explícitamente permiso para las siguientes acciones:To deploy your compute resources inside a VNet, you need to explicitly have permissions for the following actions:

    • Microsoft.Network/virtualNetworks/*/read en los recursos de red virtual.Microsoft.Network/virtualNetworks/*/read on the VNet resources.
    • Microsoft.Network/virtualNetworks/subnet/join/action en el recurso de subred.Microsoft.Network/virtualNetworks/subnet/join/action on the subnet resource.

    Para obtener más información sobre Azure RBAC con redes, consulte los Roles integrados de redes.For more information on Azure RBAC with networking, see the Networking built-in roles.

  • A veces puede tardar hasta una hora para que las nuevas asignaciones de roles surtan efecto sobre los permisos almacenados en caché en la pila.It can sometimes take up to 1 hour for your new role assignments to take effect over cached permissions across the stack.

  • El acceso condicional no se admite actualmente con Azure Machine Learning.Conditional access is currently not supported with Azure Machine Learning.

Pasos siguientesNext steps