Autenticação e autorização para pontos de extremidade online
APLICA-SE A:Extensão de ML da CLI do Azure v2 (atual)SDK do Python azure-ai-ml v2 (atual)
Este artigo explica os conceitos de identidade e permissão no contexto dos pontos de extremidade online do Azure Machine Learning. O artigo discorre sobre Microsoft Entra IDs que dão suporte a permissões e controle de acesso baseado em função. Uma Microsoft Entra ID é chamada de identidade de usuário ou identidade de ponto de extremidade, dependendo da finalidade.
Uma identidade de usuário é um Microsoft Entra ID que pode criar um ponto de extremidade e suas implantações ou interagir com pontos de extremidade ou workspaces. Uma identidade de usuário emite solicitações para pontos de extremidade, implantações ou workspaces. A identidade do usuário precisa de permissões adequadas para executar operações de painel de controle e plano de dados nos pontos de extremidade ou workspaces.
Uma identidade de ponto de extremidade é um Microsoft Entra ID que executa o contêiner de usuário em implantações. O contêiner de usuário usa a identidade do ponto de extremidade para a implantação. A identidade do ponto de extremidade também precisa de permissões adequadas para que o contêiner do usuário interaja com os recursos conforme necessário. Por exemplo, a identidade do ponto de extremidade precisa das permissões adequadas para efetuar pull de imagens do Registro de Contêiner do Azure ou para interagir com outros serviços do Azure.
A identidade do usuário e a identidade do ponto de extremidade têm requisitos de permissão separados. Para obter mais informações sobre como gerenciar identidades e permissões, consulte Como autenticar clientes para pontos de extremidade online.
Importante
A autenticação do aad_token
do Microsoft Entra ID tem suporte apenas para pontos de extremidade online gerenciados. Para pontos de extremidade online do Kubernetes, você pode usar uma chave ou um aml_token
do Azure Machine Learning.
Permissões e escopo para autorização
O controle de acesso baseado em função (RBAC) do Azure permite definir e atribuir funções com um conjunto de ações permitidas e/ou negadas em escopos específicos. Você pode personalizar essas funções e escopos de acordo com suas necessidades comerciais. Os exemplos a seguir servem como um ponto de partida que você pode estender conforme necessário.
Para a identidade do usuário:
- Para gerenciar operações de plano de controle e plano de dados, você pode usar a função interna AzureML Data Scientist que inclui a ação de permissão
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*/actions
. - Para controlar as operações de um ponto de extremidade específico, use o escopo
/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>/onlineEndpoints/<endpointName>
. - Para controlar as operações de todos os pontos de extremidade em um workspace, use o escopo
/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>
.
Para a identidade do ponto de extremidade, para permitir que o contêiner do usuário leia blobs, a função interna Leitor de Dados de Blob de Armazenamento inclui a ação de dados de permissão Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
.
Para obter mais informações sobre como gerenciar a autorização para workspaces do Azure Machine Learning, confira Gerenciar o acesso ao Azure Machine Learning. Para obter mais informações sobre definição de função, escopo e atribuição de função, consulte RBAC do Azure. Para entender o escopo das funções atribuídas, consulte Noções básicas sobre o escopo do RBAC do Azure.
Permissões necessárias para a identidade do usuário
Ao entrar no locatário do Azure com a sua conta Microsoft, por exemplo, ao usar az login
, você conclui a etapa de autenticação do usuário authn que determina a sua identidade como usuário. Para criar um ponto de extremidade online em um workspace do Azure Machine Learning, a sua identidade precisa da permissão adequada, também chamada de autorização ou authz. As identidades do usuário precisam de permissões apropriadas para executar operações do plano de controle e do plano de dados.
Operações de plano de controle
Operações do plano de controle controlam e alteram os pontos de extremidade online. Essas operações de painel de controle incluem operações de criação, leitura, atualização e exclusão (CRUD) em pontos de extremidade online e implantações online. Para pontos de extremidade e implantações online, as solicitações para executar operações do plano de controle vão para o workspace do Azure Machine Learning.
Autenticação para operações do plano de controle
Para operações de painel de controle, use um token do Microsoft Entra para autenticar um cliente no workspace. Dependendo do caso de uso, você pode escolher entre vários fluxos de trabalho de autenticação para obter esse token. A identidade do usuário também precisa ter a função RBAC adequada do Azure atribuída para acessar recursos.
Autorização para operações do plano de controle
Para operações de painel de controle, a sua identidade de usuário precisa ter a função RBAC adequada do Azure atribuída para acessar os seus recursos. Especificamente, para operações CRUD em pontos de extremidade e implantações online, a identidade do usuário precisa ter funções atribuídas para as seguintes ações:
Operação | Função RBAC do Azure obrigatória | Escopo |
---|---|---|
Execute operações de criação/atualização em pontos de extremidade e implantações online. | Proprietário, Colaborador ou qualquer função que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/write |
Workspace |
Execute operações de exclusão em pontos de extremidade e implantações online. | Proprietário, Colaborador ou qualquer função que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/delete |
Workspace |
Execute operações de criação/atualização/exclusão em pontos de extremidade e implantações online por meio do Estúdio do Azure Machine Learning. | Proprietário, Colaborador ou qualquer função que permita Microsoft.Resources/deployments/write |
Grupo de recursos que contém os workspace |
Execute operações de leitura em pontos de extremidade e implantações online. | Proprietário, Colaborador ou qualquer função que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/read |
Workspace |
Busque um token do Azure Machine Learning (aml_token ) para invocar pontos de extremidade online gerenciados e do Kubernetes do workspace. |
Proprietário, Colaborador ou qualquer função que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action |
Ponto de extremidade |
Busque uma chave para invocar pontos de extremidade online (gerenciados e do Kubernetes) no workspace. | Proprietário, Colaborador ou qualquer função que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listKeys/action |
Ponto de extremidade |
Regenere as chaves para pontos de extremidade online gerenciados e do Kubernetes. | Proprietário, Colaborador ou qualquer função que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/regenerateKeys/action |
Ponto de extremidade |
Busque um aad_token do Microsoft Entra para invocar pontos de extremidade online gerenciados. |
Não requer uma função | Não aplicável* |
* Você pode buscar o seu aad_token
do Microsoft Entra diretamente do Microsoft Entra ID depois de entrar, para que a operação não exija permissão do RBAC do Azure no workspace.
Permissões para que a identidade do usuário imponha o acesso a repositórios de segredos padrão
Se você usar o recurso de injeção de segredo e definir o sinalizador para impor o acesso aos repositórios de segredo padrão ao criar pontos de extremidade, a sua identidade de usuário deverá ter permissão para ler segredos de conexões de workspace.
Uma identidade de ponto de extremidade pode ser uma identidade atribuída pelo sistema (SAI) ou uma UAI (identidade atribuída pelo usuário). Quando o ponto de extremidade é criado com um SAI e o sinalizador para impor o acesso aos repositórios de segredos padrão é definido, uma identidade de usuário deve ter permissões para ler segredos de conexões de workspace ao criar um ponto de extremidade e implantações. Essa restrição garante que apenas uma identidade do usuário com a permissão para ler segredos pode conceder à identidade do ponto de extremidade a permissão para ler segredos.
Se uma identidade de usuário que não tem permissão para ler segredos de conexões de workspace tentar criar um ponto de extremidade ou uma implantação com um SAI, e o sinalizador do ponto de extremidade estiver definido para impor o acesso aos repositórios de segredos padrão, o ponto de extremidade ou a criação da implantação serão rejeitados.
Se o ponto de extremidade for criado com uma UAI ou o ponto de extremidade usar um SAI, mas o sinalizador para impor o acesso aos repositórios de segredos padrão não estiver definido, a identidade do usuário não precisará ser capaz de ler segredos de conexões de workspace para criar um ponto de extremidade ou implantação. Neste caso, a identidade do ponto de extremidade não recebe automaticamente a permissão para ler segredos, mas pode receber manualmente essa permissão sendo atribuída a função adequada.
Independentemente de a atribuição de função ser automática ou manual, a recuperação de segredo e a injeção serão disparadas se você tiver mapeado as variáveis de ambiente com referências de segredo no ponto de extremidade ou na definição de implantação. O recurso de injeção de segredo usa a identidade do ponto de extremidade para fazer a recuperação e a injeção de segredo. Para obter mais informações sobre a injeção de segredos, consulte Injeção de segredos em pontos de extremidade.
Operações do plano de dados
As operações de plano de dados não alteram os pontos de extremidade online, mas usam dados que interagem com os pontos de extremidade. Um exemplo de uma operação de plano de dados é enviar uma solicitação de pontuação para um ponto de extremidade online e obter uma resposta dela. Para pontos de extremidade e implantações online, os pedidos para executar operações de plano de dados vão para o URI de pontuação do ponto de extremidade.
Autenticação para operações do plano de dados
Para operações de plano de dados, você pode escolher entre as seguintes maneiras de autenticar um cliente para enviar solicitações para o URI de pontuação de um ponto de extremidade:
- Chave
- Azure Machine Learning
aml_token
- Microsoft Entra
aad_token
Para obter mais informações sobre como autenticar clientes para operações de plano de dados, consulte Como autenticar clientes para pontos de extremidade online.
Autorização para operações do plano de dados
Para operações de plano de dados, a sua identidade de usuário precisa de funções RBAC do Azure adequadas para permitir o acesso aos seus recursos somente se o ponto de extremidade estiver definido para usar o aad_token
do Microsoft Entra. Para operações de plano de dados em pontos de extremidade e implantações online, a identidade do usuário precisa ter uma função atribuída com as seguintes ações:
Operação | Função RBAC do Azure obrigatória | Escopo |
---|---|---|
Invoque pontos de extremidade online com key ou com o Azure Machine Learning aml_token . |
Não requer uma função. | Não aplicável |
Invoque pontos de extremidade online gerenciados com o Microsoft Entra aad_token . |
Proprietário, Colaborador ou qualquer função que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/score/action |
Ponto de extremidade |
Invocar pontos de extremidade online do Kubernetes com o Microsoft Entra aad_token . |
O ponto de extremidade online do Kubernetes não dá suporte ao token do Microsoft Entra para operações de plano de dados. | Não aplicável |
Permissões necessárias para a identidade do ponto de extremidade
Uma implantação online executa seu contêiner de usuário com o a identidade do ponto de extremidade, ou seja, a identidade gerenciada associada ao ponto de extremidade. A identidade do ponto de extremidade é um Microsoft Entra ID que dá suporte ao RBAC do Azure. Portanto, você pode atribuir funções do Azure à identidade do ponto de extremidade para controlar as permissões necessárias para executar operações. Esta identidade de ponto de extremidade pode ser um SAI ou um UAI. Você pode decidir se deseja usar um SAI ou um UAI ao criar o ponto de extremidade.
- Para um SAI, a identidade é criada automaticamente quando você cria o ponto de extremidade e as funções com permissões fundamentais, como a permissão de pull AcrPull do Registro de Contêiner e a permissão Leitor de Dados do Blob de Armazenamento, são atribuídas automaticamente.
- Para um UAI, você precisa criar a identidade primeiro e associá-la ao ponto de extremidade ao criar o ponto de extremidade. Você também é responsável por atribuir funções adequadas à UAI conforme necessário.
Atribuição automática de função para a identidade do ponto de extremidade
Se a identidade do ponto de extremidade for um SAI, as seguintes funções serão atribuídas à identidade do ponto de extremidade por praticidade.
Função | Descrição | Condição para atribuição automática de função |
---|---|---|
AcrPull | Permite que a identidade do ponto de extremidade extraia imagens do Registro de Contêiner do Azure associado ao workspace | A identidade do ponto de extremidade é um SAI. |
Leitor de Dados do Blob de Armazenamento | Permite que a identidade do ponto de extremidade leia blobs do armazenamento de dados padrão do workspace | A identidade do ponto de extremidade é um SAI. |
Gravador de Métricas do AzureML (versão prévia) | Permite que a identidade do ponto de extremidade grave métricas no workspace | A identidade do ponto de extremidade é um SAI. |
Leitor de Segredos de Conexão do Workspace do Azure Machine Learning | Permite que a identidade do ponto de extremidade leia segredos de conexões do workspace | A identidade do ponto de extremidade é um SAI e a criação do ponto de extremidade tem um sinalizador para impor o acesso aos repositórios de segredo padrão. A identidade do usuário que cria o ponto de extremidade também tem permissão para ler segredos de conexões do workspace. |
- Se a identidade do ponto de extremidade for um SAI e o sinalizador de imposição não estiver definido ou a identidade do usuário não tiver permissão para ler segredos, não haverá atribuição automática de função para a função Leitor de Segredos de Conexão do Workspace do Azure Machine Learning. Para obter mais informações, consulte Como implantar o ponto de extremidade online com injeção de segredos.
- Se a identidade do ponto de extremidade for uma UAI, não haverá atribuição automática de função para a função Leitor de Segredos de Conexão do Workspace do Azure Machine Learning. Nesse caso, será necessário atribuir funções manualmente à identidade do ponto de extremidade conforme necessário.
Para obter mais informações sobre a função Leitor de Segredos de Conexão do Workspace do Azure Machine Learning, confira Atribuir permissões à identidade.