Gerenciar o acesso aos espaços de trabalho do Azure Machine Learning
Este artigo explica como gerenciar o acesso (autorização) aos espaços de trabalho do Azure Machine Learning. Você pode usar o controle de acesso baseado em função do Azure (Azure RBAC) para gerenciar o acesso aos recursos do Azure, dando aos usuários a capacidade de criar novos recursos ou usar os existentes. Os utilizadores na sua Microsoft Entra ID recebem funções específicas, que concedem acesso a recursos. O Azure fornece funções internas e a capacidade de criar funções personalizadas.
Gorjeta
Embora este artigo se concentre no Azure Machine Learning, os serviços individuais fornecem suas próprias configurações RBAC. 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. Mas o Serviço Kubernetes do Azure fornece seu próprio conjunto de funções do Azure. Para obter informações RBAC específicas do serviço que podem ser úteis com o Azure Machine Learning, consulte os seguintes links:
Aviso
A aplicação de algumas funções pode limitar a funcionalidade da interface do usuário no estúdio de Aprendizado de Máquina do Azure para outros usuários. 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. Este comportamento é esperado e impede que o utilizador tente operações que retornariam um erro de acesso negado.
Funções predefinidas
Os espaços de trabalho do Azure Machine Learning têm funções internas que estão disponíveis por padrão. Quando você adiciona usuários a um espaço de trabalho, eles podem receber uma das seguintes funções.
Role | Nível de acesso |
---|---|
Cientista de dados do AzureML | Pode executar todas as ações em um espaço de trabalho do Azure Machine Learning, exceto criar ou excluir recursos de computação e modificar o próprio espaço de trabalho. |
Operador de computação AzureML | Pode criar, gerenciar, excluir e acessar recursos de computação em um espaço de trabalho. |
Leitor | ações só de leitura na área de trabalho. Os leitores podem listar e exibir ativos, incluindo credenciais de armazenamento de dados, em um espaço de trabalho. Os leitores não podem criar ou atualizar esses ativos. |
Contribuinte | visualizar, criar, editar ou eliminar (quando aplicável) recursos numa área de trabalho. Por exemplo, os contribuidores podem criar uma experimentação, criar ou anexar um cluster de cálculo, submeter uma execução e implementar um serviço Web. |
Proprietário | Acesso total à área de trabalho, incluindo a capacidade de visualizar, criar, editar ou eliminar (quando aplicável) recursos numa área de trabalho. Além disso, pode alterar as atribuições de funções. |
Além disso, os registros do Azure Machine Learning têm uma função de Usuário do Registro do Azure Machine Learning que pode ser atribuída a um recurso do Registro para conceder permissões de nível de usuário a cientistas de dados. Para obter permissões de nível de administrador para criar ou excluir registros, use a função de Colaborador ou Proprietário.
Role | Nível de acesso |
---|---|
Usuário do Registro AzureML | Pode obter registros e ler, escrever e excluir ativos dentro deles. Não é possível criar novos recursos do Registro ou excluí-los. |
Você pode combinar as funções para conceder diferentes níveis de acesso. Por exemplo, você pode conceder a um usuário do espaço de trabalho as funções de Cientista de Dados do AzureML e Operador de Computação do AzureML para permitir que o usuário execute experimentos enquanto cria cálculos de maneira autossuficiente.
Importante
O acesso à função pode ter escopo para vários níveis no 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. Para obter mais informações, consulte Como funciona o RBAC do Azure.
Função de Administrador de IA do Azure
Antes de 19/11/2024, a identidade gerenciada atribuída ao sistema criada para o espaço de trabalho recebia automaticamente a função de Colaborador para o grupo de recursos que contém o espaço de trabalho. Os espaços de trabalho criados após essa data têm a identidade gerenciada atribuída ao sistema atribuída à função de Administrador de IA do Azure. Essa função tem um escopo mais restrito às permissões mínimas necessárias para que a identidade gerenciada execute suas tarefas.
A função de Administrador de IA do Azure está atualmente em visualização pública.
Importante
Esta funcionalidade está atualmente em pré-visualização pública. Esta versão de pré-visualização é fornecida sem um contrato de nível de serviço e não a recomendamos para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas.
Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.
A função de Administrador de IA do Azure tem as seguintes permissões:
{
"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": []
}
]
}
Converter uma identidade gerenciada pelo sistema existente para a função de Administrador de IA do Azure
Gorjeta
Recomendamos que você converta espaços de trabalho criados antes de 19/11/2024 para usar a função de Administrador de IA do Azure. A função de Administrador de IA do Azure tem um escopo mais restrito do que a função de Colaborador usada anteriormente e segue o princípio de menor privilégio.
Você pode converter espaços de trabalho criados antes de 19/11/2024 usando um dos seguintes métodos:
API REST do Azure: use uma
PATCH
solicitação para a API REST do Azure para o espaço de trabalho. O corpo do pedido deve definir{"properties":{"allowRoleAssignmeentOnRG":true}}
. O exemplo a seguir mostra umaPATCH
solicitação usandocurl
. Substitua<your-subscription>
,<resource-group-name>
,<workspace-name>
e<YOUR-ACCESS-TOKEN>
pelos valores para o seu cenário. Para obter mais informações sobre como usar APIs REST, visite a documentação da API REST do 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 do Azure: use o
az ml workspace update
comando com o--allow-roleassignment-on-rg true
parâmetro. O exemplo a seguir atualiza um espaço de trabalho chamadomyworkspace
. Este comando requer a extensão da CLI do Azure Machine Learning versão 2.27.0 ou posterior.az ml workspace update --name myworkspace --allow-roleassignment-on-rg true
SDK do Python do Azure: defina a
allow_roleassignment_on_rg
propriedade do objeto Workspace comoTrue
e execute uma operação de atualização. O exemplo a seguir atualiza um espaço de trabalho chamadomyworkspace
. Esta operação requer o SDK do Azure Machine Learning versão 1.17.0 ou posterior.ws = ml_client.workspaces.get(name="myworkspace") ws.allow_roleassignment_on_rg = True ws = ml_client.workspaces.begin_update(workspace=ws).result()
Gerir o acesso à área de trabalho
Se for proprietário de uma área de trabalho, poderá adicionar e remover funções da área de trabalho. Também poderá atribuir funções a utilizadores. Utilize as ligações seguintes para saber como gerir o acesso:
Por exemplo, use a CLI do Azure para atribuir a função de Colaborador ao joe@contoso.com grupo de recursos this-rg com o seguinte comando:
az role assignment create --role "Contributor" --assignee "joe@contoso.com" --resource-group this-rg
Usar grupos de segurança do Microsoft Entra para gerenciar o acesso ao espaço de trabalho
Você pode usar grupos de segurança do Microsoft Entra para gerenciar o acesso a espaços de trabalho. Esta abordagem tem os seguintes benefícios:
- Os líderes de equipe ou de projeto podem gerenciar o acesso do usuário ao espaço de trabalho como proprietários do grupo de segurança, sem precisar diretamente da função Proprietário no recurso do espaço de trabalho.
- Você pode organizar, gerenciar e revogar as permissões dos usuários no espaço de trabalho e outros recursos como um grupo, sem ter que gerenciar permissões usuário a usuário.
- Usar grupos do Microsoft Entra ajuda você a evitar atingir o limite de assinatura em atribuições de função.
Para usar os grupos de segurança do Microsoft Entra:
- Crie um grupo de segurança.
- Adicione um proprietário de grupo. Este utilizador tem permissões para adicionar ou remover membros do grupo. O proprietário do grupo não precisa ser membro do grupo ou ter função RBAC direta no espaço de trabalho.
- Atribua ao grupo uma função RBAC no espaço de trabalho, como Cientista de Dados do AzureML, Leitor ou Colaborador.
- Adicione membros do grupo. Os membros ganham acesso ao espaço de trabalho.
Criar função personalizada
Se as funções incorporadas forem insuficientes, poderá criar funções personalizadas. As funções personalizadas podem possuir permissões de recursos de leitura, gravação, exclusão e computação nesse espaço de trabalho. Você pode disponibilizar a função 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.
Nota
Você deve ser um proprietário do recurso nesse nível para criar funções personalizadas dentro desse recurso.
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 da função. O exemplo a seguir define uma função personalizada de Cientista de Dados com escopo em um nível de espaço de trabalho 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>"
]
}
Gorjeta
Você pode alterar o AssignableScopes
campo para definir o escopo dessa função personalizada no nível de assinatura, no nível do grupo de recursos ou em um nível de espaço de trabalho específico.
A função personalizada anterior é apenas um exemplo, veja algumas funções personalizadas sugeridas para o serviço Azure Machine Learning.
Essa função personalizada pode fazer tudo no espaço de trabalho, exceto as seguintes ações:
- Ele não pode excluir o espaço de trabalho.
- Ele não pode criar ou atualizar o espaço de trabalho.
- Ele não pode criar ou atualizar recursos de computação.
- Ele não pode excluir recursos de computação.
- Ele não pode adicionar, excluir ou alterar atribuições de função.
Para implantar essa função personalizada, use o seguinte comando da CLI do Azure:
az role definition create --role-definition data_scientist_custom_role.json
Após a implantação, essa função fica disponível no espaço de trabalho especificado. Agora você pode adicionar e atribuir essa função no portal do Azure.
Para obter mais informações sobre funções personalizadas, consulte Funções personalizadas do Azure.
Operações do Azure Machine Learning
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. Você também pode usar o seguinte comando da CLI do Azure para listar operações:
az provider operation show –n Microsoft.MachineLearningServices
Listar funções personalizadas
Na CLI do Azure, execute o seguinte comando:
az role definition list --subscription <subscriptionId> --custom-role-only true
Para exibir a definição de função para uma função personalizada específica, use o seguinte comando da CLI do Azure. O <roleName>
deve estar no mesmo formato retornado pelo comando anterior:
az role definition list -n <roleName> --subscription <subscriptionId>
Atualizar uma função personalizada
Na CLI do Azure, execute o seguinte comando:
az role definition update --role-definition update_def.json --subscription <subscriptionId>
Você precisa ter permissões em todo o escopo da sua nova definição de função. Por exemplo, se essa nova função tiver um escopo em três assinaturas, você precisará ter permissões em todas as três assinaturas.
Nota
As atualizações de função podem levar de 15 minutos a uma hora para serem aplicadas em todas as atribuições de função nesse escopo.
Usar modelos do Azure Resource Manager para repetibilidade
Se você antecipar que precisa recriar atribuições de função complexas, um modelo do Azure Resource Manager pode ser uma ajuda significativa. O modelo machine-learning-dependencies-role-assignment mostra como as atribuições de função podem ser especificadas no código-fonte para reutilização.
Cenários comuns
A tabela a seguir é um resumo das atividades do Azure Machine Learning e as permissões necessárias para executá-las no menor escopo. Por exemplo, se uma atividade puder ser executada com um escopo de espaço de trabalho (Coluna 4), todo o escopo superior com essa permissão também funcionará automaticamente. Para determinadas atividades, as permissões diferem entre as APIs V1 e V2.
Importante
Todos os caminhos nesta tabela que começam com /
são caminhos relativos para Microsoft.MachineLearningServices/
:
Atividade | Âmbito ao nível da subscrição | Escopo no nível do grupo de recursos | Escopo no nível do espaço de trabalho |
---|---|---|---|
Criar novo espaço de trabalho 1 | Não obrigatório | Proprietário ou colaborador | N/D (torna-se Proprietário ou herda uma função de escopo mais alto após a criação) |
Solicitar cota Amlcompute de nível de assinatura ou definir cota de nível de espaço de trabalho | Proprietário, colaborador ou função personalizada permitindo /locations/updateQuotas/action no âmbito da subscrição |
Não autorizado | Não autorizado |
Criar novo cluster de computação | Não obrigatório | Não obrigatório | Proprietário, colaborador ou função personalizada que permite: /workspaces/computes/write |
Criar nova instância de computação | Não obrigatório | Não obrigatório | Proprietário, colaborador ou função personalizada que permite: /workspaces/computes/write |
Envio de qualquer tipo de execução (V1) | Não obrigatório | Não obrigatório | Proprietário, contribuidor 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 |
Enviando qualquer tipo de execução (V2) | Não obrigatório | Não obrigatório | Proprietário, colaborador ou função personalizada 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 |
Publicação de pipelines e pontos de extremidade (V1) | Não obrigatório | Não obrigatório | Proprietário, colaborador ou função personalizada permitindo: /workspaces/endpoints/pipelines/* , /workspaces/pipelinedrafts/* , /workspaces/modules/* |
Publicação de pipelines e pontos de extremidade (V2) | Não obrigatório | Não obrigatório | Proprietário, colaborador ou função personalizada permitindo: /workspaces/endpoints/pipelines/* , /workspaces/pipelinedrafts/* , /workspaces/components/* |
Anexar um recurso AKS 2 | Não obrigatório | Proprietário ou contribuidor no grupo de recursos que contém AKS | |
Implantando um modelo registrado em um recurso AKS/ACI | Não obrigatório | Não obrigatório | Proprietário, colaborador ou função personalizada permitindo: /workspaces/services/aks/write , /workspaces/services/aci/write |
Pontuação em relação a um ponto de extremidade AKS implantado | Não obrigatório | Não obrigatório | Proprietário, colaborador ou função personalizada permitindo: /workspaces/services/aks/score/action , /workspaces/services/aks/listkeys/action (quando você não usa o Microsoft Entra auth) OU /workspaces/read (quando você usa token auth) |
Acesso ao armazenamento usando blocos de anotações interativos | Não obrigatório | Não obrigatório | Proprietário, colaborador ou função personalizada permitindo: /workspaces/computes/read , /workspaces/notebooks/samples/read , /workspaces/notebooks/storage/* , /workspaces/listStorageAccountKeys/action , /workspaces/listNotebookAccessToken/read |
Criar nova função personalizada | Proprietário, colaborador ou função personalizada que permite Microsoft.Authorization/roleDefinitions/write |
Não obrigatório | Proprietário, colaborador ou função personalizada que permite: /workspaces/computes/write |
Criar/gerenciar endpoints e implantações online | Não obrigatório | Para implantar no estúdio, Microsoft.Resources/deployments/write |
Proprietário, colaborador ou função personalizada que permite Microsoft.MachineLearningServices/workspaces/onlineEndpoints/* o . |
Recuperar credenciais de autenticação para pontos de extremidade online | Não obrigatório | Não obrigatório | Proprietário, colaborador ou função personalizada que permite Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action e Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action |
Se você receber uma falha ao tentar criar um espaço de trabalho pela primeira vez, certifique-se de que sua função permita
Microsoft.MachineLearningServices/register/action
. Esta ação permite que você registre o provedor de recursos do Azure Machine Learning com sua assinatura do Azure.Ao anexar um cluster AKS, você também precisa ter a Função de Administrador do Cluster de Serviço do Kubernetes do Azure no cluster.
Implantar em uma rede virtual ou sub-rede
Para implantar recursos em uma rede virtual ou sub-rede, sua conta de usuário deve ter permissões para as seguintes ações no controle de acesso baseado em função do Azure (RBAC do Azure):
- "Microsoft.Network/*/read" no recurso de rede virtual. Essa permissão não é necessária para implantações de modelo do Azure Resource Manager (ARM).
- "Microsoft.Network/virtualNetworks/join/action" no recurso de rede virtual.
- "Microsoft.Network/virtualNetworks/subnets/join/action" no recurso de sub-rede.
Para obter mais informações sobre o RBAC do Azure com rede, consulte as funções internas de rede
Diferenças entre ações para APIs V1 e V2
Há certas diferenças entre as ações para APIs V1 e APIs V2.
Elemento | Caminho de ação para a API V1 | Caminho de ação para a API V2 |
---|---|---|
Conjunto de dados | Microsoft.MachineLearningServices/espaços de trabalho/conjuntos de dados | Microsoft.MachineLearningServices/workspaces/datasets/versions |
Execuções de experimentos e trabalhos | Microsoft.MachineLearningServices/espaços de trabalho/experimentos | Microsoft.MachineLearningServices/espaços de trabalho/jobs |
Modelos | Microsoft.MachineLearningServices/espaços de trabalho/modelos | Microsoft.MachineLearningServices/workspaces/models/versions |
Instantâneos e código | Microsoft.MachineLearningServices/workspaces/snapshots | Microsoft.MachineLearningServices/workspaces/códigos/versões |
Módulos e componentes | Microsoft.MachineLearningServices/espaços de trabalho/módulos | Microsoft.MachineLearningServices/espaços de trabalho/componentes |
Você pode tornar as funções personalizadas compatíveis com as APIs V1 e V2 incluindo ambas as ações ou usando curingas que incluem ambas as ações, por exemplo Microsoft.MachineLearningServices/workspaces/datasets/*/read
.
Criar um espaço de trabalho usando uma chave gerenciada pelo cliente
Quando você usa uma chave gerenciada pelo cliente (CMK), um Cofre de Chaves do Azure é usado para armazenar a chave. O usuário ou entidade de serviço usada para criar o espaço de trabalho deve ter acesso de proprietário ou colaborador ao cofre de chaves.
Se seu espaço de trabalho estiver configurado com uma identidade gerenciada atribuída pelo usuário, a identidade deverá receber as seguintes funções. Essas funções permitem que a identidade gerenciada crie o Armazenamento do Azure, o Azure Cosmos DB e os recursos do Azure Search usados ao usar uma chave gerenciada pelo cliente:
Microsoft.Storage/storageAccounts/write
Microsoft.Search/searchServices/write
Microsoft.DocumentDB/databaseAccounts/write
Dentro do cofre de chaves, o usuário ou entidade de serviço deve ter acesso a criar, obter, excluir e limpar a chave por meio de uma política de acesso ao cofre de chaves. Para obter mais informações, consulte Segurança do Cofre da Chave do Azure.
Identidade gerenciada atribuída pelo usuário com cluster de computação do Azure Machine Learning
Para atribuir uma identidade atribuída ao usuário a um cluster de computação do 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. Para obter mais informações sobre o RBAC do Azure com identidades gerenciadas, leia Como gerenciar a identidade atribuída ao usuário
Operações MLflow
Para executar operações MLflow com seu espaço de trabalho do Azure Machine Learning, use os seguintes escopos de sua função personalizada:
Operação MLflow | Âmbito |
---|---|
(V1) Listar, ler, criar, atualizar ou excluir experimentos | Microsoft.MachineLearningServices/workspaces/experiments/* |
(V2) Listar, ler, criar, atualizar ou excluir trabalhos | Microsoft.MachineLearningServices/workspaces/jobs/* |
Obter modelo registrado pelo nome, buscar uma lista de todos os modelos registrados no registro, procurar modelos registrados, modelos de versão mais recente para cada etapa de solicitações, obter a versão de um modelo registrado, pesquisar versões de modelo, obter URI onde os artefatos de uma versão de modelo são armazenados, procurar execuções por IDs de experimento | Microsoft.MachineLearningServices/workspaces/models/*/read |
Criar um novo modelo registado, atualizar o nome/descrição de um modelo registado, mudar o nome do modelo registado 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 registado para uma das etapas | Microsoft.MachineLearningServices/workspaces/models/*/write |
Excluir um modelo registrado junto com toda a sua versão, excluir versões específicas de um modelo registrado | Microsoft.MachineLearningServices/workspaces/models/*/delete |
Exemplo de funções personalizadas
Cientista de dados
Permite que um cientista de dados execute todas as operações dentro de um espaço de trabalho , exceto:
- Criação de computação
- Implantando modelos em um cluster AKS de produção
- Implantando um ponto de extremidade de pipeline na produção
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>"
]
}
Cientista de dados restrito
Uma definição de função mais restrita sem curingas nas ações permitidas. Ele pode executar todas as operações dentro de um espaço de trabalho , exceto:
- Criação de computação
- Implantando modelos em um cluster AKS de produção
- Implantando um ponto de extremidade de pipeline na produção
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>"
]
}
Cientista de dados MLflow
Permite que um cientista de dados execute todas as operações com suporte do Azure Machine Learning MLflow, exceto:
- Criação de computação
- Implantando modelos em um cluster AKS de produção
- Implantando um ponto de extremidade de pipeline na produção
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 atribuir uma função a uma entidade de serviço e usá-la para automatizar seus pipelines MLOps. Por exemplo, para enviar execuções em um pipeline já publicado:
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 do espaço de trabalho
Permite executar todas as operações dentro do escopo de um espaço de trabalho, exceto:
- Criando um novo espaço de trabalho
- Atribuição de quotas ao nível da subscrição ou da área de trabalho
O administrador do espaço de trabalho também não pode criar uma nova função. Ele só pode atribuir funções internas ou personalizadas existentes dentro do escopo de seu espaço de trabalho:
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>"
]
}
Identificação de dados
Há uma função interna para a rotulagem de dados, com escopo apenas para rotular dados. As funções personalizadas a seguir fornecem outros níveis de acesso para um projeto de rotulagem de dados.
O líder da equipe de rotulagem permite que você revise e rejeite o conjunto de dados rotulado e visualize informações de rotulagem. Para além disso, esta função também lhe permite desempenhar o papel de 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>"
]
}
Resolução de Problemas
Aqui estão algumas coisas que você deve estar ciente enquanto você usa o RBAC do Azure:
Quando você cria um recurso no Azure, como um espaço de trabalho, você não é diretamente o proprietário do recurso. Sua função é herdada da função de escopo mais alto para a qual você está autorizado nessa assinatura. Por exemplo, se você for um Administrador de Rede e tiver as permissões para criar um espaço de trabalho de Aprendizado de Máquina, será atribuída a função de Administrador de Rede nesse espaço de trabalho. Não é o papel de proprietário .
Para realizar operações de quota numa área de trabalho, precisará de permissões ao nível da subscrição. Tal significa que definir a quota ao nível da subscrição ou a quota ao nível da área de trabalho para os recursos de computação geridos só poderá ocorrer se tiver permissões de escrita no âmbito da subscrição.
Para implantar no estúdio, você precisa E
Microsoft.Resources/deployments/write
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write
. Para implantações de SDK/CLI, você precisa deMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write
. Entre em contato com o proprietário do seu espaço de trabalho/grupo de recursos para obter as permissões adicionais.Quando há duas atribuições de função para o mesmo usuário do Microsoft Entra com seções conflitantes de Actions/NotActions, suas operações listadas em NotActions de uma função podem não ter efeito se também estiverem listadas como Ações em outra função. Para saber mais sobre como o Azure analisa as atribuições de funções, leia Como o RBAC do Azure determina se um utilizador tem acesso a um recurso
Por vezes, pode demorar até uma hora para que as novas atribuições de funções tenham efeito sobre as permissões em cache em toda a pilha.