Gerenciar acesso a um workspace do Azure Machine LearningManage access to an Azure Machine Learning workspace

Neste artigo, você aprenderá a gerenciar o acesso (autorização) a um espaço de trabalho Azure Machine Learning.In this article, you learn how to manage access (authorization) to an Azure Machine Learning workspace. O Azure RBAC (controle de acesso baseado em função) do Azure é usado para gerenciar o acesso aos recursos do Azure, como a capacidade de criar novos recursos ou usar os 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. Os usuários em seu Azure Active Directory (Azure AD) recebem funções específicas, que concedem acesso aos recursos.Users in your Azure Active Directory (Azure AD) are assigned specific roles, which grant access to resources. O Azure fornece funções internas e a capacidade de criar funções personalizadas.Azure provides both built-in roles and the ability to create custom roles.

Dica

Embora este artigo se concentre em Azure Machine Learning, os serviços individuais dos quais o Azure ML depende fornecem suas próprias configurações de RBAC.While this article focuses on Azure Machine Learning, individual services that Azure ML relies on provide their own RBAC settings. Por exemplo, usando as informações neste artigo, você pode configurar quem pode enviar solicitações de Pontuação para um modelo implantado como um serviço Web no serviço kubernetes do Azure.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. Mas o serviço kubernetes do Azure fornece seu próprio conjunto de funções do Azure.But Azure Kubernetes Service provides its own set of Azure roles. Para informações de RBAC específicas de serviço que podem ser úteis com Azure Machine Learning, consulte os links a seguir:For service specific RBAC information that may be useful with Azure Machine Learning, see the following links:

Aviso

A aplicação de algumas funções pode limitar a funcionalidade da interface do usuário no Azure Machine Learning Studio para outros usuários.Applying some roles may limit UI functionality in Azure Machine Learning studio for other users. Por exemplo, se a função de um usuário não tiver a capacidade de criar uma instância de computação, a opção de criar uma instância de computação não estará disponível no estúdio.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. Esse comportamento é esperado e impede que o usuário tente operações que retornariam um erro de acesso negado.This behavior is expected, and prevents the user from attempting operations that would return an access denied error.

Funções padrãoDefault roles

Um workspace do Azure Machine Learning é um recurso do Azure.An Azure Machine Learning workspace is an Azure resource. Assim como outros recursos do Azure, quando um novo workspace do Azure Machine Learning é criado, ele vem com três funções padrão.Like other Azure resources, when a new Azure Machine Learning workspace is created, it comes with three default roles. Você pode adicionar usuários ao espaço de trabalho e atribuí-los a uma dessas funções internas.You can add users to the workspace and assign them to one of these built-in roles.

FunçãoRole Nível de acessoAccess level
LeitorReader Ações somente leitura no espaço de trabalho.Read-only actions in the workspace. Os leitores podem listar e exibir ativos, incluindo credenciais de repositório de armazenamento , em um espaço de trabalho.Readers can list and view assets, including datastore credentials, in a workspace. Os leitores não podem criar nem atualizar esses ativos.Readers can't create or update these assets.
ColaboradorContributor Exiba, crie, edite ou exclua (onde aplicável) ativos em um espaço de trabalho.View, create, edit, or delete (where applicable) assets in a workspace. Por exemplo, os colaboradores podem criar um experimento, criar ou anexar um cluster de computação, enviar uma execução e implantar um serviço Web.For example, contributors can create an experiment, create or attach a compute cluster, submit a run, and deploy a web service.
ProprietárioOwner Acesso completo ao espaço de trabalho, incluindo a capacidade de exibir, criar, editar ou excluir ativos (onde aplicável) em um espaço de trabalho.Full access to the workspace, including the ability to view, create, edit, or delete (where applicable) assets in a workspace. Além disso, você pode alterar as atribuições de função.Additionally, you can change role assignments.
Função personalizadaCustom Role Permite que você personalize o acesso a operações de plano de dados ou controle específico em um espaço de trabalho.Allows you to customize access to specific control or data plane operations within a workspace. Por exemplo, o envio de uma execução, a criação de uma computação, a implantação de um modelo ou o registro de um conjunto de uma.For example, submitting a run, creating a compute, deploying a model or registering a dataset.

Importante

O acesso à função pode ser definido para vários níveis no Azure.Role access can be scoped to multiple levels in Azure. Por exemplo, alguém com acesso de proprietário a um espaço de trabalho pode não ter acesso de proprietário ao grupo de recursos que contém o espaço de trabalho.For example, someone with owner access to a workspace may not have owner access to the resource group that contains the workspace. Para obter mais informações, consulte como o RBAC do Azure funciona.For more information, see How Azure RBAC works.

No momento, não existem funções internas adicionais que sejam específicas para Azure Machine Learning.Currently there are no additional built-in roles that are specific to Azure Machine Learning. Para obter mais informações sobre funções internas, consulte funções internas do Azure.For more information on built-in roles, see Azure built-in roles.

Gerenciar o acesso ao espaço de trabalhoManage workspace access

Se você for um proprietário de um espaço de trabalho, poderá adicionar e remover funções para o espaço de trabalho.If you're an owner of a workspace, you can add and remove roles for the workspace. Você também pode atribuir funções a usuários.You can also assign roles to users. Use os links a seguir para descobrir como gerenciar o acesso:Use the following links to discover how to manage access:

Se você instalou a CLI do Azure Machine Learning, poderá usar comandos da CLI para atribuir funções a usuários: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>

O user campo é o endereço de email de um usuário existente na instância do Azure Active Directory em que a assinatura pai do espaço de trabalho reside.The user field is the email address of an existing user in the instance of Azure Active Directory where the workspace parent subscription lives. Aqui está um exemplo de como usar 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

Observação

o comando "AZ ml Workspace share" não funciona para a conta federada por Azure Active Directory B2B."az ml workspace share" command does not work for federated account by Azure Active Directory B2B. Use o portal da interface do usuário do Azure em vez do comando.Please use Azure UI portal instead of command.

Criar função personalizadaCreate custom role

Caso as funções internas sejam insuficientes, você poderá criar funções personalizadas.If the built-in roles are insufficient, you can create custom roles. As funções personalizadas podem ter permissões de recurso de leitura, gravação, exclusão e computação nesse espaço de trabalho.Custom roles might have read, write, delete, and compute resource permissions in that workspace. Você pode tornar a função disponível em um nível de espaço de trabalho específico, um nível de grupo de recursos específico ou um nível de assinatura específico.You can make the role available at a specific workspace level, a specific resource group level, or a specific subscription level.

Observação

Você deve ser um proprietário do recurso nesse nível para criar funções personalizadas dentro desse recurso.You must be an owner of the resource at that level to create custom roles within that resource.

Para criar uma função personalizada, primeiro Construa um arquivo JSON de definição de função que especifique a permissão e o escopo para a função.To create a custom role, first construct a role definition JSON file that specifies the permission and scope for the role. O exemplo a seguir define uma função personalizada denominada "data cientista Custom" com escopo em um nível de espaço de trabalho específico: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>"
    ]
}

Dica

Você pode alterar o AssignableScopes campo para definir o escopo dessa função personalizada no nível da assinatura, no nível do grupo de recursos ou em um nível de espaço de trabalho específico.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. A função personalizada acima é apenas um exemplo, consulte algumas funções personalizadas sugeridas para o serviço de Azure Machine Learning.The above custom role is just an example, see some suggested custom roles for the Azure Machine Learning service.

Essa função personalizada pode fazer tudo no espaço de trabalho, exceto pelas seguintes ações:This custom role can do everything in the workspace except for the following actions:

  • Ele não pode criar ou atualizar um recurso de computação.It can't create or update a compute resource.
  • Ele não pode excluir um recurso de computação.It can't delete a compute resource.
  • Ele não pode adicionar, excluir ou alterar atribuições de função.It can't add, delete, or alter role assignments.
  • Ele não pode excluir o espaço de trabalho.It can't delete the workspace.

Para implantar essa função personalizada, use o seguinte comando de CLI do Azure:To deploy this custom role, use the following Azure CLI command:

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

Após a implantação, essa função fica disponível no espaço de trabalho especificado.After deployment, this role becomes available in the specified workspace. Agora você pode adicionar e atribuir essa função no portal do Azure.Now you can add and assign this role in the Azure portal. Ou, você pode atribuir essa função a um usuário usando o az ml workspace share comando da CLI: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 obter mais informações sobre funções personalizadas, consulte funções personalizadas do Azure.For more information on custom roles, see Azure custom roles.

Operações de Azure Machine LearningAzure Machine Learning operations

Para obter mais informações sobre as operações (ações e não ações) utilizáveis com funções personalizadas, consulte operações do provedor de recursos.For more information on the operations (actions and not actions) usable with custom roles, see Resource provider operations. Você também pode usar o seguinte comando CLI do Azure para listar as operações:You can also use the following Azure CLI command to list operations:

az provider operation show –n Microsoft.MachineLearningServices

Listar funções personalizadasList custom roles

No CLI do Azure, execute o seguinte comando:In the Azure CLI, run the following command:

az role definition list --subscription <sub-id> --custom-role-only true

Para exibir a definição de função para uma função personalizada específica, use o comando CLI do Azure a seguir.To view the role definition for a specific custom role, use the following Azure CLI command. O <role-name> deve estar no mesmo formato retornado pelo comando acima:The <role-name> should be in the same format returned by the command above:

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

Atualizar uma função personalizadaUpdate a custom role

No CLI do Azure, execute o seguinte comando:In the Azure CLI, run the following command:

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

Você precisa ter permissões em todo o escopo da nova definição de função.You need to have permissions on the entire scope of your new role definition. Por exemplo, se essa nova função tiver um escopo entre três assinaturas, você precisará ter permissões em todas as três assinaturas.For example if this new role has a scope across three subscriptions, you need to have permissions on all three subscriptions.

Observação

As atualizações de função podem levar 15 minutos a uma hora para serem aplicadas em todas as atribuições de função nesse escopo.Role updates can take 15 minutes to an hour to apply across all role assignments in that scope.

Usar modelos de Azure Resource Manager para repetiçãoUse Azure Resource Manager templates for repeatability

Se você prevê que precisará recriar atribuições de função complexas, um modelo de Azure Resource Manager pode ser uma grande ajuda.If you anticipate that you will need to recreate complex role assignments, an Azure Resource Manager template can be a big help. O modelo 201-Machine-Learning-dependências-role-Assignment mostra como as atribuições de função podem ser especificadas no código-fonte para reutilização.The 201-machine-learning-dependencies-role-assignment template shows how role assignments can be specified in source code for reuse.

Cenários comunsCommon scenarios

A tabela a seguir é um resumo de Azure Machine Learning atividades e as permissões necessárias para realizá-las no menor escopo.The following table is a summary of Azure Machine Learning activities and the permissions required to perform them at the least scope. Por exemplo, se uma atividade puder ser executada com um escopo de espaço de trabalho (coluna 4), todo o escopo mais alto com essa permissão também funcionará automaticamente: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

Todos os caminhos nesta tabela que começam com / são caminhos relativos para Microsoft.MachineLearningServices/ :All paths in this table that start with / are relative paths to Microsoft.MachineLearningServices/ :

AtividadeActivity Escopo de nível de assinaturaSubscription-level scope Escopo no nível do grupo de recursosResource group-level scope Escopo no nível do espaço de trabalhoWorkspace-level scope
Criar novo workspaceCreate new workspace Não obrigatórioNot required Proprietário ou colaboradorOwner or contributor N/A (torna-se proprietário ou herda uma função de escopo maior após a criação)N/A (becomes Owner or inherits higher scope role after creation)
Solicitar cota de Amlcompute de nível de assinatura ou definir cota de nível de espaço de trabalhoRequest subscription level Amlcompute quota or set workspace level quota Proprietário, ou colaborador, ou função personalizadaOwner, or contributor, or custom role
permitindo que /locations/updateQuotas/actionallowing /locations/updateQuotas/action
no escopo da assinaturaat subscription scope
Não autorizadoNot Authorized Não autorizadoNot Authorized
Criar novo cluster de computaçãoCreate new compute cluster Não obrigatórioNot required Não obrigatórioNot required Proprietário, colaborador ou função personalizada, permitindo: /workspaces/computes/writeOwner, contributor, or custom role allowing: /workspaces/computes/write
Criar nova instância de computaçãoCreate new compute instance Não obrigatórioNot required Não obrigatórioNot required Proprietário, colaborador ou função personalizada, permitindo: /workspaces/computes/writeOwner, contributor, or custom role allowing: /workspaces/computes/write
Enviando qualquer tipo de execuçãoSubmitting any type of run Não obrigatórioNot required Não obrigatórioNot required Proprietário, colaborador ou função personalizada, permitindo: "/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"
Publicando pipelines e pontos de extremidadePublishing pipelines and endpoints Não obrigatórioNot required Não obrigatórioNot required Proprietário, colaborador ou função personalizada, permitindo: "/workspaces/endpoints/pipelines/*", "/workspaces/pipelinedrafts/*", "/workspaces/modules/*"Owner, contributor, or custom role allowing: "/workspaces/endpoints/pipelines/*", "/workspaces/pipelinedrafts/*", "/workspaces/modules/*"
Implantando um modelo registrado em um recurso AKS/ACIDeploying a registered model on an AKS/ACI resource Não obrigatórioNot required Não obrigatórioNot required Proprietário, colaborador ou função personalizada, permitindo: "/workspaces/services/aks/write", "/workspaces/services/aci/write"Owner, contributor, or custom role allowing: "/workspaces/services/aks/write", "/workspaces/services/aci/write"
Pontuação em relação a um ponto de extremidade AKS implantadoScoring against a deployed AKS endpoint Não obrigatórioNot required Não obrigatórioNot required Proprietário, colaborador ou função personalizada, permitindo: "/workspaces/services/aks/score/action", "/workspaces/services/aks/listkeys/action" (quando você não estiver usando Azure Active Directory autenticação) ou "/workspaces/read" (quando estiver usando a autenticação de token)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)
Acessando o armazenamento usando blocos de anotações interativosAccessing storage using interactive notebooks Não obrigatórioNot required Não obrigatórioNot required Proprietário, colaborador ou função personalizada, permitindo: "/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"
Criar nova função personalizadaCreate new custom role Proprietário, colaborador ou função personalizada que permite Microsoft.Authorization/roleDefinitions/writeOwner, contributor, or custom role allowing Microsoft.Authorization/roleDefinitions/write Não obrigatórioNot required Proprietário, colaborador ou função personalizada, permitindo: /workspaces/computes/writeOwner, contributor, or custom role allowing: /workspaces/computes/write

Dica

Se você receber uma falha ao tentar criar um espaço de trabalho pela primeira vez, certifique-se de que sua função permite 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. Essa ação permite que você registre o provedor de recursos Azure Machine Learning com sua assinatura do Azure.This action allows you to register the Azure Machine Learning resource provider with your Azure subscription.

Identidade gerenciada atribuída pelo usuário com o cluster de computação do Azure MLUser-assigned managed identity with Azure ML compute cluster

Para atribuir uma identidade atribuída ao usuário a um cluster de computação Azure Machine Learning, você precisa de permissões de gravação para criar a computação e a função de operador de identidade gerenciada.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 obter mais informações sobre o RBAC do Azure com identidades gerenciadas, leia como gerenciar a identidade atribuída pelo usuárioFor more information on Azure RBAC with Managed Identities, read How to manage user assigned identity

Operações de MLflowMLflow operations

Para executar operações de MLflow com seu espaço de trabalho Azure Machine Learning, use os seguintes escopos da sua função personalizada:To perform MLflow operations with your Azure Machine Learning workspace, use the following scopes your custom role:

Operação MLflowMLflow operation EscopoScope
Listar todos os experimentos no repositório de acompanhamento de espaço de trabalho, obter um experimento por ID, obter um experimento por nomeList all experiments in the workspace tracking store, get an experiment by id, get an experiment by name Microsoft.MachineLearningServices/workspaces/experiments/read
Criar um experimento com um nome, definir uma marca em um experimento, restaurar um experimento marcado para exclusãoCreate an experiment with a name , set a tag on an experiment, restore an experiment marked for deletion Microsoft.MachineLearningServices/workspaces/experiments/write
Excluir um experimentoDelete an experiment Microsoft.MachineLearningServices/workspaces/experiments/delete
Obter uma execução e dados e metadados relacionados, obter uma lista de todos os valores da métrica especificada para uma determinada execução, listar artefatos para uma execuçãoGet 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
Criar uma nova execução em um experimento, excluir execuções, restaurar execuções excluídas, métricas de log na execução atual, definir marcas em uma execução, excluir marcas em uma execução, parâmetros de log (par chave-valor) usado para uma execução, registrar em log um lote de métricas, parâmetros e marcas para uma execução, atualizar status da execuçãoCreate 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
Obter modelo registrado por nome, buscar uma lista de todos os modelos registrados no registro, Pesquisar modelos registrados, modelos de versão mais recentes para cada estágio de solicitações, obter a versão de um modelo registrado, Pesquisar versões de modelo, obter URI onde os artefatos da versão do modelo são armazenados, Pesquisar execuções por IDs 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
Criar um novo modelo registrado, atualizar o nome/descrição de um modelo registrado, renomear o modelo registrado existente, criar uma nova versão do modelo, atualizar a descrição de uma versão do modelo, fazer a transição de um modelo registrado para um dos estágiosCreate 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
Excluir um modelo registrado junto com todas as suas versões, excluir versões específicas de um modelo registradoDelete a registered model along with all its version, delete specific versions of a registered model Microsoft.MachineLearningServices/workspaces/models/delete

Exemplo de funções personalizadasExample custom roles

Cientista de dadosData scientist

Permite que um cientista de dados execute todas as operações dentro de um espaço de trabalho , exceto:Allows a data scientist to perform all operations inside a workspace except:

  • Criação de computaçãoCreation of compute
  • Implantando modelos em um cluster AKS de produçãoDeploying models to a production AKS cluster
  • Implantando um ponto de extremidade de pipeline em produçãoDeploying 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>"
    ]
}

Cientista de dados restritoData scientist restricted

Uma definição de função mais restrita sem curingas nas ações permitidas.A more restricted role definition without wildcards in the allowed actions. Ele pode executar todas as operações dentro de um espaço de trabalho , exceto:It can perform all operations inside a workspace except:

  • Criação de computaçãoCreation of compute
  • Implantando modelos em um cluster AKS de produçãoDeploying models to a production AKS cluster
  • Implantando um ponto de extremidade de pipeline em produçãoDeploying 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>"
    ]
}

Cientista de dados de MLflowMLflow data scientist

Permite que um cientista de dados execute todas as operações com suporte do MLflow AzureML , exceto:Allows a data scientist to perform all MLflow AzureML supported operations except:

  • Criação de computaçãoCreation of compute
  • Implantando modelos em um cluster AKS de produçãoDeploying models to a production AKS cluster
  • Implantando um ponto de extremidade de pipeline em produçãoDeploying 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 atribuir uma função a uma entidade de serviço e usá-la para automatizar os pipelines do MLOps.Allows you to assign a role to a service principal and use that to automate your MLOps pipelines. Por exemplo, para enviar execuções em um pipeline já publicado: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 do espaço de trabalhoWorkspace Admin

Permite que você execute todas as operações dentro do escopo de um espaço de trabalho, exceto:Allows you to perform all operations within the scope of a workspace, except:

  • Criando um novo workspaceCreating a new workspace
  • Atribuindo cotas de nível de espaço de trabalho ou de assinaturaAssigning subscription or workspace level quotas

O administrador do espaço de trabalho também não pode criar uma nova função.The workspace admin also cannot create a new role. Ele só pode atribuir funções internas ou personalizadas existentes dentro do escopo de seu espaço de trabalho: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>"
    ]
}

Labeler de dadosData labeler

Permite que você defina uma função com escopo apenas para rotular dados: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>"
    ]
}

Solução de problemasTroubleshooting

Aqui estão algumas coisas que você deve conhecer enquanto usa o controle de acesso baseado em função do Azure (RBAC do Azure):Here are a few things to be aware of while you use Azure role-based access control (Azure RBAC):

  • Quando você cria um recurso no Azure, como um espaço de trabalho, você não é diretamente o proprietário do recurso.When you create a resource in Azure, such as a workspace, you are not directly the owner of the resource. Sua função é herdada da função de escopo mais alta na qual você está autorizado nessa assinatura.Your role is inherited from the highest scope role that you are authorized against in that subscription. Como exemplo, se você for um administrador de rede e tiver as permissões para criar um Machine Learning espaço de trabalho, a função de administrador de rede será atribuída a esse espaço de trabalho e não à função de proprietário.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 executar operações de cota em um espaço de trabalho, você precisa de permissões de nível de assinatura.To perform quota operations in a workspace, you need subscription level permissions. Isso significa que a definição de cota de nível de assinatura ou cota de nível de espaço de trabalho para seus recursos de computação gerenciados só poderá ocorrer se você tiver permissões de gravação no escopo da assinatura.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.

  • Quando há duas atribuições de função para o mesmo Azure Active Directory usuário com seções conflitantes de ações/não ações, suas operações listadas em não ações de uma função podem não entrar em vigor se também estiverem listadas como ações em outra função.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 saber mais sobre como o Azure analisa as atribuições de função, leia como o RBAC do Azure determina se um usuário tem acesso a um recursoTo learn more about how Azure parses role assignments, read How Azure RBAC determines if a user has access to a resource

  • Para implantar seus recursos de computação dentro de uma VNet, você precisa ter permissões explicitamente para as seguintes ações:To deploy your compute resources inside a VNet, you need to explicitly have permissions for the following actions:

    • Microsoft.Network/virtualNetworks/join/action no recurso de VNet.Microsoft.Network/virtualNetworks/join/action on the VNet resource.
    • Microsoft.Network/virtualNetworks/subnet/join/action no recurso de sub-rede.Microsoft.Network/virtualNetworks/subnet/join/action on the subnet resource.

    Para obter mais informações sobre o RBAC do Azure com rede, consulte funções internas de rede.For more information on Azure RBAC with networking, see the Networking built-in roles.

  • Às vezes, pode levar até 1 hora para que as novas atribuições de função entrem em vigor em todas as permissões armazenadas em cache em toda a pilha.It can sometimes take up to 1 hour for your new role assignments to take effect over cached permissions across the stack.

Próximas etapasNext steps