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_token gerenciados 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 Reader 1 |
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çãoMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/*/actions
de 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çãoMicrosoft.Storage/storageAccounts/blobServices/containers/blobs/read
de 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.