Autenticação para pontos de extremidade online gerenciados

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 de pontos de extremidade online. Começamos com uma discussão sobre Microsoft Entra IDs que dão suporte ao RBAC do Azure. Dependendo da finalidade da identidade do Microsoft Entra, nos referimos a ela como uma identidade de usuário ou uma identidade de ponto de extremidade.

Uma identidade do usuário é um Microsoft Entra ID que você pode usar para criar um ponto de extremidade e suas implantações ou usar para interagir com pontos de extremidade ou workspaces. Em outras palavras, uma identidade pode ser considerada uma identidade de usuário se estiver emitindo solicitações para pontos de extremidade, implantações ou workspaces. A identidade do usuário precisaria de permissões adequadas para executar operações de plano 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. Em outras palavras, se a identidade estiver associada ao ponto de extremidade e usada para o contêiner de usuário para a implantação, ela será chamada de identidade de ponto de extremidade. A identidade do ponto de extremidade também precisaria de permissões adequadas para que o contêiner de usuário interaja com os recursos conforme necessário. Por exemplo, a identidade do ponto de extremidade precisaria das permissões adequadas para extrair imagens do Registro de Contêiner do Azure ou interagir com outros serviços do Azure.

Em geral, a identidade do usuário e a identidade do ponto de extremidade terão 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. Para obter mais informações sobre o caso especial de adição automática de permissão extra para segredos, consulte Permissões adicionais para identidade do usuário.

Limitação

A autenticação do Microsoft Entra ID (aad_token) tem suporte para pontos de extremidade online gerenciados apenas. Para pontos de extremidade online do Kubernetes, você pode usar uma chave ou um token do Azure Machine Learning (aml_token).

Permissões necessárias para a identidade do usuário

Ao entrar no locatário do Azure com sua conta da Microsoft (por exemplo, usando az login), você conclui a etapa de autenticação do usuário (comumente conhecida como authn) e sua identidade como usuário é determinada. Agora, digamos que você queira criar um ponto de extremidade online em um workspace, precisará da permissão adequada para fazer isso. É aí que entra a autorização (comumente conhecida como authz).

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 plano de controle, você tem uma maneira de autenticar um cliente no workspace: usando um token do Microsoft Entra.

Dependendo do caso de uso, você pode escolher entre vários fluxos de trabalho de autenticação para obter esse token. Sua identidade de usuário também precisa ter um RBAC (controle de acesso baseado em função) do Azure adequado permitido para acesso aos seus recursos.

Autorização para operações do plano de controle

Para operações de plano de controle, sua identidade de usuário precisa ter um RBAC (controle de acesso baseado em função) do Azure adequado permitido para acesso aos seus recursos. Especificamente, para operações CRUD em pontos de extremidade e implantações online, você precisa da identidade para ter a função atribuída com as seguintes ações:

Operação Função RBAC do Azure obrigatória Escopo para o qual a função é atribuída
Criar/atualizar operações em pontos de extremidade e implantações online Proprietário, colaborador ou qualquer função permitindo Microsoft.MachineLearningServices/workspaces/onlineEndpoints/write workspace
Excluir operações em pontos de extremidade e implantações online Proprietário, colaborador ou qualquer função permitindo Microsoft.MachineLearningServices/workspaces/onlineEndpoints/delete workspace
Criar/atualizar/excluir operações em pontos de extremidade e implantações online por meio do Estúdio do Azure Machine Learning Proprietário, colaborador ou qualquer função permitindo Microsoft.Resources/deployments/write O nome do grupo de recursos em que o workspace está
Ler operações em pontos de extremidade e implantações online Proprietário, colaborador ou qualquer função permitindo Microsoft.MachineLearningServices/workspaces/onlineEndpoints/read workspace
Buscar um token do Azure Machine Learning (aml_token) para invocar pontos de extremidade online (gerenciados e Kubernetes) do workspace Proprietário, colaborador ou qualquer função permitindo Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action endpoint
Buscar uma chave para invocar pontos de extremidade online (gerenciados e Kubernetes) do workspace Proprietário, colaborador ou qualquer função permitindo Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listKeys/action endpoint
Regenerar chave para pontos de extremidade online (gerenciados e Kubernetes) Proprietário, colaborador ou qualquer função permitindo Microsoft.MachineLearningServices/workspaces/onlineEndpoints/regenerateKeys/action endpoint
Buscar um token do Microsoft Entra (aad_token) para invocar pontos de extremidade onlinegerenciados Não requer uma função. não aplicável

Observação

Você pode buscar o token do Microsoft Entra (aad_token) diretamente no Microsoft Entra ID quando estiver conectado e não precisar de permissão adicional do RBAC do Azure no workspace.

Permissões adicionais para a identidade do usuário ao impor acesso a repositórios de segredos padrão

Se você pretende usar o recurso injeção de segredos e, ao criar os pontos de extremidade, você definiu o sinalizador para impor o acesso aos repositórios de segredos padrão, sua identidade do usuário precisará ter permissão para ler segredos de conexões de workspace.

Quando o ponto de extremidade é criado com uma identidade atribuída pelo sistema (SAI) e o sinalizador é definido para impor o acesso aos repositórios de segredos padrão, sua identidade do usuário precisa ter permissões para ler segredos de conexões de workspace ao criar o ponto de extremidade e as implantações no ponto de extremidade. 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 não tiver permissões para ler segredos de conexões de workspace, mas tentar criar o ponto de extremidade com uma SAI e o sinalizador do ponto de extremidade definido para impor o acesso aos repositórios de segredos padrão, a criação do ponto de extremidade será rejeitada.

  • Da mesma forma, se uma identidade de usuário não tiver permissões para ler segredos de conexões de workspace, mas tentar criar uma implantação no ponto de extremidade com uma SAI e o sinalizador do ponto de extremidade definido para impor o acesso aos repositórios de segredos padrão, a criação da implantação será rejeitada.

Quando (1) o ponto de extremidade é criado com uma UAI ou (2) o sinalizador não é definido para impor o acesso aos repositórios de segredos padrão, mesmo que o ponto de extremidade use uma SAI, sua identidade de usuário não precisa ter permissões para ler segredos de conexões de workspace. Nesse caso, a identidade do ponto de extremidade não receberá automaticamente a permissão para ler segredos, mas você ainda pode conceder manualmente à identidade do ponto de extremidade essa permissão atribuindo funções adequadas, se necessário. Independentemente de a atribuição de função ter sido feita de forma automática ou manual, a recuperação e a injeção de segredo ainda serão disparadas se você mapeou as variáveis de ambiente com referências secretas na definição de implantação e usará a identidade do ponto de extremidade para fazer isso.

Para obter mais informações sobre como gerenciar a autorização para um workspace do Azure Machine Learning, consulte Gerenciar o acesso ao Azure Machine Learning.

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

Operações do plano de dados não alteram os pontos de extremidade online, em vez disso, eles usam dados para interagir 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 três maneiras de autenticar um cliente para enviar solicitações para o URI de pontuação de um ponto de extremidade:

  • chave
  • Token do Azure Machine Learning (aml_token)
  • Token do 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, sua identidade de usuário precisa ter um RBAC (controle de acesso baseado em função) do Azure adequado permitido para acesso aos seus recursos, somente se o ponto de extremidade estiver definido para usar o token do Microsoft Entra (aad_token). Especificamente, para operações de plano de dados em pontos de extremidade e implantações online, você precisa da identidade para ter a função atribuída com as seguintes ações:

Operação Função RBAC do Azure obrigatória Escopo para o qual a função é atribuída
Invoque pontos de extremidade online com chave ou token Azure Machine Learning (aml_token). Não requer uma função. Não aplicável
Invoque pontos de extremidade online gerenciado com o token do Microsoft Entra (aad_token). Proprietário, colaborador ou qualquer função permitindo Microsoft.MachineLearningServices/workspaces/onlineEndpoints/score/action endpoint
Invoque pontos de extremidade online do Kubernetes com o token do Microsoft Entra (aad_token). Não requer uma função. 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. Essa identidade de ponto de extremidade pode ser uma identidade atribuída ao sistema (SAI) ou uma identidade atribuída ao usuário (UAI). Você pode decidir se deseja usar um SAI ou um UAI ao criar o ponto de extremidade.

  • Para uma identidade atribuída pelo sistema, 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 do Registro de Contêiner do Azure e o leitor de dados de blob de armazenamento) são atribuídas automaticamente.
  • Para uma identidade atribuída pelo usuário, você precisa primeiro criar a identidade e, em seguida, associá-la ao ponto de extremidade ao criá-lo. 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 uma identidade atribuída pelo sistema, algumas função serão atribuídas à identidade do ponto de extremidade para sua conveniência.

Função Descrição Condição para a atribuição automática de função
AcrPull Permite que a identidade do ponto de extremidade efetue pull de imagens do ACR (Registro de Contêiner do Azure) associado ao workspace. A identidade do ponto de extremidade é uma SAI (identidade atribuída pelo sistema).
Storage Blob Data Reader Permite que a identidade do ponto de extremidade leia blobs do armazenamento de dados padrão do workspace. A identidade do ponto de extremidade é uma SAI (identidade atribuída pelo sistema).
AzureML Metrics Writer (preview) Permite que a identidade do ponto de extremidade grave métricas no workspace. A identidade do ponto de extremidade é uma SAI (identidade atribuída pelo sistema).
Azure Machine Learning Workspace Connection Secrets Reader1 Permite que a identidade do ponto de extremidade leia segredos de conexões de workspace. A identidade do ponto de extremidade é uma SAI (identidade atribuída pelo sistema). O ponto de extremidade é criado com um sinalizador para impor o acesso aos repositórios de segredos padrão. A identidade do usuário que cria o ponto de extremidade tem a mesma permissão para ler segredos de conexões de workspace. 2

1 Para obter mais informações sobre a funçãoAzure Machine Learning Workspace Connection Secrets Reader, consulte Atribuir permissões à identidade.

2 Mesmo que a identidade do ponto de extremidade seja uma SAI, se o sinalizador de imposição não for definido ou a identidade do usuário não tiver a permissão, não haverá atribuição automática de função para essa função. 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 identidade atribuída pelo usuário, não haverá atribuição automática de função. Nesse caso, será necessário atribuir funções manualmente à identidade do ponto de extremidade conforme necessário.

Escolha de permissões e o escopo da autorização

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 ponto de partida e podem ser estendidos conforme necessário.

Exemplos para identidade de usuário

  • Para controlar todas as operações listadas na tabela anterior para operações de plano de controle e a tabela para operações de plano de dados , você pode considerar o uso de uma função interna AzureML Data Scientist que inclua a ação de permissão Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*/actions.
  • Para controlar as operações de um ponto de extremidade específico, considere usar o escopo /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>/onlineEndpoints/<endpointName>.
  • Para controlar as operações de todos os pontos de extremidade, considere usar o escopo /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>.

Exemplos para identidade de ponto de extremidade

  • Para permitir que o contêiner de usuário leia blobs, considere usar uma função interna Storage Blob Data Reader que inclua a ação de dados de permissão Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read.

Para obter mais informações sobre diretrizes para operações de plano de controle, consulte 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.