Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
APLICA-SE A:
CLI do Azure ml extension v2 (current)
Python SDK azure-ai-ml v2 (current)
Ao implementar um modelo de aprendizagem automática num ponto final online gerido, é possível proteger a comunicação com o ponto final online utilizando pontos de extremidade privados. Neste artigo, aprende como um endpoint privado pode garantir a comunicação de entrada para um endpoint online gerido. Também se aprende como uma rede virtual gerida por workspace pode proporcionar comunicação segura entre implementações e recursos.
Você pode proteger solicitações de pontuação de entrada de clientes para um endpoint online e proteger as comunicações de saída entre uma implementação, os recursos do Azure que ela usa e recursos privados. Configuras a segurança para comunicação de entrada e saída separadamente. Para obter mais informações sobre pontos finais e implementações, consulte O que são pontos finais e implementações.
O diagrama de arquitetura a seguir mostra como as comunicações fluem através de pontos finais privados para o ponto final online gerido. As solicitações de pontuação recebidas da rede virtual de um cliente fluem através do ponto final privado do espaço de trabalho para o ponto final online gerido. As comunicações de saída de implantações para serviços são tratadas por meio de pontos de extremidade privados da rede virtual gerenciada do espaço de trabalho para essas instâncias de serviço.
Nota
- Este artigo foca-se no isolamento de rede através da utilização da rede virtual gerida do espaço de trabalho. Para obter uma descrição do método herdado para isolamento de rede, no qual o Azure Machine Learning cria uma rede virtual gerenciada para cada implantação em um ponto de extremidade, consulte o Apêndice.
- Cada implantação é isolada de outras implantações, independentemente da comunicação de entrada e saída discutida neste artigo. Ou seja, mesmo com endpoints e implementações que permitem acesso à internet de entrada e saída, existe um isolamento de rede entre implementações, que impede qualquer implementação de se ligar diretamente a outras implementações.
Limitações
O
v1_legacy_modesinalizador deve ser definido parafalsedesativar o modo herdado v1 em seu espaço de trabalho do Azure Machine Learning. Se essa configuração estiver ativada, não será possível criar um ponto de extremidade online gerenciado. Para obter mais informações, consulte Alteração de isolamento de rede com nossa nova plataforma de API no Azure Resource Manager.Se o seu espaço de trabalho do Azure Machine Learning tiver um ponto de extremidade privado que foi criado antes de 24 de maio de 2022, você deverá recriar esse ponto de extremidade privado antes de configurar seus pontos de extremidade online para usar pontos de extremidade privados. Para obter mais informações sobre como criar um ponto de extremidade privado para seu espaço de trabalho, consulte Configurar um ponto de extremidade privado para um espaço de trabalho do Azure Machine Learning.
Dica
Para ver a data de criação de um espaço de trabalho, você pode verificar as propriedades do espaço de trabalho.
- No estúdio do Azure Machine Learning, vá para o canto superior direito e selecione o nome do seu espaço de trabalho.
- Na janela Diretório + Subscrição + Espaço de Trabalho, selecione Ver todas as propriedades no portal Azure.
- Na página Visão geral do portal do Azure, vá para o canto superior direito e selecione Exibição JSON.
- Na janela JSON de recursos, em Versões da API, selecione a versão mais recente da API.
-
propertiesNa seção do código JSON, verifique o valorcreationTime.
Como alternativa, use um dos seguintes métodos:
-
SDK do Python:
Workspace.get(name=<workspace-name>, subscription_id=<subscription-ID>, resource_group=<resource-group-name>).get_details() -
API REST:
curl https://management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/?api-version=2023-10-01 -H "Authorization:Bearer <access-token>" -
PowerShell:
Get-AzMLWorkspace -Name <workspace-name> -ResourceGroupName <resource-group-name>
Ao usares o isolamento de rede para ajudar a proteger pontos de extremidade online, podes utilizar recursos associados ao espaço de trabalho provenientes de um grupo de recursos diferente do grupo de recursos do teu espaço de trabalho. No entanto, esses recursos devem pertencer à mesma assinatura e locatário do seu espaço de trabalho. Os recursos associados a um espaço de trabalho incluem o Registro de Contêiner do Azure, o Armazenamento do Azure, o Cofre da Chave do Azure e o Application Insights.
Nota
Este artigo descreve o isolamento de rede que se aplica a operações de plano de dados. Essas operações resultam de solicitações de pontuação, ou serviço de modelo. As operações do plano de controle, como solicitações para criar, atualizar, excluir ou recuperar chaves de autenticação, são enviadas ao Azure Resource Manager pela rede pública.
Segurança das solicitações de classificação de entrada
Pode proteger a comunicação de entrada de um cliente para um endpoint online gerido, usando um endpoint privado para o espaço de trabalho do Azure Machine Learning. Este endpoint privado na rede virtual do cliente comunica com o espaço de trabalho associado ao endpoint online gerido e serve como meio pelo qual o endpoint online gerido recebe pedidos de pontuação recebidos do cliente.
Para proteger os pedidos de pontuação para o ponto final online, de modo que um cliente só possa aceder-lhe através do ponto final privado da área de trabalho, defina a opção public_network_access do ponto final como disabled. Depois de criar o endpoint, pode atualizar esta definição para permitir o acesso à rede pública, se desejar.
Defina o sinalizador do endpoint como disabled:
Antes de executares o comando CLI do Azure:
- Certifica-te de que tens um
endpoint.ymlficheiro no teu diretório de trabalho atual (seja localmente ou no Azure Cloud Shell). - Se usares o Azure Cloud Shell, carrega
endpoint.ymlou clona um repositório que o contenha no teu diretório pessoal do Cloud Shell. - Se o seu grupo de recursos e espaço de trabalho predefinidos do Azure Machine Learning não estiverem definidos, adicione os parâmetros
--resource-groupe--workspace-name.
az ml online-endpoint create \
--file endpoint.yml \
--set public_network_access=disabled
# Optionally specify the workspace and resource group explicitly
az ml online-endpoint create \
--file endpoint.yml \
--resource-group <resource-group-name> \
--workspace-name <workspace-name> \
--set public_network_access=disabled
Se encontrar um No such file or directory: endpoint.yml erro, confirme que endpoint.yml existe no seu diretório atual e que executa o comando a partir desse diretório.
Quando desativas public_network_access, o ponto final privado do espaço de trabalho recebe pedidos de pontuação de entrada, e as redes públicas não podem aceder ao ponto final.
Se ativar public_network_access, o endpoint pode receber pedidos de pontuação de entrada da internet.
Scoring de entrada seguro com acesso à rede pública a partir de endereços IP específicos
O espaço de trabalho do Azure Machine Learning suporta a habilitação do acesso à rede pública a partir de endereços IP específicos ou intervalos de endereços. Esta funcionalidade tem algumas interações com a flag do endpoint online gerido public_network_access das quais deve estar ciente ao utilizá-la com endpoints online geridos. Para obter mais informações, consulte Cenário: pontos de extremidade online geridos com acesso a partir de endereços IP específicos.
Acesso de saída seguro com rede virtual gerenciada pelo workspace
Para proteger a comunicação de saída de uma implantação para serviços, tem de habilitar o isolamento de rede virtual gerido para o seu espaço de trabalho do Azure Machine Learning para que o Azure Machine Learning possa criar uma rede virtual gerida para o espaço de trabalho. Todos os pontos finais online geridos no espaço de trabalho (e recursos de computação geridos para o espaço de trabalho, como clusters de computação e instâncias de computação) utilizam automaticamente esta rede virtual gerida pelo espaço de trabalho, e as implementações sob os pontos finais partilham os pontos finais privados da rede virtual gerida para comunicar com os recursos do espaço de trabalho.
Importante
Se o Azure Key Vault associado ao seu espaço de trabalho Azure Machine Learning tiver o acesso à rede pública desativado ou as restrições da firewall ativadas, deve ativar Permitir que serviços fidedignos da Microsoft contornem esta firewall no cofre de chaves. Este requisito aplica-se mesmo quando configura endpoints privados para o Key Vault.
O Azure Machine Learning armazena e recupera segredos do espaço de trabalho no seu Key Vault através da sua infraestrutura do lado do serviço. Os endpoints privados na sua rede virtual ou na rede virtual gerida pelo espaço de trabalho não substituem o bypass de serviços confiáveis necessário para este acesso do lado do serviço.
O bypass não concede acesso a todos os serviços do Azure. Apenas serviços de confiança elegíveis podem utilizá-lo, e os pedidos devem ainda autenticar-se através do Microsoft Entra ID e possuir as permissões necessárias do Azure RBAC ou da política de acesso ao Key Vault. Para mais informações, consulte serviços fidedignos do Azure Key Vault.
Quando protege o espaço de trabalho com uma rede virtual gerida, o sinalizador egress_public_access para implementações online geridas deixa de se aplicar. Evite definir esse sinalizador ao criar a implantação online gerenciada.
Para comunicação de saída com uma rede virtual gerida por um workspace, o Azure Machine Learning:
- Cria endpoints privados para a rede virtual gerida para comunicação com recursos Azure que o workspace utiliza, como Armazenamento do Azure, Azure Key Vault e Azure Container Registry.
- Permite que as implementações acedam ao Microsoft Container Registry (MCR), o que pode ser útil quando pretender utilizar ambientes com curadoria ou implementação sem código do MLflow.
- Permite que os usuários configurem regras de saída de extremidade privada para recursos privados e configurem regras de saída (marca de serviço ou FQDN) para recursos públicos. Para obter mais informações sobre como gerir regras de saída, consulte Gerir regras de saída.
Além disso, pode configurar dois modos de isolamento para o tráfego de saída da rede virtual gerida pelo workspace:
- Permitir saída para a Internet, para permitir todo o tráfego de saída da Internet a partir da rede virtual gerida
- Permitir apenas o tráfego de saída aprovado, para controlar o tráfego de saída usando endpoints privados, regras FQDN de saída e regras de etiquetas de serviço para saída.
Por exemplo, se a rede virtual gerida do seu espaço de trabalho contiver duas implementações sob um ponto final online gerido, ambas as implementações podem usar os pontos finais privados do espaço de trabalho para comunicar com:
- O espaço de trabalho do Azure Machine Learning
- O blob do Armazenamento do Azure associado ao workspace
- O Azure Container Registry para o espaço de trabalho
- O Azure Key Vault
- (Opcional) recursos privados adicionais que suportam private endpoints.
Para saber mais sobre as configurações da rede virtual gerenciada pelo espaço de trabalho, consulte Arquitetura de rede virtual gerenciada.
Cenários para configuração de isolamento de rede
O seu espaço de trabalho do Azure Machine Learning e o ponto final online gerido têm, cada um, uma public_network_access flag que pode ser utilizada para configurar a respetiva comunicação de entrada. Por outro lado, a comunicação de saída de uma implantação depende da rede virtual gerenciada do espaço de trabalho.
Comunicação com o endpoint online gerenciado
Suponha que um endpoint online gerido tenha uma implementação que usa um modelo de IA e que pretenda usar uma aplicação para enviar pedidos de scoring para o endpoint. Você pode decidir qual configuração de isolamento de rede usar para o ponto de extremidade online gerenciado da seguinte maneira:
Para comunicação de entrada:
Se o aplicativo estiver disponível publicamente na internet, você precisará habilitarpublic_network_access o ponto de extremidade para que ele possa receber solicitações de pontuação de entrada do aplicativo.
No entanto, se a aplicação for privada, como uma aplicação interna dentro da sua organização, quer que o modelo de IA seja usado apenas dentro da sua organização, em vez de o expor à internet. Portanto, tem de desativar o public_network_access isolamento de rede do ponto de extremidade para que este possa receber pedidos de pontuação recebidos apenas através do ponto de extremidade privado do respetivo espaço de trabalho.
Para comunicação de saída (implantação):
Suponha que a sua implantação precise de aceder a recursos privados do Azure (como o blob do Armazenamento do Azure, o ACR e o Azure Key Vault) ou que seja inaceitável que a implantação aceda à Internet. Nesse caso, você precisa habilitar a rede virtual gerenciada do espaço de trabalho com o modo de isolamento de saída somente permitir aprovado. Este modo de isolamento permite a comunicação de saída da implementação apenas para destinos aprovados, protegendo contra a exfiltração de dados. Além disso, você pode adicionar regras de saída para o espaço de trabalho, para permitir o acesso a mais recursos públicos ou privados. Para obter mais informações, consulte Configurar uma rede virtual gerida para permitir apenas tráfego de saída aprovado.
No entanto, se pretender que a sua implementação aceda à Internet, pode utilizar a rede virtual gerida do espaço de trabalho com o modo de isolamento permitir tráfego de saída para a Internet. Além de poder aceder à Internet, poderá usar os pontos finais privados da rede virtual gerida para aceder aos recursos privados do Azure de que precisa.
Por fim, se a sua implementação não precisar de aceder a recursos privados do Azure e não precisar de controlar o acesso à Internet, não precisará de usar uma rede virtual gerida pelo espaço de trabalho.
Comunicação de entrada para o espaço de trabalho do Azure Machine Learning
Pode utilizar o sinalizador public_network_access do seu espaço de trabalho do Azure Machine Learning para ativar ou desativar o acesso de entrada ao espaço de trabalho.
Normalmente, se pretender proteger a comunicação de entrada para o seu espaço de trabalho (desativando a flag public_network_access do espaço de trabalho), também pretende proteger a comunicação de entrada para o seu endpoint online gerido.
O gráfico seguinte mostra um fluxo de trabalho típico para proteger as comunicações de entrada para o seu espaço de trabalho do Azure Machine Learning e para o seu ponto final online gerido. Para maior segurança, recomendamos que desative as opções public_network_access do espaço de trabalho e do ponto final online gerido, para garantir que nenhum dos dois possa ser acedido através da Internet pública. Se a área de trabalho não tiver um ponto final privado, pode criar um, assegurando que inclui uma resolução de DNS adequada. Em seguida, pode aceder ao endpoint online gerido utilizando o endpoint privado do espaço de trabalho.
Nota
Os pontos finais online geridos partilham o ponto final privado do espaço de trabalho. Se estiver a adicionar manualmente registos DNS à zona DNS privada privatelink.api.azureml.ms, deverá ser adicionado um registo A com carácter universal *.<per-workspace globally-unique identifier>.inference.<region>.privatelink.api.azureml.ms para encaminhar todos os pontos finais no espaço de trabalho para o ponto final privado.
Para obter mais informações sobre a resolução DNS para seu espaço de trabalho e ponto de extremidade privado, consulte Como usar seu espaço de trabalho com um servidor DNS personalizado.
Anexo
Acesso de saída seguro com método legado de isolamento de rede
Para endpoints online geridos, pode garantir a comunicação de saída entre implementações e recursos ao utilizar uma rede virtual gerida pela Azure Machine Learning para cada implementação no endpoint. A comunicação de saída segura também é tratada usando private endpoints para essas instâncias de serviço.
Nota
Recomendamos vivamente que utilize a abordagem descrita em Acesso de saída seguro com rede virtual gerida pelo espaço de trabalho em vez deste método legado.
Para restringir a comunicação entre uma implantação e recursos externos, incluindo os recursos do Azure que ela usa, deve garantir que:
A opção da
egress_public_network_accessimplementação édisabled. Esta opção garante que a transferência do modelo, do código e das imagens necessários para a implementação seja protegida por um ponto final privado. Depois de criares a implementação, não podes atualizar (ativar ou desativar) aegress_public_network_accessbandeira. A tentativa de alterar a flag durante a atualização da implantação falha com um erro.O espaço de trabalho tem uma ligação privada que permite aceder aos recursos do Azure através de um ponto de extremidade privado.
O espaço de trabalho tem um
public_network_accessflag que podes ativar ou desativar. Se planeia usar uma implementação online gerida que utilize saída pública, então deve também configurar o espaço de trabalho para permitir o acesso público. Este requisito existe porque a comunicação de saída da implementação online é feita para a API do workspace. Quando configura a implementação para usar saída pública, o espaço de trabalho deve ser capaz de aceitar essa comunicação pública (permitir acesso público).
Quando existem várias implementações e configura o egress_public_network_access para disabled para cada implementação num ponto final online gerido, cada implementação tem a sua própria rede virtual gerida independente do Azure Machine Learning. Para cada rede virtual, o Azure Machine Learning cria três pontos de extremidade privados para comunicação com os seguintes serviços:
- O espaço de trabalho do Azure Machine Learning
- O blob do Armazenamento do Azure associado ao workspace
- O Registo de Contentores do Azure para o espaço de trabalho
Por exemplo, se definir o egress_public_network_access sinalizador para disabled para duas implantações de um ponto de extremidade online gerido, será criado um total de seis pontos de extremidade privados. Cada implementação utiliza três endpoints privados para comunicar com o workspace, blob e registo do contentor.
Importante
O Azure Machine Learning não suporta o pareamento entre a rede virtual gerida de uma implementação e a rede virtual do seu cliente. Para obter acesso seguro aos recursos necessários para a implantação, usamos pontos finais privados para nos comunicarmos com os recursos.
Nota
Ao referenciar ou utilizar um Modelo ou Ambiente de um Azure Machine Learning Registry, são também criados dois endpoints privados para os seguintes serviços:
- Armazenamento do Azure associado ao Registo
- Azure Container Registry associado ao Registry
Mais sobre o isolamento de rede com registos do Azure Machine Learning
O diagrama a seguir mostra as solicitações de pontuação recebidas da rede virtual de um cliente fluindo através do ponto de extremidade privado do espaço de trabalho para o ponto de extremidade online gerenciado. O diagrama também mostra duas implantações online, cada uma em sua própria rede virtual gerenciada do Azure Machine Learning. A rede virtual de cada implementação tem três pontos finais privados para comunicação de saída com o espaço de trabalho do Azure Machine Learning, o blob do Armazenamento do Azure associado ao espaço de trabalho e o Azure Container Registry do espaço de trabalho.
Para desativar o egress_public_network_access e criar os pontos de extremidade privados:
az ml online-deployment create -f deployment.yml --set egress_public_network_access=disabled
Para confirmar a criação dos pontos de extremidade privados, primeiro verifique a conta de armazenamento e o registro de contêiner associados ao espaço de trabalho (consulte Baixar um arquivo de configuração), localize cada recurso no portal do Azure e marque a Private endpoint connections guia no Networking menu.
Importante
- Como mencionado anteriormente, a comunicação de saída da implantação de endpoint online gerido é para a API do espaço de trabalho. Quando o endpoint é configurado para usar saída pública (em outras palavras,
public_network_accessa flag para o endpoint está definida comoenabled), o espaço de trabalho deve ser capaz de aceitar essa comunicação pública (public_network_accessflag para o espaço de trabalho definida comoenabled). - Quando as implementações online são criadas com
egress_public_network_accessa flag definida paradisabled, têm acesso apenas aos recursos seguros (workspace, blob e registo de contentores). Por exemplo, se a implementação usar ativos do modelo carregados em outras contas de armazenamento, o download dos ativos do modelo falha. Verifique se os ativos do modelo estão na conta de armazenamento associada ao espaço de trabalho. - Quando
egress_public_network_accessestiver definido comodisabled, a implantação só pode aceder aos recursos associados ao espaço de trabalho protegidos pela rede virtual. Pelo contrário, quandoegress_public_network_accessestá definido paraenabled, a implementação só pode aceder aos recursos com acesso público, o que significa que não pode aceder aos recursos protegidos na rede virtual.
A tabela seguinte lista as configurações suportadas ao configurar comunicações de entrada e saída para um ponto final online:
| Configuração | Recebido (propriedade da extremidade) |
De saída (propriedade de implementação) |
Suportado? |
|---|---|---|---|
| entrada segura com saída segura |
public_network_access está desativado |
egress_public_network_access está desativado |
Sim |
| tráfego de entrada seguro com tráfego de saída público |
public_network_access está desativado |
egress_public_network_access está habilitadoO espaço de trabalho também deve permitir o acesso público, pois a saída da implantação é para a API do espaço de trabalho. |
Sim |
| tráfego de entrada público com tráfego de saída seguro |
public_network_access está ativado |
egress_public_network_access está desativado |
Sim |
| tráfego de entrada público com tráfego de saída público |
public_network_access está ativado |
egress_public_network_access está ativadoO espaço de trabalho também tem de permitir o acesso público, pois o tráfego de saída da implementação destina-se à API do espaço de trabalho. |
Sim |