Autenticação para pontos de extremidade online gerenciados

APLICA-SE A:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)

Este artigo explica os conceitos de identidade e permissão no contexto de endpoints online. Começamos com uma discussão sobre as IDs do Microsoft Entra que suportam o Azure RBAC. 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 de usuário é uma ID do Microsoft Entra que você pode usar para criar um ponto de extremidade e suas implantações, ou usar para interagir com pontos de extremidade ou espaços de trabalho. 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 espaços de trabalho. 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 espaços de trabalho.

Uma identidade de ponto de extremidade é uma ID do Microsoft Entra que executa o contêiner do usuário em implantações. Em outras palavras, se a identidade estiver associada ao ponto de extremidade e for 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 do 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 para interagir com outros serviços do Azure.

Em geral, a identidade do usuário e a identidade do ponto de extremidade teriam 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 adicionar automaticamente 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) é suportada apenas para pontos de extremidade online gerenciados. 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

Quando inicia sessão no seu inquilino do Azure com a sua conta Microsoft (por exemplo, utilizando az login), conclui o passo de autenticação do utilizador (vulgarmente conhecido como authn) e a sua identidade como utilizador é determinada. Agora, digamos que você queira criar um ponto de extremidade online em um espaço de trabalho, você precisará da permissão adequada para fazê-lo. É aqui que entra a autorização (vulgarmente conhecida como authz).

Controlar as operações do avião

Controle as operações do plano, controle e altere os pontos finais online. Essas operações 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 de plano de controle vão para o espaço de trabalho do Azure Machine Learning.

Autenticação para operações de avião de controlo

Para operações de plano de controle, você tem uma maneira de autenticar um cliente no espaço de trabalho: usando um token do Microsoft Entra.

Dependendo do seu 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 controle de acesso baseado em função do Azure (Azure RBAC) adequado permitido para acesso aos seus recursos.

Autorização para operações de aviões de controlo

Para operações de plano de controle, sua identidade de usuário precisa ter um controle de acesso baseado em função do Azure (Azure RBAC) 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 necessária Âmbito para o qual a função está atribuída
Criar/atualizar operações em endpoints e implantações online Proprietário, colaborador ou qualquer função que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/write área de trabalho
Excluir operações em pontos de extremidade e implantações online Proprietário, colaborador ou qualquer função que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/delete área de trabalho
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 que permita Microsoft.Resources/deployments/write grupo de recursos ao qual o espaço de trabalho pertence
Ler operações em endpoints e implantações on-line Proprietário, colaborador ou qualquer função que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/read área de trabalho
Buscar um token do Azure Machine Learning () para invocar pontos de extremidade online (aml_tokengerenciados e Kubernetes) do espaço de trabalho Proprietário, colaborador ou qualquer função que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action endpoint
Buscar uma chave para invocar pontos de extremidade online (gerenciados e Kubernetes) no espaço de trabalho Proprietário, colaborador ou qualquer função que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listKeys/action endpoint
Regenerar chaves para endpoints online (gerenciados e Kubernetes) Proprietário, colaborador ou qualquer função que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/regenerateKeys/action endpoint
Buscar um token Microsoft Entra (aad_token) para invocar pontos de extremidade online gerenciados Não requer uma função. não aplicável

Nota

Você pode buscar seu token do Microsoft Entra (aad_token) diretamente da ID do Microsoft Entra depois de entrar e não precisa de permissão extra do RBAC do Azure no espaço de trabalho.

Permissões adicionais para a identidade do usuário ao impor o acesso a armazenamentos secretos padrão

Se você pretende usar o recurso de injeção secreta e, ao criar seus pontos de extremidade, define o sinalizador para impor o acesso aos armazenamentos secretos padrão, sua identidade de usuário precisa ter a permissão para ler segredos de conexões de espaço de trabalho.

Quando o ponto de extremidade é criado com uma identidade atribuída pelo sistema (SAI) e o sinalizador é definido para impor o acesso aos armazenamentos secretos padrão, sua identidade de usuário precisa ter permissões para ler segredos de conexões de espaço de trabalho ao criar o ponto de extremidade e criar a(s) implantação(ões) sob o ponto de extremidade. Essa restrição garante que apenas uma identidade de usuário com permissão para ler segredos possa conceder à identidade do ponto de extremidade a permissão para ler segredos.

  • Se uma identidade de usuário não tiver as permissões para ler segredos de conexões de espaço de trabalho, mas tentar criar o ponto de extremidade com um SAI e o sinalizador do ponto de extremidade definido para impor o acesso aos armazenamentos secretos padrão, a criação do ponto de extremidade será rejeitada.

  • Da mesma forma, se uma identidade de usuário não tiver as permissões para ler segredos de conexões de espaço de trabalho, mas tentar criar uma implantação sob o ponto de extremidade com um SAI e o sinalizador do ponto de extremidade definido para impor o acesso aos armazenamentos secretos padrão, a criação da implantação será rejeitada.

Quando (1) o ponto de extremidade é criado com um UAI, ou (2) o sinalizador não está definido para impor o acesso aos armazenamentos secretos padrão, mesmo que o ponto de extremidade use um SAI, sua identidade de usuário não precisa ter permissões para ler segredos de conexões de espaço de trabalho. Nesse caso, a identidade do ponto de extremidade não receberá automaticamente a permissão para ler segredos, mas você ainda poderá conceder manualmente essa permissão à identidade do ponto de extremidade atribuindo funções adequadas, se necessário. Independentemente de a atribuição de função ter sido feita automaticamente ou manualmente, a recuperação e a injeção secretas ainda serão acionadas se você tiver mapeado as variáveis de ambiente com referências secretas na definição de implantação, e ela usará a identidade do ponto de extremidade para fazer isso.

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

Para obter mais informações sobre injeção secreta, consulte Injeção secreta em endpoints online.

Operações do plano de dados

As 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 dele. Para pontos de extremidade e implantações online, as solicitações 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 de 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 ao URI de pontuação de um ponto de extremidade:

  • key
  • Token do Azure Machine Learning (aml_token)
  • 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 de planos de dados

Para operações de plano de dados, sua identidade de usuário precisa ter um controle de acesso baseado em função do Azure (Azure RBAC) adequado permitido para acessar seus recursos, somente se o ponto de extremidade estiver definido para usar o token 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 necessária Âmbito para o qual a função está atribuída
Invoque pontos de extremidade online com chave ou token do Azure Machine Learning (aml_token). Não requer uma função. Não aplicável
Invoque pontos de extremidade online gerenciados com o token Microsoft Entra (aad_token). Proprietário, colaborador ou qualquer função que permita Microsoft.MachineLearningServices/workspaces/onlineEndpoints/score/action endpoint
Invoque pontos de extremidade online do Kubernetes com o token 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 a identidade do ponto de extremidade, ou seja, a identidade gerenciada associada ao ponto de extremidade. A identidade do ponto de extremidade é uma ID do Microsoft Entra que dá suporte ao Azure RBAC. 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 pelo sistema (SAI) ou uma identidade atribuída pelo 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 ao sistema, a identidade é criada automaticamente quando você cria o ponto de extremidade, e 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 criar a identidade primeiro e, em seguida, 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 identidade de ponto de extremidade

Se a identidade do ponto de extremidade for uma identidade atribuída pelo sistema, algumas funções serão atribuídas à identidade do ponto de extremidade por conveniência.

Função Description Condição para a atribuição automática de funções
AcrPull Permite que a identidade do ponto de extremidade extraia imagens do Registro de Contêiner do Azure (ACR) associado ao espaço de trabalho. A identidade do ponto de extremidade é uma identidade atribuída pelo sistema (SAI).
Storage Blob Data Reader Permite que a identidade do ponto de extremidade leia blobs do armazenamento de dados padrão do espaço de trabalho. A identidade do ponto de extremidade é uma identidade atribuída pelo sistema (SAI).
AzureML Metrics Writer (preview) Permite que a identidade do ponto de extremidade escreva métricas no espaço de trabalho. A identidade do ponto de extremidade é uma identidade atribuída pelo sistema (SAI).
Azure Machine Learning Workspace Connection Secrets Reader1 Permite que a identidade do ponto de extremidade leia segredos de conexões de espaço de trabalho. A identidade do ponto de extremidade é uma identidade atribuída pelo sistema (SAI). O ponto de extremidade é criado com um sinalizador para impor o acesso aos repositórios secretos 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 espaço de trabalho. 2

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

2 Mesmo que a identidade do ponto de extremidade seja SAI, se o sinalizador de imposição não estiver 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 ponto de extremidade online com injeção secreta.

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, você precisa atribuir manualmente funções à identidade do ponto de extremidade, conforme necessário.

Escolhendo as 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 de negócios. Os exemplos a seguir servem como ponto de partida e podem ser estendidos conforme necessário.

Exemplos de identidade do utilizador

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

Exemplos de identidade de ponto de extremidade

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

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 Azure RBAC. Para entender o escopo das funções atribuídas, consulte Entender o escopo do RBAC do Azure.