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 Azure Machine Learning 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.
Rol de administrador de Azure AI
Antes del 19/11/2024, a la identidad administrada asignada por el sistema creada para el área de trabajo se le asignó automáticamente el rol Colaborador para el grupo de recursos que contiene el área de trabajo. Las áreas de trabajo creadas después de esta fecha tienen asignada la identidad administrada asignada por el sistema al rol Administrador de Azure AI. El alcance de este rol está más limitado a los permisos mínimos necesarios para que la identidad administrada realice sus tareas.
El rol Administrador de Azure AI está actualmente en versión preliminar pública.
Importante
Esta característica actualmente está en su versión preliminar pública. Esta versión preliminar se ofrece sin un Acuerdo de Nivel de Servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas.
Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.
El rol Administrador de Azure AI tiene los siguientes permisos asociados:
{
"permissions": [
{
"actions": [
"Microsoft.Authorization/*/read",
"Microsoft.CognitiveServices/*",
"Microsoft.ContainerRegistry/registries/*",
"Microsoft.DocumentDb/databaseAccounts/*",
"Microsoft.Features/features/read",
"Microsoft.Features/providers/features/read",
"Microsoft.Features/providers/features/register/action",
"Microsoft.Insights/alertRules/*",
"Microsoft.Insights/components/*",
"Microsoft.Insights/diagnosticSettings/*",
"Microsoft.Insights/generateLiveToken/read",
"Microsoft.Insights/logDefinitions/read",
"Microsoft.Insights/metricAlerts/*",
"Microsoft.Insights/metricdefinitions/read",
"Microsoft.Insights/metrics/read",
"Microsoft.Insights/scheduledqueryrules/*",
"Microsoft.Insights/topology/read",
"Microsoft.Insights/transactions/read",
"Microsoft.Insights/webtests/*",
"Microsoft.KeyVault/*",
"Microsoft.MachineLearningServices/workspaces/*",
"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/deployments/*",
"Microsoft.Resources/deployments/operations/read",
"Microsoft.Resources/subscriptions/operationresults/read",
"Microsoft.Resources/subscriptions/read",
"Microsoft.Resources/subscriptions/resourcegroups/deployments/*",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/subscriptions/resourceGroups/write",
"Microsoft.Storage/storageAccounts/*",
"Microsoft.Support/*",
"Microsoft.Search/searchServices/write",
"Microsoft.Search/searchServices/read",
"Microsoft.Search/searchServices/delete",
"Microsoft.Search/searchServices/indexes/*",
"Microsoft.DataFactory/factories/*"
],
"notActions": [],
"dataActions": [],
"notDataActions": []
}
]
}
Conversión de una identidad administrada por el sistema existente al rol Administrador de Azure AI
Sugerencia
Se recomienda convertir las áreas de trabajo creadas antes del 19/11/2024 para usar el rol Administrador de Azure AI. El alcance del rol Administrador de Azure AI está más limitado que el rol Colaborador usado anteriormente y sigue a la entidad de seguridad de privilegios mínimos.
Puede convertir las áreas de trabajo creadas antes del 19/11/2024 mediante alguno de los métodos siguientes:
API de REST de Azure: use una solicitud
PATCH
a la API de REST de Azure para el área de trabajo. El cuerpo de la solicitud debe establecer{"properties":{"allowRoleAssignmeentOnRG":true}}
. En el ejemplo siguiente se muestra una solicitudPATCH
que usacurl
. Reemplace<your-subscription>
,<resource-group-name>
,<workspace-name>
y<YOUR-ACCESS-TOKEN>
por los valores del entorno. Para más información sobre el uso de las API de REST, consulte la documentación de la API de REST de Azure.curl -X PATCH https://management.azure.com/subscriptions/<your-subscription>/resourcegroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>?api-version=2024-04-01-preview -H "Authorization:Bearer <YOUR-ACCESS-TOKEN>"
CLI de Azure: use el comando
az ml workspace update
con el parámetro--allow-roleassignment-on-rg true
. En el ejemplo siguiente, se actualiza un área de trabajo denominadamyworkspace
. Este comando requiere la extensión de la CLI de Azure Machine Learning, versión 2.27.0 o posterior.az ml workspace update --name myworkspace --allow-roleassignment-on-rg true
SDK de Python de Azure: establezca la propiedad
allow_roleassignment_on_rg
del objeto Workspace enTrue
y después realice una operación de actualización. En el ejemplo siguiente, se actualiza un área de trabajo denominadamyworkspace
. Esta operación requiere el SDK de Azure Machine Learning, versión 1.17.0 o posterior.ws = ml_client.workspaces.get(name="myworkspace") ws.allow_roleassignment_on_rg = True ws = ml_client.workspaces.begin_update(workspace=ws).result()
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:
- Interfaz de usuario de Azure Portal
- PowerShell
- CLI de Azure
- REST API
- Plantillas de Azure Resource Manager
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:
- Creación de un grupo de seguridad.
- 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.
- Asigne al grupo un rol RBAC en el área de trabajo, como Científico de datos, Lector o Colaborador de AzureML.
- 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 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 |
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.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 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) Enumeración, lectura, creación, actualización o eliminación de experimentos | Microsoft.MachineLearningServices/workspaces/experiments/* |
(versión 2) Enumeración, lectura, creación, actualización o eliminación de 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.
- Responsable del equipo de etiquetado
- Administrador de cuentas de proveedor
- Control de calidad del cliente
- Control de calidad del proveedor
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. 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
YMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write
. Para las implementaciones del SDK o la CLI, necesitaMicrosoft.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.