Partilhar via


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. Use controlo de acesso baseado em funções do Azure (Azure RBAC) para gerir o acesso aos recursos do Azure. Ao usar Azure RBAC, pode dar aos utilizadores a capacidade de criar novos recursos ou usar os existentes. Atribua funções específicas aos utilizadores no seu ID Microsoft Entra para conceder 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, utilizando a informação deste artigo, pode configurar quem pode submeter pedidos de pontuação a um modelo implementado como serviço web no Azure Kubernetes Service. 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 adicionar utilizadores a um espaço de trabalho, atribua-lhes uma das seguintes funções.

Funções 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 registos Azure Machine Learning têm um papel de Utilizador do Registo Azure Machine Learning que pode atribuir a um recurso do registo para conceder permissões ao nível do utilizador 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.

Funções 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, conceder a um utilizador de espaço de trabalho os papéis de Cientista de Dados AzureML e Operador de Computação AzureML para permitir que o utilizador realize experiências enquanto cria computações de forma auto-serviço.

Importante

Podes definir o acesso a funções a vários níveis no Azure. Por exemplo, alguém com acesso proprietário a um espaço de trabalho pode não ter acesso 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 2024-11-19, a identidade gerida atribuída pelo sistema que criar para o espaço de trabalho recebe automaticamente o papel de Contribuidor para o grupo de recursos que contém o espaço de trabalho. Os espaços de trabalho criados após esta data atribuem a identidade gerida atribuída pelo sistema ao papel 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 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.Search/searchServices/listAdminKeys/action",
                "Microsoft.Search/searchServices/privateEndpointConnections/*",
                "Microsoft.DataFactory/factories/*"
            ],
            "notActions": [],
            "dataActions": [],
            "notDataActions": []
        }
    ]
}

Converter uma identidade gerenciada pelo sistema existente para a função de Administrador de IA do Azure

Gorjeta

Converta os espaços de trabalho criados antes de 19/11/2024 para usar a função Azure AI Administrator. O papel de Administrador de IA Azure tem um âmbito mais restrito do que o papel de Contribuinte e segue o princípio do menor privilégio.

Para converter espaços de trabalho criados antes de 19/11/2024, utilize um dos seguintes métodos:

  • API REST Azure: Envie um PATCH pedido para a API REST do Azure para o espaço de trabalho. Defina o corpo do pedido para {"properties":{"allowRoleAssignmentOnRG":true}}. O exemplo seguinte mostra um pedido PATCH ao usar curl. Substitua <your-subscription>, <resource-group-name>, <workspace-name>e <YOUR-ACCESS-TOKEN> pelos valores para o seu cenário. Para mais informações sobre a utilização de APIs REST, consulte a documentação da API Azure REST.

    curl -X PATCH \
    "https://management.azure.com/subscriptions/<your-subscription>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>?api-version=2024-07-01-preview" \
    -H "Authorization: Bearer <YOUR-ACCESS-TOKEN>" \
    -H "Content-Type: application/json" \
    --data '{"properties":{"allowRoleAssignmentOnRG":true}}'
    

    Referência: Microsoft.MachineLearningServices/workspaces (2024-07-01-preview)

  • 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 chamado myworkspace. 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 como True e execute uma operação de atualização. O exemplo a seguir atualiza um espaço de trabalho chamado myworkspace. 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 o Azure CLI para atribuir o papel de Contribuidor 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:

  1. Crie um grupo de segurança.
  2. 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.
  3. Atribua ao grupo uma função RBAC no espaço de trabalho, como Cientista de Dados do AzureML, Leitor ou Colaborador.
  4. Adicione membros do grupo. Os membros ganham acesso ao espaço de trabalho.

Criar função personalizada

Se as funções incorporadas não corresponderem às suas necessidades, crie funções personalizadas. Funções personalizadas podem ter permissões de leitura, escrita, eliminação e computação de recursos 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

Para criar funções personalizadas dentro de um recurso, deve ser proprietário do recurso nesse nível.

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. Para mais exemplos, consulte 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 implementação, esta 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 mais informações sobre as operações (ações e não ações) que pode usar com funções personalizadas, consulte Operações do fornecedor 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

No Azure CLI, 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

No Azure CLI, execute o seguinte comando:

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

Precisas de permissões para todo o âmbito da definição do teu novo cargo. Por exemplo, se este novo papel abrange três subscrições, precisa de permissões para as três subscrições.

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 de atribuição de papéis para dependências de aprendizagem automática mostra como pode especificar atribuições de papéis, no código-fonte, para reutilização.

Cenários comuns

A tabela seguinte resume as atividades de Aprendizagem Automática do Azure e as permissões necessárias para as realizar no menor âmbito possível. 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, colaborador ou função personalizada que permite: Microsoft.Resources/deployments/*, Microsoft.MachineLearningServices/workspaces/write e permissões de gravação de recursos dependentes (consulte o ponto 3 abaixo) 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/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
  1. 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.

  2. 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.

  3. Esses cenários não incluem as permissões necessárias para criar recursos dependentes do espaço de trabalho. Para obter mais informações, consulte as permissões de gravação para Storage, OperationalInsights, Key Vault e Container Registry.

  4. Ao anexar identidades gerenciadas pelo usuário, você também precisa ter Microsoft.ManagedIdentity/userAssignedIdentities/assign/action permissão sobre as identidades. Para obter mais informações, consulte Funções internas do Azure para Identidade.

  5. Ao especificar uma sub-rede personalizada de computação sem servidor, você também precisa ter Microsoft.Network/virtualNetworks/subnets/join/action na rede virtual. Para obter mais informações, consulte Permissões do Azure para rede.

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

Existem certas diferenças entre as ações das APIs V1 e das 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/espaços de trabalho/conjuntos de dados/versões
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
Módulos e componentes Microsoft.MachineLearningServices/espaços de trabalho/módulos Microsoft.MachineLearningServices/espaços de trabalho/componentes

Pode tornar funcionalidades personalizadas compatíveis com as APIs V1 e V2 ao incluir ambas as ações, ou ao usar curingas que as incluam, como Microsoft.MachineLearningServices/workspaces/datasets/*/read.

Criar um espaço de trabalho usando uma chave gerenciada pelo cliente

Quando utiliza uma chave gerida pelo cliente (CMK), um Azure Key Vault armazena a chave. O utilizador ou principal do serviço que usa para criar o espaço de trabalho deve ter acesso do proprietário ou contribuidor ao cofre de chaves.

Se configurar o seu espaço de trabalho com uma identidade gerida atribuída pelo utilizador, conceda à identidade os seguintes papéis. Estes papéis permitem que a identidade gerida crie os recursos Azure Storage, Azure Cosmos DB e Azure Search quando utiliza uma chave gerida 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 mais informações sobre Azure RBAC com Identidades Geridas, consulte Como gerir a identidade atribuída pelo utilizador.

Operações MLflow

Para realizar operações MLflow com o seu espaço de trabalho Azure Machine Learning, utilize os seguintes âmbitos na 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 ou descrição do modelo registado, renomear o modelo registado existente, criar uma nova versão do modelo, atualizar a descrição da versão do modelo, transferir um modelo registado para uma das fases Microsoft.MachineLearningServices/workspaces/models/*/write
Apagar um modelo registado juntamente com todas as suas versões, eliminar versões específicas de um modelo registado Microsoft.MachineLearningServices/workspaces/models/*/delete

Exemplo de funções personalizadas

Cientista de dados

Use esta função para conceder a um cientista de dados permissão para realizar todas as operações dentro de um espaço de trabalho, exceto:

  • Criação de recursos computacionais.
  • Implementar modelos para um cluster AKS de produção.
  • Implementar um endpoint de pipeline em 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

Use este papel para conceder 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 recursos computacionais.
  • Implementar modelos para um cluster AKS de produção.
  • Implementar um endpoint de pipeline em 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

Use esta função para realizar todas as operações suportadas pelo MLflow do Azure Machine Learning exceto:

  • Criação de recursos computacionais.
  • Implementar modelos para um cluster AKS de produção.
  • Implementar um endpoint de pipeline em 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

Atribua esta função a um principal de serviço para automatizar os seus pipelines MLOps. Por exemplo, use-o para submeter execuções contra 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/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

Use esta função para realizar todas as operações dentro do âmbito 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 não consegue 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

O Azure fornece uma função incorporada para rotulagem de dados que é destinada exclusivamente à rotulagem de 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

Esteja atento aos seguintes pontos ao usar Azure RBAC:

  • Quando você cria um recurso no Azure, como um espaço de trabalho, você não é diretamente o proprietário do recurso. Herdas o teu papel do cargo de maior alcance para o qual estás autorizado nessa subscrição. Por exemplo, se for Administrador de Rede e tiver permissões para criar um espaço de trabalho de Machine Learning, é-lhe atribuído o papel de Administrador de Rede nesse espaço, 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. Este requisito significa que apenas os utilizadores com permissões de escrita no âmbito da subscrição podem definir uma quota ao nível da subscrição ou uma quota ao nível do espaço de trabalho para os seus recursos computacionais geridos.

  • Para implantar no estúdio, precisa de Microsoft.Resources/deployments/write e Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. Para implantações de SDK/CLI, você precisa de Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. Contacte o proprietário do seu espaço de trabalho ou grupo de recursos para obter permissões adicionais.

  • Quando existem duas atribuições de funções ao mesmo utilizador no Microsoft Entra com secções conflitantes de Ações e NãoAções, as operações listadas sob NãoAções de uma função podem não ter efeito se estiverem também listadas como Ações noutra função. Para saber mais sobre como o Azure analisa as atribuições de funções, veja Como o Azure RBAC 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.

Reverter para a função de Colaborador

Se você criar um novo espaço de trabalho e encontrar erros com a nova atribuição de função padrão do Administrador de IA do Azure para a identidade gerenciada do espaço de trabalho, use as seguintes etapas para reverter para a função de Colaborador:

Importante

Não volte ao papel de Contribuinte a menos que tenha problemas. Se reverter um espaço de trabalho resolver os problemas que está a encontrar, por favor registre um incidente de suporte com informações sobre os problemas resolvidos para que a equipa de produto possa investigar mais a fundo.

Se quiser reverter para o papel de Contribuinte como padrão para novos espaços de trabalho, abra um pedido de suporte com os detalhes da sua subscrição no Azure e peça que a sua subscrição seja alterada para usar o papel de Contribuinte como padrão para a identidade gerida atribuída pelo sistema dos novos espaços de trabalho.

  1. Apague a atribuição de função para a identidade gerida do espaço de trabalho. O âmbito para esta atribuição de função é o grupo de recursos que contém o espaço de trabalho, por isso deve eliminar a função do grupo de recursos.

    Gorjeta

    A identidade gerenciada atribuída ao sistema para o espaço de trabalho é a mesma que o nome do espaço de trabalho.

    A partir do portal Azure, vai ao grupo de recursos que contém o espaço de trabalho. Selecione Controle de acesso (IAM) e, em seguida, selecione Atribuições de função. Na lista de atribuições de função, localize a atribuição de função para a identidade gerenciada. Selecione-o e, em seguida, selecione Excluir.

    Para obter informações sobre como excluir uma atribuição de função, consulte Remover atribuições de função.

  2. Crie uma nova atribuição de função no grupo de recursos para a função de Colaborador . Quando adicionar esta atribuição de função, selecione a identidade gerida do espaço de trabalho como destinatário. O nome da identidade gerida atribuída pelo sistema é o mesmo que o nome do espaço de trabalho.

    1. A partir do portal Azure, vai ao grupo de recursos que contém o espaço de trabalho. Selecione Controle de acesso (IAM) e, em seguida, selecione Adicionar atribuição de função.
    2. Na guia Função, selecione Colaborador.
    3. Do separador Membros, selecione Identidade Gerida, + Selecionar membros e defina o menu suspenso Identidade Gerida para espaço de trabalho do Azure Machine Learning. Se o espaço de trabalho for um espaço de trabalho de hub, selecione hub de IA do Azure. No campo Selecionar, insira o nome do espaço de trabalho. Selecione o espaço de trabalho na lista e, em seguida, selecione Selecionar.
    4. Na guia Revisar + atribuir, selecione Revisar + atribuir.