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)
Ao implantar um modelo de machine learning em um ponto de extremidade online gerenciado, você pode proteger a comunicação com o ponto de extremidade online usando pontos de extremidade privados. Nesse artigo, você aprenderá como um ponto de extremidade privado pode ser usado para proteger a comunicação de entrada para um ponto de extremidade online gerenciado. Você também aprenderá como uma rede virtual gerenciada por workspace pode ser usada para fornecer 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. A segurança da comunicação de entrada e de saída é configurada 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.
Observação
- Esse 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, consulte 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/implantações que permitem entrada/saída da Internet, há um isolamento de rede entre implantações, que bloqueia qualquer implantação de se conectar diretamente a outras implantações.
Limitações
O sinalizador
v1_legacy_mode
precisa estar desabilitado (false) no seu workspace do Azure Machine Learning. Se esse sinalizador estiver habilitado, você não poderá criar um ponto de extremidade online gerenciado. Para obter mais informações, confira Isolamento de rede com a API v2.Se o workspace do Azure Machine Learning tiver um ponto de extremidade privado criado antes de 24 de maio de 2022, você deverá recriar o ponto de extremidade privado do workspace antes de configurar seus pontos de extremidade online para usar um ponto de extremidade privado. Para obter mais informações sobre como criar um ponto de extremidade privado para seu workspace, confira Como configurar um ponto de extremidade privado para o workspace do Azure Machine Learning.
Dica
Para confirmar quando um espaço de trabalho foi criado, você pode verificar as propriedades do workspace.
No Estúdio, vá para a seção
Directory + Subscription + Workspace
(canto superior direito do Studio) e selecioneView all properties in Azure Portal
. Selecione a exibição JSON no canto superior direito da página "Visão geral" e escolha a versão mais recente da API. Nessa página, você pode marcar o valor deproperties.creationTime
.Como alternativa, use
az ml workspace show
com a CLI,my_ml_client.workspace.get("my-workspace-name")
com o SDK oucurl
em um workspace com a API REST.Ao usar o isolamento de rede com pontos de extremidade online, você pode usar recursos associados ao workspace (Registro de Contêiner do Azure [ACR], conta de armazenamento, Key Vault e Application Insights) de um grupo de recursos diferente do seu workspace. No entanto, esses recursos precisam pertencer à mesma assinatura e locatário do seu workspace.
Observação
O isolamento de rede descrito neste artigo se aplica a operações de plano de dados, ou seja, operações resultantes de solicitações de pontuação (ou distribuição de modelos). As operações do painel de controle (como solicitações para criar, atualizar, excluir ou recuperar chaves de autenticação) são enviadas ao Resource Manager do Azure pela rede pública.
Solicitações de pontuação de entrada
A comunicação de entrada segura de um cliente para um ponto de extremidade online gerenciado é possível usando um ponto de extremidade privado para o workspace do Azure Machine Learning. Esse ponto de extremidade privado na rede virtual do cliente se comunica com o workspace do ponto de extremidade online gerenciado e é o meio pelo qual o ponto de extremidade online gerenciado pode receber 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 public_network_access
sinalizador 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 do ponto de public_network_access
extremidade como disabled
:
az ml online-endpoint create -f endpoint.yml --set public_network_access=disabled
Quando public_network_access
é disabled
, as solicitações de pontuação de entrada são recebidas por meio do ponto de extremidade privado do workspace e ele não pode ser acessado por meio de redes públicas.
Como alternativa, se você definir public_network_access
como enabled
, 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, Azure Machine Learning:
- Cria pontos de extremidade privados para a rede virtual gerenciada a ser usada para comunicação com recursos do Azure que são usados pelo workspace, 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ê deseja usar ambientes coletados ou 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, consulte 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, ou seja:
- Permitir saída da Internet para permitir todo o tráfego de saída da Internet da rede virtual gerenciada
- Permita apenas a 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 marca de serviço.
Por exemplo, digamos que a rede virtual gerenciada do workspace contenha duas implantações em um ponto de extremidade online gerenciado, ambas as implantações podem usar os pontos de extremidade privados do workspace para se comunicar com:
- O workspace do Azure Machine Learning
- O blob de Armazenamento do Azure associado ao workspace
- 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
para o ponto de extremidade para que ele possa receber solicitações de pontuação de entrada do aplicativo.
No entanto, digamos que o aplicativo seja privado, como um aplicativo interno em sua organização. Nesse cenário, 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 é inaceitável que a implantação acesse a Internet. Nesse caso, você precisa habilitar a rede virtual gerenciada do workspace com o modo de isolamento saída permitido apenas aprovado. 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, consulte 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 de saída da Internet permitido. 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.
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 pontos de extremidade online gerenciados, você também 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 ponto de extremidade. 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 usados por ela, certifique-se que:
O sinalizador
egress_public_network_access
da implantação é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 sinalizadoregress_public_network_access
. 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 sinalizador
public_network_access
que pode ser habilitado ou desabilitado, se você planeja usar uma implantação online gerenciada que usa a saída pública, você também deve configurar o workspace para permitir o acesso público. Isso ocorre porque a comunicação de saída da implantação online é para a API do workspace. Quando a implantação é configurada para usar a saída pública, o espaço de trabalho 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 tem sua própria rede virtual gerenciada do Azure Machine Learning independente. 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 ao workspace
- 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 teria três pontos de extremidade privados para se comunicar com o workspace, 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.
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 (consulte 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 comoenabled
), o workspace deve ser capaz de aceitar essa comunicação pública (sinalizador depublic_network_access
para o workspace definido comoenabled
). - Quando são criadas com o sinalizador de
egress_public_network_access
definido comodisabled
, as implantações online terão acesso somente aos recursos protegidos mencionados acima. Por exemplo, se a implantação usar ativos de modelo carregados em outras contas de armazenamento, o download do modelo irá falhar. Verifique se os ativos do modelo estão na conta de armazenamento associada ao workspace. - Quando o
egress_public_network_access
está definido comodisabled
, a implantação só pode acessar os recursos associados ao workspace protegidos na rede virtual. Quando, ao contrário, oegress_public_network_access
está definido comoenabled
, 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á 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 |
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á 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 |