Configurar um ponto de extremidade privado para um espaço de trabalho do Azure Machine Learning com SDK e CLI v1
APLICA-SE A:Azure CLI ml extension v1Python SDK azureml v1
Neste documento, você aprenderá a configurar um ponto de extremidade privado para seu espaço de trabalho do Azure Machine Learning. Para obter informações sobre como criar uma rede virtual para o Azure Machine Learning, consulte Visão geral de privacidade e isolamento de rede virtual.
O Azure Private Link 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 dentro da sua rede virtual. Em seguida, você pode limitar o acesso ao seu espaço de trabalho para ocorrer apenas nos endereços IP privados. Um endpoint privado ajuda a reduzir o risco de exfiltração de dados. Para saber mais sobre pontos de extremidade privados, consulte o artigo Azure Private Link .
Aviso
Proteger um espaço de trabalho 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ê usar um ponto de extremidade privado para o espaço de trabalho, mas sua Conta de Armazenamento do Azure não estiver atrás da VNet, o tráfego entre o espaço de trabalho e o armazenamento não usará a VNet para segurança.
Para obter mais informações sobre como proteger recursos usados pelo Azure Machine Learning, consulte os seguintes artigos:
- Isolamento de rede virtual e visão geral de privacidade.
- Recursos seguros do espaço de trabalho.
- Ambientes de treinamento seguros (v1).
- Ambiente de inferência seguro (v1)
- Use o estúdio do Azure Machine Learning em uma rede virtual.
- Isolamento de rede da plataforma API.
Pré-requisitos
- Você deve ter uma rede virtual existente para criar o ponto de extremidade privado.
- Desative as políticas de rede para pontos de extremidade privados antes de adicionar o ponto de extremidade privado.
Limitações
Se você habilitar o acesso público para um espaço de trabalho protegido com ponto de extremidade privado e usar o estúdio do Azure Machine Learning pela Internet pública, alguns recursos, como o designer, podem falhar ao acessar seus dados. Este problema acontece quando os dados estão armazenados num 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 seu espaço de trabalho se estiver usando o Mozilla Firefox. Esse problema pode estar relacionado ao DNS sobre HTTPS no Mozilla Firefox. Recomendamos o uso do Microsoft Edge ou do Google Chrome como uma solução alternativa.
O uso de um ponto de extremidade privado não afeta o plano de controle do Azure (operações de gerenciamento), como excluir o espaço de trabalho ou gerenciar recursos de computação. Por exemplo, criar, atualizar ou excluir um destino de computação. Estas operações são realizadas através da Internet pública normalmente. As operações do plano de dados, como o uso do 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 numa área de trabalho com um ponto final privado, a instância de computação e o cluster de cálculo têm de estar na mesma região do Azure da área de trabalho.
Ao criar ou anexar um cluster do Serviço Kubernetes do Azure a um espaço de trabalho com um ponto de extremidade privado, o cluster deve estar na mesma região que o espaço de trabalho.
Ao usar um espaço de trabalho com vários pontos de extremidade privados, um dos pontos de extremidade privados deve estar na mesma VNet que os seguintes serviços de dependência:
- Conta de Armazenamento do Azure que fornece o armazenamento padrão para o espaço de trabalho
- Azure Key Vault para o espaço de trabalho
- Registro de Contêiner do Azure para o espaço de trabalho.
Por exemplo, uma VNet (VNet 'services') conteria um ponto de extremidade privado para os serviços de dependência e o espaço de trabalho. Essa configuração permite que o espaço de trabalho se comunique com os serviços. Outra VNet ('clientes') pode conter apenas um ponto de extremidade privado para o espaço de trabalho e ser usado apenas para comunicação entre máquinas de desenvolvimento cliente e o espaço de trabalho.
Criar um espaço de trabalho que usa um ponto de extremidade privado
Use um dos seguintes métodos para criar um espaço de trabalho com um ponto de extremidade privado. Cada um destes métodos requer uma rede virtual existente:
Gorjeta
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 para o Aprendizado de Máquina do Azure.
O SDK Python do Azure Machine Learning fornece a classe PrivateEndpointConfig , que pode ser usada com Workspace.create() para criar um espaço de trabalho com um ponto de extremidade privado. Esta classe requer uma rede virtual existente.
APLICA-SE A: Python SDK 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 seguintes métodos para adicionar um ponto de extremidade privado a um espaço de trabalho existente:
Aviso
Se você tiver quaisquer destinos de computação associados a esse espaço de trabalho e eles não estiverem atrás da mesma rede virtual na qual o ponto de extremidade privado foi criado, eles não funcionarão.
APLICA-SE A: Python SDK 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 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 espaço de trabalho. A remoção de um ponto de extremidade privado remove o espaço de trabalho da VNet à qual o ponto de extremidade estava associado. A remoção do 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 rede virtual não permitir o acesso à Internet pública ou a partir dela.
Aviso
A remoção dos pontos de extremidade privados de um espaço de trabalho não o torna acessível publicamente. Para tornar o espaço de trabalho acessível publicamente, 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 exemplo a seguir demonstra como remover um ponto de extremidade privado:
APLICA-SE A: Python SDK 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)
Habilitar acesso público
Em algumas situações, talvez você queira permitir que alguém se conecte ao seu espaço de trabalho seguro por meio de um ponto de extremidade público, em vez de por meio da VNet. Ou talvez você queira remover o espaço de trabalho da VNet e reativar o acesso público.
Importante
Habilitar o acesso público não remove nenhum ponto de extremidade privado existente. Todas as comunicações entre componentes por trás da VNet à qual o(s) ponto(s) de extremidade privado se conectam ainda estão protegidas. Permite o acesso público apenas ao espaço de trabalho, além do acesso privado através de quaisquer terminais privados.
Aviso
Ao ligar-se através do ponto final público enquanto a área de trabalho utiliza um ponto final privado para comunicar com outros recursos:
- Alguns recursos do estúdio não conseguirão acessar seus dados. Esse problema acontece quando os dados são armazenados em um serviço que está protegido por trás da rede virtual. Por exemplo, uma conta de Armazenamento do Azure.
- Não há suporte para o uso do Jupyter, JupyterLab, 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:
Gorjeta
Há duas propriedades possíveis que você pode configurar:
allow_public_access_when_behind_vnet
- usado pelo Python SDK e CLI v2public_network_access
- usado pelo Python SDK e CLI v2 Cada propriedade substitui a outra. Por exemplo, a configuraçãopublic_network_access
substituirá qualquer configuração anterior paraallow_public_access_when_behind_vnet
.
A Microsoft recomenda o uso public_network_access
para habilitar ou desabilitar o acesso público a um espaço de trabalho.
Para habilitar o acesso público, use Workspace.update e defina allow_public_access_when_behind_vnet=True
.
APLICA-SE A: Python SDK azureml v1
from azureml.core import Workspace
ws = Workspace.from_config()
ws.update(allow_public_access_when_behind_vnet=True)
Conecte-se com segurança ao seu espaço de trabalho
Para se conectar a um espaço de trabalho protegido atrás de uma rede virtual, 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 através da internet pública. Há dois tipos de gateways VPN que você pode usar:
- Ponto a site: cada computador cliente usa um cliente VPN para se conectar à rede virtual.
- Site a site: um dispositivo VPN conecta a rede virtual à 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 caixa de salto) dentro da VNet. Em seguida, você se conecta à VM usando o Azure Bastion. Bastion permite que você se conecte à VM usando uma sessão RDP ou SSH do seu navegador da Web local. Em seguida, você usa a caixa de salto como seu ambiente de desenvolvimento. Como ele está dentro da rede virtual, ele pode acessar diretamente o espaço de trabalho. Para obter um exemplo de como usar uma caixa de salto, consulte Tutorial: Criar um espaço de trabalho seguro.
Importante
Ao usar um gateway VPN ou Rota Expressa, você precisará planejar como funciona a resolução de nomes entre seus recursos locais e aqueles na VNet. Para obter mais informações, consulte Usar um servidor DNS personalizado.
Se você tiver problemas para se conectar ao espaço de trabalho, consulte Solucionar problemas de conectividade do espaço de trabalho seguro.
Vários endpoints privados
O Azure Machine Learning dá suporte a vários pontos de extremidade privados para um espaço de trabalho. Vários pontos de extremidade privados são frequentemente usados quando você deseja manter ambientes diferentes separados. A seguir estão alguns cenários que são habilitados usando vários pontos de extremidade privados:
Ambientes de desenvolvimento de clientes em uma VNet separada.
Um cluster do Serviço Kubernetes do Azure (AKS) 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 espaço de trabalho 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, consulte os seguintes artigos:
- A Synapse gerenciou endpoints privados.
- Rede virtual gerenciada do Azure Data Factory.
Importante
A proteção de exfiltração de dados da Synapse não é suportada com o Azure Machine Learning.
Importante
Cada VNet que contém um ponto de extremidade privado para o espaço de trabalho também deve ser capaz de acessar a Conta de Armazenamento do Azure, o Cofre da Chave do Azure e o Registro de Contêiner do Azure usados pelo espaço de trabalho. Por exemplo, você pode criar um ponto de extremidade privado para os serviços em cada VNet.
Adicionar vários pontos de extremidade privados usa as mesmas etapas descritas na seção Adicionar um ponto de extremidade privado a um espaço de trabalho .
Cenário: Clientes isolados
Se você quiser isolar os clientes de desenvolvimento, para que eles não tenham acesso direto aos recursos de computação usados pelo Azure Machine Learning, use as seguintes etapas:
Nota
Estas etapas pressupõem que você tenha um espaço de trabalho existente, Conta de Armazenamento do Azure, Cofre da Chave do Azure e 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 seus clientes ou pode conter um Gateway VPN usado por clientes locais para se conectar à VNet.
- Adicione um novo ponto de extremidade privado para a Conta de Armazenamento do Azure, o Cofre da Chave do Azure e o Registro de Contêiner do Azure usados pelo seu espaço de trabalho. Esses pontos de extremidade privados devem existir na VNet do cliente.
- Se você tiver outro armazenamento usado pelo seu espaço de trabalho, adicione um novo ponto de extremidade privado para esse armazenamento. O ponto de extremidade privado deve existir na VNet do cliente e ter a integração de zona DNS privada habilitada.
- Adicione um novo ponto de extremidade privado ao seu espaço de trabalho. Esse ponto de extremidade privado deve existir na VNet do cliente e ter a integração de zona DNS privada habilitada.
- Use as etapas no artigo Usar estúdio em uma rede virtual para permitir que o estúdio acesse a(s) conta(s) de armazenamento.
O diagrama a seguir ilustra essa configuração. A VNet de carga de trabalho contém cálculos criados pelo espaço de trabalho para treinamento e implantação. A VNet do cliente contém clientes ou conexões ExpressRoute/VPN do cliente. Ambas as VNets contêm pontos de extremidade privados para o espaço de trabalho, a Conta de Armazenamento do Azure, o Cofre da Chave do Azure e o Registro de Contêiner do Azure.
Cenário: Serviço Kubernetes do Azure isolado
Se você quiser criar um Serviço Kubernetes do Azure isolado usado pelo espaço de trabalho, use as seguintes etapas:
Nota
Estas etapas pressupõem que você tenha um espaço de trabalho existente, Conta de Armazenamento do Azure, Cofre da Chave do Azure e Registro de Contêiner do Azure. Cada um desses serviços tem pontos de extremidade privados em uma VNet existente.
- Crie uma instância do Serviço Kubernetes do Azure. Durante a criação, o AKS cria uma VNet que contém o cluster AKS.
- Adicione um novo ponto de extremidade privado para a Conta de Armazenamento do Azure, o Cofre da Chave do Azure e o Registro de Contêiner do Azure usados pelo seu espaço de trabalho. Esses pontos de extremidade privados devem existir na VNet do cliente.
- Se você tiver outro armazenamento usado pelo seu espaço de trabalho, adicione um novo ponto de extremidade privado para esse armazenamento. O ponto de extremidade privado deve existir na VNet do cliente e ter a integração de zona DNS privada habilitada.
- Adicione um novo ponto de extremidade privado ao seu espaço de trabalho. Esse ponto de extremidade privado deve existir na VNet do cliente e ter a integração de zona DNS privada habilitada.
- Anexe o cluster AKS ao espaço de trabalho do Azure Machine Learning. Para obter mais informações, consulte Criar e anexar um cluster do Serviço Kubernetes do Azure.
Próximos passos
Para obter mais informações sobre como proteger seu espaço de trabalho do Azure Machine Learning, consulte o artigo Visão geral de privacidade e isolamento de rede virtual.
Se você planeja usar uma solução DNS personalizada em sua rede virtual, veja como usar um espaço de trabalho com um servidor DNS personalizado.