Configurar um ponto de extremidade privado para um Workspace do Azure Machine Learning com SDK e CLI v1
APLICA-SE A:Extensão de ML da CLI do Azure v1SDK do Python azureml v1
Neste documento, você vai aprender a configurar um ponto de extremidade privado para o Workspace do Azure Machine Learning. Para obter informações sobre como criar uma rede virtual para o Azure Machine Learning, confira Visão geral de isolamento e privacidade de rede virtual.
O Link Privado do Azure permite que você se conecte ao seu espaço de trabalho usando um ponto de extremidade privado. O ponto de extremidade privado é um conjunto de endereços IP privados na sua rede virtual. Você pode limitar o acesso ao seu espaço de trabalho para ocorrer somente nos endereços de IP privados. Um ponto de extremidade privado ajuda a reduzir o risco de exfiltração dos dados. Para saber mais sobre pontos de extremidade privados, confira o artigo Link Privado do Azure.
Aviso
Proteger um workspace com pontos de extremidade privados não garante a segurança de ponta a ponta por si só. Você deve proteger todos os componentes individuais da sua solução. Por exemplo, se você usa um ponto de extremidade privado para o workspace, mas a sua conta de Armazenamento do Microsoft Azure não está atrás da VNet, o tráfego entre o workspace e o armazenamento não usa a VNet para segurança.
Para obter mais informações sobre como proteger os recursos usados pelo Azure Machine Learning, confira os seguintes artigos:
Pré-requisitos
- Você deve ter uma rede virtual existente na qual criar o ponto de extremidade privado.
- Desabilitar as políticas de rede paras ponto de extremidade privados antes de adicionar o ponto de extremidade privado.
Limitações
Se você habilitar o acesso público para um workspace protegido com ponto de extremidade privado e usar o Estúdio do Azure Machine Learning pela Internet pública, alguns recursos, como o designer, poderão não conseguir acessar os dados. Esse problema ocorre quando os dados são armazenados em um serviço protegido por trás da VNet. Por exemplo, uma Conta de Armazenamento do Azure.
Você pode encontrar problemas ao tentar acessar o ponto de extremidade privado para o seu espaço de trabalho, se estiver usando o Mozilla Firefox. Esse problema pode estar relacionado ao DNS sobre HTTPS no Mozilla Firefox. É recomendável usar o Microsoft Edge ou o Google Chrome como uma solução alternativa.
Usar um ponto de extremidade privado não afeta o painel de controle do Azure (operações de gerenciamento), como excluir o espaço de trabalho ou gerenciar recursos de computação. Por exemplo, criando, atualizando ou excluindo um destino de computação. Essas operações são executadas pela internet pública normalmente. Operações de plano de dados, como usar o Estúdio do Azure Machine Learning, APIs (incluindo pipelines publicados) ou o SDK usam o ponto de extremidade privado.
Ao criar uma instância de computação ou um cluster de cálculo em um workspace com um ponto de extremidade privado, a instância de computação e o cluster de cálculo devem estar na mesma região do Azure que o workspace.
Ao criar ou anexar um cluster do Serviço de Kubernetes do Azure a um workspace com um ponto de extremidade privado, o cluster deve estar na mesma região que o workspace.
Quando um workspace é usado com vários pontos de extremidade privados, um dos pontos de extremidade privados precisa estar na mesma VNet dos seguintes serviços de dependência:
- Conta de Armazenamento do Microsoft Azure que fornece o armazenamento padrão para o workspace
- Azure Key Vault para o workspace
- Registro de Contêiner do Azure para o workspace.
Por exemplo, uma VNet (VNet 'serviços') conterá um ponto de extremidade privado para os serviços de dependência e o workspace. Essa configuração permite que o workspace se comunique com os serviços. Outra VNet ('clientes') pode conter apenas um ponto de extremidade privado para o workspace e ser usada somente para comunicação entre computadores de desenvolvimento de cliente e o workspace.
Criar um espaço de trabalho que usa um ponto de extremidade privado
Use um dos métodos a seguir para criar um espaço de trabalho com um ponto de extremidade privado. Cada um desses métodos requer uma rede virtual existente:
Dica
Se você quiser criar um espaço de trabalho, um ponto de extremidade privado e uma rede virtual ao mesmo tempo, consulte Usar um modelo do Azure Resource Manager para criar um espaço de trabalho no Azure Machine Learning.
O SDK do Python do Azure Machine Learning fornece a classe PrivateConfig, que pode ser usada com Workspace.create() para criar um espaço de trabalho com um ponto de extremidade privado. Essa classe requer uma rede virtual existente.
APLICA-SE A: SDK do Python azureml v1
from azureml.core import Workspace
from azureml.core import PrivateEndPointConfig
pe = PrivateEndPointConfig(name='myprivateendpoint', vnet_name='myvnet', vnet_subnet_name='default')
ws = Workspace.create(name='myworkspace',
subscription_id='<my-subscription-id>',
resource_group='myresourcegroup',
location='eastus2',
private_endpoint_config=pe,
private_endpoint_auto_approval=True,
show_output=True)
Adicionar um ponto de extremidade privado a um espaço de trabalho
Use um dos métodos a seguir para adicionar um ponto de extremidade privado a um espaço de trabalho existente:
Aviso
Se você tiver destinos de computação existentes associados a este espaço de trabalho e eles não estiverem atrás da mesma rede virtual em que o ponto de extremidade privado será criado, eles não funcionarão.
APLICA-SE A: SDK do Python azureml v1
from azureml.core import Workspace
from azureml.core import PrivateEndPointConfig
pe = PrivateEndPointConfig(name='myprivateendpoint', vnet_name='myvnet', vnet_subnet_name='default')
ws = Workspace.from_config()
ws.add_private_endpoint(private_endpoint_config=pe, private_endpoint_auto_approval=True, show_output=True)
Para obter mais informações sobre as classes e os métodos usados neste exemplo, consulte PrivateEndpointConfig e Workspace.add_private_endpoint.
Remover um ponto de extremidade privado
Você pode remover um ou todos os pontos de extremidade privados de um workspace. Remover um ponto de extremidade privado remove o workspace da VNet a que o ponto de extremidade estava associado. Remover o ponto de extremidade privado pode impedir que o espaço de trabalho acesse recursos nessa VNet ou que recursos na VNet acessem o espaço de trabalho. Por exemplo, se a VNet não permitir acesso à Internet pública ou proveniente dela.
Aviso
Remover os pontos de extremidade privados de um workspace não o torna publicamente acessível. Para tornar o workspace publicamente acessível, use as etapas na seção Habilitar acesso público.
Para remover um ponto de extremidade privado, use as seguintes informações:
Para remover um ponto de extremidade privado, use Workspace.delete_private_endpoint_connection. O seguinte exemplo demonstra como remover um ponto de extremidade privado:
APLICA-SE A: SDK do Python azureml v1
from azureml.core import Workspace
ws = Workspace.from_config()
# get the connection name
_, _, connection_name = ws.get_details()['privateEndpointConnections'][0]['id'].rpartition('/')
ws.delete_private_endpoint_connection(private_endpoint_connection_name=connection_name)
Permitir o acesso público
Em algumas situações, talvez você queira permitir que alguém se conecte ao seu espaço de trabalho protegido por um ponto de extremidade público, em vez de por meio da VNet. Ou talvez você queira remover o workspace da VNet e habilitar o acesso público novamente.
Importante
Habilitar o acesso público não remove nenhum ponto de extremidade privado existente. Todas as comunicações entre os componentes por trás da VNet a que os pontos de extremidade privados se conectam ainda são protegidas. Isso permite acesso público somente ao workspace, além do acesso privado por meio dos pontos de extremidade privados.
Aviso
Ao se conectar pelo ponto de extremidade público enquanto o workspace usa um ponto de extremidade privado para se comunicar com outros recursos:
- Alguns recursos do estúdio não acessarão seus dados. Esse problema ocorre quando os dados são armazenados em um serviço protegido por uma VNet. Por exemplo, uma Conta de Armazenamento do Azure.
- Não há suporte para usar o Jupyter, o JupyterLab, o RStudio ou Posit Workbench (anteriormente RStudio Workbench) em uma instância de computação, incluindo a execução de notebooks.
Para habilitar o acesso público, use as seguintes etapas:
Dica
Há duas propriedades possíveis que você pode configurar:
allow_public_access_when_behind_vnet
– usada pelo SDK do Python e pela CLI v2public_network_access
– usada pelo SDK do Python e pela CLI v2 Cada propriedade substitui a outra. Por exemplo, a configuraçãopublic_network_access
substituirá qualquer configuração anterior comoallow_public_access_when_behind_vnet
.
A Microsoft recomenda usar public_network_access
para habilitar ou desabilitar o acesso público a um workspace.
Para habilitar o acesso público, use Workspace.update e defina allow_public_access_when_behind_vnet=True
.
APLICA-SE A: SDK do Python azureml v1
from azureml.core import Workspace
ws = Workspace.from_config()
ws.update(allow_public_access_when_behind_vnet=True)
Conectar-se com segurança ao seu espaço de trabalho
Para se conectar a um workspace protegido por uma VNet, use um dos seguintes métodos:
Gateway de VPN do Azure – conecta redes locais à VNet por meio de uma conexão privada. A conexão é feita pela Internet pública. Há dois tipos de gateways de VPN que você pode usar:
- Ponto a site: cada computador cliente usa um cliente VPN para se conectar à VNet.
- Site a site: um dispositivo VPN conecta a VNet à sua rede local.
ExpressRoute – conecta redes locais à nuvem por meio de uma conexão privada. A conexão é feita usando um provedor de conectividade.
Azure Bastion – neste cenário, você cria uma máquina virtual do Azure (às vezes chamada de jump box) dentro da VNet. Em seguida, você se conecta à VM usando o Azure Bastion. O Bastion permite que você se conecte à VM usando uma sessão RDP ou SSH do navegador da Web local. Em seguida, use a jump box como seu ambiente de desenvolvimento. Por estar dentro da VNet, ela pode acessar o workspace diretamente. Para obter um exemplo de como usar uma jump box, confira Tutorial: criar um espaço de trabalho seguro.
Importante
Ao usar um Gateway de VPN ou ExpressRoute, você precisará planejar como a resolução de nomes funciona entre os recursos locais e os recursos na VNet. Para obter mais informações, confira Usar um servidor DNS personalizado.
Se você tiver problemas para se conectar ao workspace, consulte Solucionar problemas de conectividade segura do workspace.
Pontos de extremidade privados múltiplos
O Azure Machine Learning dá suporte a pontos de extremidade privados múltiplos em um workspace. Geralmente, vários pontos de extremidade privados são usados quando você deseja manter diferentes ambientes separados. Estes são alguns cenários habilitados usando vários pontos de extremidade privados:
Ambientes de desenvolvimento de cliente em uma VNet separada.
Um cluster do AKS (Serviço de Kubernetes do Azure) em uma VNet separada.
Outros serviços do Azure em uma VNet separada. Por exemplo, o Azure Synapse e o Azure Data Factory podem usar uma rede virtual gerenciada pela Microsoft. Em ambos os casos, um ponto de extremidade privado para o workspace pode ser adicionado à VNet gerenciada usada por esses serviços. Para obter mais informações sobre como usar uma rede virtual gerenciada com esses serviços, confira os seguintes artigos:
- Pontos de extremidade privados gerenciados do Synapse.
- Rede virtual gerenciada do Azure Data Factory.
Importante
A proteção de exfiltração dos dados do Synapse não tem suporte no Azure Machine Learning.
Importante
Cada VNet que contém um ponto de extremidade privado para o workspace também deve acessar a Conta de Armazenamento do Microsoft Azure, o Azure Key Vault e o Registro de Contêiner do Azure usados pelo workspace. Por exemplo, você pode criar um ponto de extremidade privado para os serviços em cada VNet.
A adição de pontos de extremidade privados múltiplos segue as mesmas etapas descritas na seção Adicionar um ponto de extremidade privado a um workspace.
Cenário: clientes isolados
Se você deseja isolar os clientes de desenvolvimento, para que não tenham acesso direto aos recursos de computação usados pelo Azure Machine Learning, siga estas etapas:
Observação
Estas etapas presumem que você tem um workspace existente, a Conta de Armazenamento do Microsoft Azure, o Azure Key Vault e o Registro de Contêiner do Azure. Cada um desses serviços tem pontos de extremidade privados em uma VNet existente.
- Crie outra VNet para os clientes. Essa VNet pode conter Máquinas Virtuais do Azure que atuam como os clientes ou pode conter um Gateway de VPN usado por clientes locais para se conectar à VNet.
- Adicione um novo ponto de extremidade privado para a Conta de Armazenamento do Microsoft Azure, o Azure Key Vault e o Registro de Contêiner do Azure usado pelo workspace. Esses pontos de extremidade privados devem existir na VNet de cliente.
- Se você tiver outro armazenamento usado pelo espaço de trabalho, adicione um novo ponto de extremidade privado para esse armazenamento. O ponto de extremidade privado deve existir na VNet de cliente e ter a integração de zona DNS privada habilitada.
- Adicione um novo ponto de extremidade privado ao workspace. Esse ponto de extremidade privado deve existir na VNet de cliente e ter a integração de zona DNS privada habilitada.
- Siga as etapas no artigo Usar o estúdio em uma rede virtual para habilitar o estúdio a acessar as contas de armazenamento.
O diagrama a seguir ilustra essa configuração. A VNet de Carga de Trabalho contém as computações criadas pelo workspace para treinamento e implantação. A VNet de Cliente contém os clientes ou as conexões ExpressRoute/VPN de cliente. Ambas as VNets contêm pontos de extremidade privados para o workspace, a Conta de Armazenamento do Microsoft Azure, o Azure Key Vault e o Registro de Contêiner do Azure.
Cenário: Serviço de Kubernetes do Azure isolado
Se você deseja criar um Serviço de Kubernetes do Azure isolado usado pelo workspace, siga estas etapas:
Observação
Estas etapas presumem que você tem um workspace existente, a Conta de Armazenamento do Microsoft Azure, o Azure Key Vault e o Registro de Contêiner do Azure. Cada um desses serviços tem pontos de extremidade privados em uma VNet existente.
- Criar uma instância do Serviço de Kubernetes do Azure. Durante a criação, o AKS cria uma VNet que contém o cluster do AKS.
- Adicione um novo ponto de extremidade privado para a Conta de Armazenamento do Microsoft Azure, o Azure Key Vault e o Registro de Contêiner do Azure usado pelo workspace. Esses pontos de extremidade privados devem existir na VNet de cliente.
- Se você tiver outro armazenamento usado pelo workspace, adicione um novo ponto de extremidade privado para esse armazenamento. O ponto de extremidade privado deve existir na VNet de cliente e ter a integração de zona DNS privada habilitada.
- Adicione um novo ponto de extremidade privado ao workspace. Esse ponto de extremidade privado deve existir na VNet de cliente e ter a integração de zona DNS privada habilitada.
- Anexe o cluster do AKS ao workspace do Azure Machine Learning. Para obter mais informações, confira Criar e anexar um cluster do Serviço de Kubernetes do Azure.
Próximas etapas
Para obter mais informações sobre como proteger seu espaço de trabalho no Azure Machine Learning, consulte o artigo Visão geral de isolamento e privacidade da rede virtual.
Se você planeja usar uma solução DNS personalizada em sua rede virtual, consulte como usar um espaço de trabalho com um servidor DNS personalizado.