Compartilhar via


Isolamento de rede com 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)

Quando você implanta um modelo de machine learning em um ponto de extremidade online gerenciado, pode proteger a comunicação com o ponto de extremidade online usando pontos de extremidade privados. Neste artigo, você aprenderá como um ponto de extremidade privado pode proteger a comunicação de entrada para um ponto de extremidade online gerenciado. Você também aprenderá como uma rede virtual gerenciada de workspace pode fornecer uma comunicação segura entre implantações e recursos.

Você pode proteger solicitações de pontuação de entrada de clientes para um ponto de extremidade online e proteger as comunicações de saída entre uma implantação, os recursos do Azure usados e recursos privados. Você configura a segurança para comunicação de entrada e saída separadamente. Para obter mais informações sobre pontos de extremidade e implantações, consulte O que são pontos de extremidade e implantações.

O diagrama a seguir mostra como as comunicações fluem por meio de pontos de extremidade privados para o ponto de extremidade online gerenciado. Solicitações de pontuação de entrada do fluxo de rede virtual de um cliente por meio do ponto de extremidade privado do workspace para o ponto de extremidade online gerenciado. 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 workspace para essas instâncias de serviço.

Diagrama que mostra a comunicação de entrada através de um ponto de extremidade privado do workspace e a comunicação de saída através de pontos de extremidade privados de uma rede virtual gerenciada pelo workspace.

Observação

  • Este artigo se concentra no isolamento de rede usando a rede virtual gerenciada do workspace. 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, confira o Apêndice.
  • Cada implantação é isolada de outras implantações, independentemente da comunicação de entrada e saída discutida neste artigo. Em outras palavras, mesmo com pontos de extremidade e implantações que permitem acesso de entrada e saída à Internet, há um isolamento de rede entre as implantações, o que impede que qualquer implantação se conecte diretamente a outras implantações.

Limitações

  • O sinalizador v1_legacy_mode deve ser definido como false desativar o modo herdado v1 no workspace do Azure Machine Learning. Se essa configuração estiver ativada, você não poderá criar um endpoint online gerenciado. Para obter mais informações, consulte a alteração de isolamento de rede com nossa nova plataforma de API no Azure Resource Manager.

  • Se o workspace do Azure Machine Learning tiver um ponto de extremidade privado 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 workspace, consulte Configurar um ponto de extremidade privado para um workspace do Azure Machine Learning.

    Dica

    Para ver a data de criação de um workspace, você pode verificar as propriedades do workspace.

    1. No Azure Machine Learning Studio, vá para o canto superior direito e selecione o nome do seu espaço de trabalho.
    2. Na janela Diretório + Assinatura + Workspace, selecione Exibir todas as propriedades no portal do Azure.
    3. Na página Visão geral do portal do Azure, vá para o canto superior direito e selecione Exibição JSON.
    4. Na janela JSON do Recurso, em Versões de API, selecione a versão mais recente da API.
    5. Na seção properties do código JSON, verifique o valor creationTime.

    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 usar o isolamento de rede para ajudar a proteger pontos de extremidade online, você pode usar recursos associados ao workspace de um grupo de recursos diferente do grupo de recursos do workspace. No entanto, esses recursos devem pertencer à mesma assinatura e locatário do seu espaço de trabalho. Os recursos associados a um workspace incluem o Registro de Contêiner do Azure, o Armazenamento do Azure, o Azure Key Vault e o Application Insights.

Observação

Este artigo descreve o isolamento de rede que se aplica às operações do plano de dados. Essas operações resultam de solicitações de pontuação ou serviço de modelo. Operações de 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.

Solicitações de pontuação de entrada

Você pode proteger a comunicação de entrada de um cliente para um ponto de extremidade online gerenciado usando um ponto de extremidade privado para o espaço de trabalho do Azure Machine Learning. Esse ponto de extremidade privado na rede virtual do cliente se comunica com o espaço de trabalho do ponto de extremidade online gerenciado e é o meio pelo qual o ponto de extremidade online gerenciado recebe solicitações de pontuação recebidas do cliente.

Para proteger as solicitações de pontuação para o ponto de extremidade online, para que um cliente possa acessá-lo somente por meio do ponto de extremidade privado do workspace, defina o sinalizador public_network_access para o ponto de extremidade como disabled. Depois de criar o ponto de extremidade, você pode atualizar essa configuração para habilitar o acesso à rede pública, se desejado.

Defina o sinalizador public_network_access do ponto de extremidade como disabled:

Antes de executar o comando da CLI do Azure:

  • Verifique se você tem um endpoint.yml arquivo no diretório de trabalho atual (localmente ou no Azure Cloud Shell).
  • Se você usar o Azure Cloud Shell, carregue endpoint.yml ou clone um repositório que o contenha no diretório inicial do Cloud Shell.
  • Se o workspace e o grupo de recursos padrão do Azure Machine Learning não estiverem definidos, adicione os parâmetros --resource-group e --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 você vir um erro No such file or directory: endpoint.yml, confirme que endpoint.yml existe no diretório atual e que você executa o comando neste diretório.

Se você desabilitar public_network_access, o ponto de extremidade privado do espaço de trabalho receberá solicitações de pontuação de entrada e as redes públicas não poderão acessar o ponto de extremidade.

Se você habilitar public_network_access, o ponto de extremidade poderá receber solicitações de pontuação de entrada da Internet.

Proteger a pontuação de entrada com acesso à rede pública contra endereços IP específicos

O workspace do Azure Machine Learning dá suporte à habilitação do acesso à rede pública de endereços IP ou intervalos de endereços específicos. Esse recurso tem algumas interações com o sinalizador public_network_access do ponto de extremidade online gerenciado do qual você deve estar ciente ao usá-lo com pontos de extremidade online gerenciados. Para obter mais informações, consulte Cenário: pontos de extremidade online gerenciados com acesso de endereços IP específicos.

Proteger o acesso de saída com a rede virtual gerenciada do workspace

Para proteger a comunicação de saída de uma implantação para serviços, você precisa habilitar o isolamento de rede virtual gerenciada para seu workspace do Azure Machine Learning para que o Azure Machine Learning possa criar uma rede virtual gerenciada para o workspace. Todos os pontos de extremidade online gerenciados no workspace (e recursos de computação gerenciados para o workspace, como clusters de computação e instâncias de computação) usam automaticamente essa rede virtual gerenciada do workspace e as implantações nos pontos de extremidade compartilham os pontos de extremidade privados da rede virtual gerenciada para comunicação com os recursos do workspace.

Quando você protege seu workspace com uma rede virtual gerenciada, o sinalizador egress_public_access para implantações online gerenciadas não se aplica mais. Evite definir esse sinalizador ao criar a implantação online gerenciada.

Para comunicação de saída com uma rede virtual gerenciada por workspace, o Azure Machine Learning:

  • Cria pontos de extremidade privados para a rede virtual gerenciada usar na comunicação com os recursos do Azure usados pelo espaço de trabalho, como Armazenamento do Azure, Azure Key Vault e Registro de Contêiner do Azure.
  • Permite que as implantações acessem o MCR (Registro de Contêiner da Microsoft), que pode ser útil quando você quiser usar ambientes coletados ou uma implantação sem código do MLflow.
  • Permite que os usuários configurem regras de saída de ponto de extremidade privado 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 gerenciar regras de saída, confira Gerenciar regras de saída.

Além disso, você pode configurar dois modos de isolamento para o tráfego de saída da rede virtual gerenciada do workspace:

  • Permitir saída da Internet para permitir todo o tráfego de saída da Internet da rede virtual gerenciada
  • Permitir somente saída aprovada, para controlar o tráfego de saída usando pontos de extremidade privados, regras de saída FQDN e regras de saída de marcas de serviço.

Por exemplo, se a rede virtual gerenciada do espaço de trabalho contiver duas implantações sob um ponto de extremidade online gerenciado, ambas as implantações poderão usar os pontos de extremidade privados do espaço de trabalho para se comunicar com:

  • O workspace do Azure Machine Learning
  • O blob de armazenamento do Azure associado à área de trabalho
  • O Registro de Contêiner do Azure para o workspace
  • O Azure Key Vault
  • (Opcional) recursos privados adicionais que dão suporte a pontos de extremidade privados.

Para saber mais sobre as configurações da rede virtual gerenciada do workspace, confira Arquitetura de rede virtual gerenciada.

Cenários de configuração de isolamento de rede

Seu workspace do Azure Machine Learning e o ponto de extremidade online gerenciado têm um sinalizador public_network_access que você pode usar para configurar a comunicação de entrada. Por outro lado, a comunicação de saída de uma implantação depende da rede virtual gerenciada do workspace.

Comunicação com o ponto de extremidade online gerenciado

Suponha que um ponto de extremidade online gerenciado tenha uma implantação que use um modelo de IA e você queira usar um aplicativo para enviar solicitações de pontuação para o ponto de extremidade. 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 o aplicativo for privado, como um aplicativo interno em sua organização, você deseja que o modelo de IA seja usado apenas em sua organização em vez de expô-lo à Internet. Portanto, você precisa desabilitar o public_network_access do ponto de extremidade para que ele possa receber solicitações de pontuação de entrada somente por meio do ponto de extremidade privado do workspace.

Para comunicação de saída (implantação):

Suponha que sua implantação precise acessar recursos privados do Azure (como o blob do Armazenamento do Azure, o ACR e o Azure Key Vault) ou que não seja aceitável que a implantação acesse a Internet. Nesse caso, você precisa habilitar a rede virtual gerenciada do workspace com o modo de isolamento permitir apenas saída aprovada. Esse modo de isolamento permite a comunicação de saída da implantação somente para destinos aprovados, protegendo assim contra exfiltração de dados. Além disso, você pode adicionar regras de saída para o workspace para permitir o acesso a mais recursos públicos ou privados. Para obter mais informações, confira Configurar uma rede virtual gerenciada para permitir apenas saída aprovada.

No entanto, se você quiser que sua implantação acesse a Internet, poderá usar a rede virtual gerenciada do workspace com o modo isolamento permitir saída da internet. Além de poder acessar a Internet, você poderá usar os pontos de extremidade privados da rede virtual gerenciada para acessar os recursos privados do Azure necessários.

Por fim, se sua implantação não precisar acessar recursos privados do Azure e você não precisar controlar o acesso à Internet, não será necessário usar uma rede virtual gerenciada por workspace.

Comunicação de entrada com o workspace do Azure Machine Learning

Você pode usar o sinalizador public_network_access do workspace do Azure Machine Learning para habilitar ou desabilitar o acesso ao workspace de entrada. Normalmente, se você proteger a comunicação de entrada com seu workspace (desabilitando o sinalizador public_network_access do workspace), também deseja proteger a comunicação de entrada com o ponto de extremidade online gerenciado.

O gráfico a seguir mostra um fluxo de trabalho típico para proteger a comunicação de entrada com seu workspace do Azure Machine Learning e seu ponto de extremidade online gerenciado. Para obter a melhor segurança, recomendamos desabilitar os sinalizadores public_network_access para o workspace e o ponto de extremidade online gerenciado a fim de garantir que ambos não possam ser acessados pela Internet pública. Se o workspace não tiver um ponto de extremidade privado, você poderá criar um, incluindo a resolução DNS adequada. Em seguida, você pode acessar o ponto de extremidade online gerenciado usando o ponto de extremidade privado do workspace.

Uma captura de tela mostrando um fluxo de trabalho típico para proteger a comunicação de entrada para seu workspace e o ponto de extremidade online gerenciado.

Observação

Os pontos de extremidade online gerenciados compartilham o ponto de extremidade privado do workspace. Se você estiver adicionando manualmente registros DNS à zona DNS privadaprivatelink.api.azureml.ms, um registro A com curinga *.<per-workspace globally-unique identifier>.inference.<region>.privatelink.api.azureml.ms deverá ser adicionado para rotear todos os pontos de extremidade no workspace para o ponto de extremidade privado.

Para saber mais sobre a resolução de DNS para o worspace e o ponto de extremidade privado, confira Como usar seu workspace com um servidor DNS personalizado.

Apêndice

Proteger o acesso de saída com o método de isolamento de rede herdado

Para endpoints online gerenciados, você pode proteger a comunicação de saída entre implantações e recursos usando uma rede virtual gerenciada do Azure Machine Learning para cada implantação no endpoint. A comunicação de saída segura também é tratada usando pontos de extremidade privados para essas instâncias de serviço.

Observação

É altamente recomendável que você use a abordagem descrita em Proteger o acesso de saída com a rede virtual gerenciada do workspace em vez desse método herdado.

Para restringir a comunicação entre uma implantação e recursos externos, incluindo os recursos do Azure que ela usa, certifique-se que:

  • O sinalizador egress_public_network_access da implantação esteja disabled. Esse sinalizador garante que o download do modelo, do código e das imagens necessários para a implantação seja protegido por um ponto de extremidade privado. Depois de criar a implantação, você não poderá atualizar (habilitar ou desabilitar) o egress_public_network_access sinalizador. A tentativa de alterar o sinalizador durante a atualização da implantação falhará com um erro.

  • O workspace tem um link privado que permite o acesso aos recursos do Azure por meio de um ponto de extremidade privado.

  • O workspace tem um public_network_access flag que você pode habilitar ou desabilitar. Se você planeja usar uma implantação online gerenciada que usa saída pública, também deverá configurar o espaço de trabalho para permitir acesso público. Esse requisito existe porque a comunicação de saída da implantação online é feita para a API do espaço de trabalho. Quando você configura a implantação para usar a saída pública, o workspace deve ser capaz de aceitar essa comunicação pública (permitir acesso público).

Quando você tem várias implantações e configura o egress_public_network_access como disabled para cada implantação em um ponto de extremidade online gerenciado, cada implantação terá sua própria rede virtual gerenciada 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 workspace do Azure Machine Learning
  • O blob de armazenamento do Azure associado à área de trabalho
  • O Registro de Contêiner do Azure para o workspace

Por exemplo, se você definir o sinalizador egress_public_network_access como disabled para as três implantações em um ponto de extremidade online, um total de nove pontos de extremidade privados serão criados. Cada implantação usa três pontos de extremidade privados para se comunicar com o espaço de trabalho, o blob e o registro de contêiner.

Importante

O Azure Machine Learning não dá suporte ao emparelhamento entre a rede virtual gerenciada de uma implantação e a rede virtual do cliente. Para obter acesso seguro aos recursos necessários para a implantação, usamos pontos de extremidade privados para se comunicar com os recursos.

O diagrama a seguir mostra solicitações de pontuação de entrada da rede virtual de um cliente fluindo pelo ponto de extremidade privado do workspace 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. Cada rede virtual de cada implantação tem três pontos de extremidade privados para comunicação de saída com o workspace do Azure Machine Learning, o blob do Armazenamento do Azure associado ao workspace e o Registro de Contêiner do Azure para o workspace.

Diagrama do isolamento geral da rede com o método herdado.

Para desabilitar 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 workspace (confira Baixar um arquivo de configuração), localize cada recurso do portal do Azure e marque a guia Private endpoint connections no menu de Networking.

Importante

  • Conforme mencionado anteriormente, a comunicação de saída da implantação de ponto de extremidade online gerenciada é para a API do espaço de trabalho. Quando o ponto de extremidade é configurado para usar uma saída pública (em outras palavras, o sinalizador de public_network_access para o ponto de extremidade é definido como enabled), o workspace deve ser capaz de aceitar essa comunicação pública (sinalizador de public_network_access para o workspace definido como enabled).
  • Quando implantações online são criadas com o sinalizador egress_public_network_access definido como disabled, elas têm acesso apenas aos recursos protegidos (espaço de trabalho, blob e registro de contêiner). Por exemplo, se a implantação usar ativos de modelo carregados em outras contas de armazenamento, o download do modelo falhará. Verifique se os ativos do modelo estão na conta de armazenamento associada ao workspace.
  • Quando o egress_public_network_access está definido como disabled, a implantação só pode acessar os recursos associados ao workspace protegidos na rede virtual. Pelo contrário, quando egress_public_network_access definido como enabled, a implantação só pode acessar os recursos com acesso público, o que significa que não pode acessar os recursos protegidos na rede virtual.

A tabela a seguir lista as configurações com suporte ao configurar comunicações de entrada e saída para um ponto de extremidade online:

Configuração Entrada
(propriedade do ponto de extremidade)
Saída
(propriedade da implantação)
Com suporte?
entrada segura com saída segura public_network_access está desabilitado egress_public_network_access está desabilitado Sim
entrada segura com saída pública public_network_access está desabilitado egress_public_network_access está habilitado
O 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
entrada pública com saída segura public_network_access está habilitado egress_public_network_access está desabilitado Sim
entrada pública com saída pública public_network_access está habilitado egress_public_network_access está habilitado
O 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

Próximas etapas